PySDM-examples 3.0.0rc1__tar.gz → 3.0.0rc3__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-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PKG-INFO +1 -1
  2. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Abade_and_Albuquerque_2024/settings.py +14 -20
  3. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Abade_and_Albuquerque_2024/simulation.py +27 -12
  4. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py +1 -1
  5. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_and_Shima_2017/simulation.py +1 -1
  6. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2025/commons.py +1 -0
  7. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py +1 -1
  8. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Lowe_et_al_2019/simulation.py +1 -1
  9. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Niedermeier_et_al_2014/simulation.py +1 -1
  10. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Pyrcel/simulation.py +1 -1
  11. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Spichtinger_et_al_2023/simulation.py +2 -1
  12. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/pysdm_examples.egg-info/PKG-INFO +1 -1
  13. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/MANIFEST.in +0 -0
  14. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Abade_and_Albuquerque_2024/__init__.py +0 -0
  15. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py +0 -0
  16. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py +0 -0
  17. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_ARG2000_paper.py +0 -0
  18. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_CloudMicrophysics_ARG.py +0 -0
  19. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Alpert_and_Knopf_2016/__init__.py +0 -0
  20. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Alpert_and_Knopf_2016/simulation.py +0 -0
  21. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Alpert_and_Knopf_2016/table.py +0 -0
  22. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Alpert_and_Knopf_2016/table_1.py +0 -0
  23. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Alpert_and_Knopf_2016/table_2.py +0 -0
  24. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_and_Shima_2017/__init__.py +0 -0
  25. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_and_Shima_2017/example.py +0 -0
  26. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_and_Shima_2017/settings.py +0 -0
  27. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2015/__init__.py +0 -0
  28. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2015/example.py +0 -0
  29. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2015/example_benchmark.py +0 -0
  30. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2015/settings.py +0 -0
  31. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2015/spin_up.py +0 -0
  32. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2025/__init__.py +0 -0
  33. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2025/curved_text.py +0 -0
  34. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2025/frozen_fraction.py +0 -0
  35. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2025/make_particulator.py +0 -0
  36. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2025/plots.py +0 -0
  37. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Arabas_et_al_2025/run_simulation.py +0 -0
  38. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bartman_2020_MasterThesis/__init__.py +0 -0
  39. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bartman_2020_MasterThesis/fig_4_adaptive_sdm.py +0 -0
  40. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py +0 -0
  41. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bartman_et_al_2021/__init__.py +0 -0
  42. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bartman_et_al_2021/label.py +0 -0
  43. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Berry_1967/__init__.py +0 -0
  44. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Berry_1967/example.py +0 -0
  45. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Berry_1967/example_fig_6.py +0 -0
  46. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Berry_1967/settings.py +0 -0
  47. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Berry_1967/spectrum_plotter.py +0 -0
  48. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bieli_et_al_2022/__init__.py +0 -0
  49. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bieli_et_al_2022/settings.py +0 -0
  50. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bieli_et_al_2022/simulation.py +0 -0
  51. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bolin_1958/__init__.py +0 -0
  52. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bolot_et_al_2013/__init__.py +0 -0
  53. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bulenok_2023_MasterThesis/__init__.py +0 -0
  54. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bulenok_2023_MasterThesis/performance_comparison_Srivastava_Setup.py +0 -0
  55. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bulenok_2023_MasterThesis/setups.py +0 -0
  56. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Bulenok_2023_MasterThesis/utils.py +0 -0
  57. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Ervens_and_Feingold_2012/__init__.py +0 -0
  58. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Ervens_and_Feingold_2012/settings.py +0 -0
  59. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Fisher_1991/__init__.py +0 -0
  60. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py +0 -0
  61. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Gonfiantini_1986/__init__.py +0 -0
  62. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +0 -0
  63. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py +0 -0
  64. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Graf_et_al_2019/__init__.py +0 -0
  65. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py +0 -0
  66. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +0 -0
  67. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Jensen_and_Nugent_2017/plotting.py +0 -0
  68. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Jensen_and_Nugent_2017/settings.py +0 -0
  69. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Jensen_and_Nugent_2017/simulation.py +0 -0
  70. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Jensen_and_Nugent_2017/table_3.py +0 -0
  71. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Jouzel_and_Merlivat_1984/__init__.py +0 -0
  72. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Jouzel_and_Merlivat_1984/thermodynamic_profiles.py +0 -0
  73. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Kinzer_And_Gunn_1951/__init__.py +0 -0
  74. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Kinzer_And_Gunn_1951/table_1_and_2.py +0 -0
  75. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Kreidenweis_et_al_2003/__init__.py +0 -0
  76. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Kreidenweis_et_al_2003/settings.py +0 -0
  77. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Kreidenweis_et_al_2003/simulation.py +0 -0
  78. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Lamb_et_al_2017/__init__.py +0 -0
  79. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Lowe_et_al_2019/__init__.py +0 -0
  80. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Lowe_et_al_2019/aerosol.py +0 -0
  81. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Lowe_et_al_2019/aerosol_code.py +0 -0
  82. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Lowe_et_al_2019/constants_def.py +0 -0
  83. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Lowe_et_al_2019/plot_helper.py +0 -0
  84. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Lowe_et_al_2019/settings.py +0 -0
  85. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Merlivat_and_Nief_1967/__init__.py +0 -0
  86. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Miyake_et_al_1968/__init__.py +0 -0
  87. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Morrison_and_Grabowski_2007/__init__.py +0 -0
  88. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Morrison_and_Grabowski_2007/common.py +0 -0
  89. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Morrison_and_Grabowski_2007/strato_cumulus.py +0 -0
  90. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Niedermeier_et_al_2014/__init__.py +0 -0
  91. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Niedermeier_et_al_2014/settings.py +0 -0
  92. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Pierchala_et_al_2022/__init__.py +0 -0
  93. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Pierchala_et_al_2022/commons.py +0 -0
  94. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Pruppacher_and_Rasmussen_1979/__init__.py +0 -0
  95. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Pyrcel/__init__.py +0 -0
  96. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Pyrcel/profile_plotter.py +0 -0
  97. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Pyrcel/settings.py +0 -0
  98. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Rogers_1975/__init__.py +0 -0
  99. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Rozanski_and_Sonntag_1982/__init__.py +0 -0
  100. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Rozanski_and_Sonntag_1982/multibox.py +0 -0
  101. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shima_et_al_2009/__init__.py +0 -0
  102. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shima_et_al_2009/error_measure.py +0 -0
  103. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shima_et_al_2009/example.py +0 -0
  104. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shima_et_al_2009/example_timing.py +0 -0
  105. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shima_et_al_2009/settings.py +0 -0
  106. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shima_et_al_2009/spectrum_plotter.py +0 -0
  107. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shima_et_al_2009/tutorial_example.py +0 -0
  108. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shima_et_al_2009/tutorial_plotter.py +0 -0
  109. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shima_et_al_2009/tutorial_settings.py +0 -0
  110. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shipway_and_Hill_2012/__init__.py +0 -0
  111. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py +0 -0
  112. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shipway_and_Hill_2012/plot.py +0 -0
  113. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shipway_and_Hill_2012/settings.py +0 -0
  114. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Shipway_and_Hill_2012/simulation.py +0 -0
  115. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Singer_Ward/__init__.py +0 -0
  116. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Singer_Ward/aerosol.py +0 -0
  117. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Spichtinger_et_al_2023/__init__.py +0 -0
  118. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Spichtinger_et_al_2023/data/__init__.py +0 -0
  119. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Spichtinger_et_al_2023/data/reference_bulk.py +0 -0
  120. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Spichtinger_et_al_2023/data/simulation_data.py +0 -0
  121. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Spichtinger_et_al_2023/settings.py +0 -0
  122. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Srivastava_1982/__init__.py +0 -0
  123. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Srivastava_1982/equations.py +0 -0
  124. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Srivastava_1982/example.py +0 -0
  125. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Srivastava_1982/settings.py +0 -0
  126. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Srivastava_1982/simulation.py +0 -0
  127. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Stewart_1975/__init__.py +0 -0
  128. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Toon_et_al_1980/__init__.py +0 -0
  129. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Van_Hook_1968/__init__.py +0 -0
  130. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Yang_et_al_2018/__init__.py +0 -0
  131. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Yang_et_al_2018/settings.py +0 -0
  132. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Yang_et_al_2018/simulation.py +0 -0
  133. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/Zaba_et_al/__init__.py +0 -0
  134. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/_HOWTOs/__init__.py +0 -0
  135. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/__init__.py +0 -0
  136. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Azimi/__init__.py +0 -0
  137. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Azimi/cloudy_data.py +0 -0
  138. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Azimi/cloudy_data_0d.py +0 -0
  139. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Azimi/settings1D.py +0 -0
  140. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Azimi/simulation_0D.py +0 -0
  141. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Mackay_et_al_2023/__init__.py +0 -0
  142. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Mackay_et_al_2023/plot_rates.py +0 -0
  143. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Mackay_et_al_2023/settings1D.py +0 -0
  144. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Mackay_et_al_2023/settings_0D.py +0 -0
  145. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Mackay_et_al_2023/simulation1D.py +0 -0
  146. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_0D.py +0 -0
  147. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_ss.py +0 -0
  148. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/seeding/__init__.py +0 -0
  149. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/seeding/settings.py +0 -0
  150. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/seeding/simulation.py +0 -0
  151. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/__init__.py +0 -0
  152. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/basic_simulation.py +0 -0
  153. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/dummy_controller.py +0 -0
  154. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/kinematic_2d/__init__.py +0 -0
  155. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/kinematic_2d/fields.py +0 -0
  156. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/kinematic_2d/gui.py +0 -0
  157. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/kinematic_2d/gui_controller.py +0 -0
  158. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/kinematic_2d/gui_settings.py +0 -0
  159. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/kinematic_2d/gui_viewer.py +0 -0
  160. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/kinematic_2d/make_default_product_collection.py +0 -0
  161. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/kinematic_2d/mpdata_2d.py +0 -0
  162. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/kinematic_2d/plots.py +0 -0
  163. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/kinematic_2d/simulation.py +0 -0
  164. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/kinematic_2d/storage.py +0 -0
  165. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/progbar_controller.py +0 -0
  166. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/pvanim.py +0 -0
  167. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/read_vtk_1d.py +0 -0
  168. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/widgets/__init__.py +0 -0
  169. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/widgets/freezer.py +0 -0
  170. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/PySDM_examples/utils/widgets/progbar_updater.py +0 -0
  171. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/README.md +0 -0
  172. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/docs/pysdm_examples_landing.md +0 -0
  173. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/pyproject.toml +0 -0
  174. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/pysdm_examples.egg-info/SOURCES.txt +0 -0
  175. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/pysdm_examples.egg-info/dependency_links.txt +0 -0
  176. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/pysdm_examples.egg-info/requires.txt +0 -0
  177. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/pysdm_examples.egg-info/top_level.txt +0 -0
  178. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/setup.cfg +0 -0
  179. {pysdm_examples-3.0.0rc1 → pysdm_examples-3.0.0rc3}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pysdm-examples
3
- Version: 3.0.0rc1
3
+ Version: 3.0.0rc3
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
@@ -1,6 +1,6 @@
1
1
  from pystrict import strict
2
2
 
3
- from PySDM import Formulae
3
+ from PySDM.backends import CPU
4
4
  from PySDM.physics import si
5
5
  from PySDM.initialisation.spectra import Lognormal
6
6
 
@@ -10,48 +10,42 @@ class Settings:
10
10
  def __init__(
11
11
  self,
12
12
  *,
13
+ backend: CPU,
13
14
  n_sd: int,
14
15
  timestep: float,
16
+ # default values correspond to paper settings
17
+ singular: bool = True,
15
18
  enable_immersion_freezing: bool = True,
16
19
  enable_vapour_deposition_on_ice: bool = True,
17
20
  inp_frac: float = 0.1,
21
+ kappa: float = 0.6,
22
+ updraft: float = 0.5 * si.m / si.s,
18
23
  ):
24
+ self.backend = backend
19
25
  self.n_sd = n_sd
20
26
  self.timestep = timestep
21
27
  self.enable_immersion_freezing = enable_immersion_freezing
22
28
  self.enable_vapour_deposition_on_ice = enable_vapour_deposition_on_ice
23
-
29
+ self.singular = singular
24
30
  self.initial_total_pressure = 1000 * si.hPa # note: not given in the paper
25
31
 
26
- # parameters from the paper
27
- self.formulae = Formulae(
28
- constants={
29
- "bulk_phase_partitioning_exponent": 0.1,
30
- "NIEMAND_A": -0.517,
31
- "NIEMAND_B": 8.934,
32
- },
33
- bulk_phase_partitioning="KaulEtAl2015",
34
- particle_shape_and_density="MixedPhaseSpheres",
35
- diffusion_coordinate="WaterMassLogarithm",
36
- freezing_temperature_spectrum="Niemand_et_al_2012",
37
- )
38
32
  self.initial_water_vapour_mixing_ratio = 1.5 * si.g / si.kg
39
33
  self.parcel_linear_extent = 100 * si.m
40
- self.updraft = 0.5 * si.m / si.s
34
+ self.updraft = updraft
41
35
  self.freezing_inp_frac = inp_frac
42
36
  self.freezing_inp_dry_radius = 0.5 * si.um
43
37
 
44
- thd_0 = self.formulae.state_variable_triplet.th_dry(
38
+ thd_0 = backend.formulae.state_variable_triplet.th_dry(
45
39
  th_std=269 * si.K,
46
40
  water_vapour_mixing_ratio=self.initial_water_vapour_mixing_ratio,
47
41
  )
48
- rhod_0 = self.formulae.state_variable_triplet.rho_d(
42
+ rhod_0 = backend.formulae.state_variable_triplet.rho_d(
49
43
  p=self.initial_total_pressure,
50
44
  water_vapour_mixing_ratio=self.initial_water_vapour_mixing_ratio,
51
45
  theta_std=thd_0,
52
46
  )
53
47
 
54
- self.mass_of_dry_air = rhod_0 * self.formulae.trivia.volume(
48
+ self.mass_of_dry_air = rhod_0 * backend.formulae.trivia.volume(
55
49
  radius=self.parcel_linear_extent
56
50
  )
57
51
  self.soluble_aerosol = Lognormal(
@@ -61,7 +55,7 @@ class Settings:
61
55
  m_mode=75 * si.nm,
62
56
  s_geom=1.6,
63
57
  )
64
- self.kappa = 0.6
65
- self.initial_temperature = self.formulae.state_variable_triplet.T(
58
+ self.kappa = kappa
59
+ self.initial_temperature = backend.formulae.state_variable_triplet.T(
66
60
  rhod=rhod_0, thd=thd_0
67
61
  )
@@ -3,7 +3,6 @@ import numpy as np
3
3
  from PySDM_examples.utils import BasicSimulation
4
4
 
5
5
  from PySDM import Builder
6
- from PySDM.backends import CPU
7
6
  from PySDM.dynamics import (
8
7
  Condensation,
9
8
  AmbientThermodynamics,
@@ -24,7 +23,7 @@ from PySDM.environments import Parcel
24
23
  class Simulation(BasicSimulation):
25
24
  def __init__(self, settings):
26
25
  builder = Builder(
27
- backend=CPU(settings.formulae, override_jit_flags={"parallel": False}),
26
+ backend=settings.backend,
28
27
  n_sd=settings.n_sd,
29
28
  environment=Parcel(
30
29
  dt=settings.timestep,
@@ -40,9 +39,15 @@ class Simulation(BasicSimulation):
40
39
  builder.add_dynamic(Condensation())
41
40
 
42
41
  if settings.enable_immersion_freezing:
43
- builder.add_dynamic(Freezing(immersion_freezing="singular"))
42
+ builder.add_dynamic(
43
+ Freezing(
44
+ immersion_freezing=(
45
+ "singular" if settings.singular else "time-dependent"
46
+ )
47
+ )
48
+ )
44
49
  if settings.enable_vapour_deposition_on_ice:
45
- builder.add_dynamic(VapourDepositionOnIce())
50
+ builder.add_dynamic(VapourDepositionOnIce(adaptive=True))
46
51
 
47
52
  r_dry, n_in_dv = ConstantMultiplicity(settings.soluble_aerosol).sample(
48
53
  n_sd=settings.n_sd
@@ -62,18 +67,28 @@ class Simulation(BasicSimulation):
62
67
  n_inp = int(settings.n_sd * settings.freezing_inp_frac)
63
68
 
64
69
  rng = np.random.default_rng(seed=builder.particulator.formulae.seed)
65
-
66
- attributes["freezing temperature"] = rng.permutation(
70
+ insoluble_surface_area = trivia.sphere_surface(
71
+ diameter=2 * settings.freezing_inp_dry_radius
72
+ )
73
+ attributes[
74
+ "freezing temperature" if settings.singular else "immersed surface area"
75
+ ] = rng.permutation(
67
76
  np.pad(
68
- builder.particulator.formulae.freezing_temperature_spectrum.invcdf(
69
- cdf=rng.uniform(low=0, high=1, size=n_inp),
70
- A_insol=trivia.sphere_surface(
71
- diameter=2 * settings.freezing_inp_dry_radius
72
- ),
77
+ (
78
+ builder.particulator.formulae.freezing_temperature_spectrum.invcdf(
79
+ cdf=rng.uniform(low=0, high=1, size=n_inp),
80
+ A_insol=insoluble_surface_area,
81
+ )
82
+ if settings.singular
83
+ else np.full(n_inp, insoluble_surface_area)
73
84
  ),
74
85
  (0, settings.n_sd - n_inp),
75
86
  mode="constant",
76
- constant_values=(trivia.C2K(-38)),
87
+ constant_values=(
88
+ builder.particulator.formulae.constants.HOMOGENEOUS_FREEZING_THRESHOLD
89
+ if settings.singular
90
+ else 0
91
+ ),
77
92
  )
78
93
  )
79
94
 
@@ -8,7 +8,7 @@ from PySDM import products as PySDM_products
8
8
  from PySDM.backends import CPU
9
9
  from PySDM.dynamics import AmbientThermodynamics, Condensation
10
10
  from PySDM.environments import Parcel
11
- from PySDM.initialisation import equilibrate_wet_radii
11
+ from PySDM.initialisation.hygroscopic_equilibrium import equilibrate_wet_radii
12
12
  from PySDM.initialisation.sampling.spectral_sampling import ConstantMultiplicity
13
13
  from PySDM.physics import si
14
14
 
@@ -5,7 +5,7 @@ from PySDM.backends import CPU
5
5
  from PySDM.builder import Builder
6
6
  from PySDM.dynamics import AmbientThermodynamics, Condensation
7
7
  from PySDM.environments import Parcel
8
- from PySDM.initialisation import equilibrate_wet_radii
8
+ from PySDM.initialisation.hygroscopic_equilibrium import equilibrate_wet_radii
9
9
  from PySDM.physics import constants as const
10
10
 
11
11
 
@@ -5,6 +5,7 @@ from PySDM.physics import si
5
5
 
6
6
  FREEZING_CONSTANTS = {
7
7
  "dust": {
8
+ # [Alpert and Knopf (2016, Table 2)](https://doi.org/10.5194/acp-16-2083-2016)
8
9
  "NIEMAND_A": -0.517,
9
10
  "NIEMAND_B": 8.934,
10
11
  "ABIFM_M": 22.62,
@@ -6,7 +6,7 @@ from PySDM.backends import CPU
6
6
  from PySDM.backends.impl_numba.test_helpers import scipy_ode_condensation_solver
7
7
  from PySDM.dynamics import AmbientThermodynamics, Condensation
8
8
  from PySDM.environments import Parcel
9
- from PySDM.initialisation import equilibrate_wet_radii
9
+ from PySDM.initialisation.hygroscopic_equilibrium import equilibrate_wet_radii
10
10
  from PySDM.initialisation.sampling.spectral_sampling import ConstantMultiplicity
11
11
  from PySDM.physics import si
12
12
 
@@ -5,7 +5,7 @@ import PySDM.products as PySDM_products
5
5
  from PySDM import Builder
6
6
  from PySDM.dynamics import AmbientThermodynamics, Condensation
7
7
  from PySDM.environments import Parcel
8
- from PySDM.initialisation import equilibrate_wet_radii
8
+ from PySDM.initialisation.hygroscopic_equilibrium import equilibrate_wet_radii
9
9
  from PySDM.initialisation.spectra import Sum
10
10
 
11
11
 
@@ -9,7 +9,7 @@ from PySDM import Builder
9
9
  from PySDM.backends import CPU
10
10
  from PySDM.dynamics import AmbientThermodynamics, Condensation, Freezing
11
11
  from PySDM.environments import Parcel
12
- from PySDM.initialisation import equilibrate_wet_radii
12
+ from PySDM.initialisation.hygroscopic_equilibrium import equilibrate_wet_radii
13
13
  from PySDM.products import AmbientTemperature, IceWaterContent, ParcelDisplacement
14
14
 
15
15
 
@@ -6,7 +6,7 @@ from PySDM.backends import CPU
6
6
  from PySDM.backends.impl_numba.test_helpers import scipy_ode_condensation_solver
7
7
  from PySDM.dynamics import AmbientThermodynamics, Condensation
8
8
  from PySDM.environments import Parcel
9
- from PySDM.initialisation import equilibrate_wet_radii
9
+ from PySDM.initialisation.hygroscopic_equilibrium import equilibrate_wet_radii
10
10
  from PySDM.initialisation.sampling.spectral_sampling import ConstantMultiplicity
11
11
  from PySDM.physics import si
12
12
 
@@ -12,7 +12,8 @@ from PySDM.dynamics import (
12
12
  VapourDepositionOnIce,
13
13
  )
14
14
  from PySDM.environments import Parcel
15
- from PySDM.initialisation import discretise_multiplicities, equilibrate_wet_radii
15
+ from PySDM.initialisation import discretise_multiplicities
16
+ from PySDM.initialisation.hygroscopic_equilibrium import equilibrate_wet_radii
16
17
 
17
18
 
18
19
  class Simulation(BasicSimulation):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pysdm-examples
3
- Version: 3.0.0rc1
3
+ Version: 3.0.0rc3
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