PySDM-examples 3.0.0rc12__tar.gz → 3.0.0rc13__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.
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PKG-INFO +7 -4
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Pyrcel/simulation.py +8 -2
- pysdm_examples-3.0.0rc13/PySDM_examples/Strzabala_2025_BEng/__init__.py +8 -0
- pysdm_examples-3.0.0rc13/PySDM_examples/Strzabala_2025_BEng/paraview_parcel_model.py +244 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/docs/pysdm_examples_landing.md +5 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/pysdm_examples.egg-info/PKG-INFO +7 -4
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/pysdm_examples.egg-info/SOURCES.txt +2 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/pysdm_examples.egg-info/requires.txt +1 -3
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/setup.py +1 -3
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/MANIFEST.in +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Abade_and_Albuquerque_2024/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Abade_and_Albuquerque_2024/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Abade_and_Albuquerque_2024/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_ARG2000_paper.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_CloudMicrophysics_ARG.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Alpert_and_Knopf_2016/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Alpert_and_Knopf_2016/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Alpert_and_Knopf_2016/table.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Alpert_and_Knopf_2016/table_1.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Alpert_and_Knopf_2016/table_2.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_and_Shima_2017/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_and_Shima_2017/example.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_and_Shima_2017/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_and_Shima_2017/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2015/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2015/example.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2015/example_benchmark.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2015/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2015/spin_up.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2025/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2025/commons.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2025/curved_text.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2025/frozen_fraction.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2025/make_particulator.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2025/plots.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2025/run_simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bartman_2020_MasterThesis/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bartman_2020_MasterThesis/fig_4_adaptive_sdm.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bartman_et_al_2021/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bartman_et_al_2021/label.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Berry_1967/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Berry_1967/example.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Berry_1967/example_fig_6.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Berry_1967/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Berry_1967/spectrum_plotter.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bieli_et_al_2022/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bieli_et_al_2022/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bieli_et_al_2022/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bolin_1958/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bolot_et_al_2013/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bulenok_2023_MasterThesis/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bulenok_2023_MasterThesis/performance_comparison_Srivastava_Setup.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bulenok_2023_MasterThesis/setups.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bulenok_2023_MasterThesis/utils.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Ervens_and_Feingold_2012/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Ervens_and_Feingold_2012/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Fisher_1991/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Gonfiantini_1986/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Graf_et_al_2019/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Jensen_and_Nugent_2017/plotting.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Jensen_and_Nugent_2017/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Jensen_and_Nugent_2017/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Jensen_and_Nugent_2017/table_3.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Jouzel_and_Merlivat_1984/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Jouzel_and_Merlivat_1984/thermodynamic_profiles.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Kinzer_And_Gunn_1951/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Kinzer_And_Gunn_1951/table_1_and_2.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Kreidenweis_et_al_2003/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Kreidenweis_et_al_2003/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Kreidenweis_et_al_2003/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lamb_et_al_2017/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/aerosol.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/aerosol_code.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/constants_def.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/plot_helper.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Merlivat_and_Nief_1967/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Miyake_et_al_1968/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Morrison_and_Grabowski_2007/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Morrison_and_Grabowski_2007/common.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Morrison_and_Grabowski_2007/strato_cumulus.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Niedermeier_et_al_2014/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Niedermeier_et_al_2014/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Niedermeier_et_al_2014/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Pierchala_et_al_2022/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Pierchala_et_al_2022/commons.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Pruppacher_and_Rasmussen_1979/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Pyrcel/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Pyrcel/profile_plotter.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Pyrcel/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Rogers_1975/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Rozanski_and_Sonntag_1982/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Rozanski_and_Sonntag_1982/multibox.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/error_measure.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/example.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/example_timing.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/spectrum_plotter.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/tutorial_example.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/tutorial_plotter.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/tutorial_settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shipway_and_Hill_2012/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shipway_and_Hill_2012/plot.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shipway_and_Hill_2012/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shipway_and_Hill_2012/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Singer_Ward/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Singer_Ward/aerosol.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Spichtinger_et_al_2023/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Spichtinger_et_al_2023/data/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Spichtinger_et_al_2023/data/reference_bulk.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Spichtinger_et_al_2023/data/simulation_data.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Spichtinger_et_al_2023/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Spichtinger_et_al_2023/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Srivastava_1982/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Srivastava_1982/equations.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Srivastava_1982/example.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Srivastava_1982/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Srivastava_1982/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Stewart_1975/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Toon_et_al_1980/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Van_Hook_1968/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Ware_et_al_2025/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Yang_et_al_2018/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Yang_et_al_2018/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Yang_et_al_2018/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Zaba_et_al/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/_HOWTOs/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Azimi/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Azimi/cloudy_data.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Azimi/cloudy_data_0d.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Azimi/settings1D.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Azimi/simulation_0D.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Mackay_et_al_2023/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Mackay_et_al_2023/plot_rates.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Mackay_et_al_2023/settings1D.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Mackay_et_al_2023/settings_0D.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Mackay_et_al_2023/simulation1D.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_0D.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_ss.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/seeding/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/seeding/settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/seeding/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/basic_simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/dummy_controller.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/fields.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/gui.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/gui_controller.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/gui_settings.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/gui_viewer.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/make_default_product_collection.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/mpdata_2d.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/plots.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/simulation.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/storage.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/progbar_controller.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/pvanim.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/read_vtk_1d.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/widgets/__init__.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/widgets/freezer.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/widgets/progbar_updater.py +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/README.md +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/pyproject.toml +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/pysdm_examples.egg-info/dependency_links.txt +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/pysdm_examples.egg-info/top_level.txt +0 -0
- {pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pysdm-examples
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.0rc13
|
|
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
|
|
@@ -15,7 +15,6 @@ Requires-Dist: PyMPDATA
|
|
|
15
15
|
Requires-Dist: open-atmos-jupyter-utils
|
|
16
16
|
Requires-Dist: pystrict
|
|
17
17
|
Requires-Dist: matplotlib
|
|
18
|
-
Requires-Dist: Pillow
|
|
19
18
|
Requires-Dist: joblib
|
|
20
19
|
Requires-Dist: ipywidgets
|
|
21
20
|
Requires-Dist: seaborn
|
|
@@ -26,11 +25,10 @@ Requires-Dist: pyvinecopulib
|
|
|
26
25
|
Requires-Dist: networkx
|
|
27
26
|
Provides-Extra: ci-version-pins
|
|
28
27
|
Requires-Dist: PySDM[CI_version_pins]; extra == "ci-version-pins"
|
|
29
|
-
Requires-Dist: PyMPDATA==1.6.
|
|
28
|
+
Requires-Dist: PyMPDATA==1.6.3; extra == "ci-version-pins"
|
|
30
29
|
Requires-Dist: open-atmos-jupyter-utils==1.3.0; extra == "ci-version-pins"
|
|
31
30
|
Requires-Dist: pystrict==1.3; extra == "ci-version-pins"
|
|
32
31
|
Requires-Dist: matplotlib!=3.9.1; extra == "ci-version-pins"
|
|
33
|
-
Requires-Dist: Pillow<11.3.0; extra == "ci-version-pins"
|
|
34
32
|
Requires-Dist: joblib==1.5.1; extra == "ci-version-pins"
|
|
35
33
|
Requires-Dist: ipywidgets==8.1.7; extra == "ci-version-pins"
|
|
36
34
|
Requires-Dist: seaborn==0.13.2; extra == "ci-version-pins"
|
|
@@ -137,6 +135,7 @@ Example notebooks include:
|
|
|
137
135
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Yang_et_al_2018.html">Yang_et_al_2018</a>: polydisperse particle spectrum, activation/deactivation cycles
|
|
138
136
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Abdul_Razzak_Ghan_2000.html">Abdul_Razzak_Ghan_2000</a>: polydisperse activation, comparison against <mark>GCM parameterisation</mark>
|
|
139
137
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Pyrcel.html">Pyrcel</a>: polydisperse activation, mimicking example test case from <mark>Pyrcel</mark> documentation
|
|
138
|
+
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Strzabala_2025_BEng.html">Strzabala_2025_BEng</a>: ParaView visualisation example
|
|
140
139
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Lowe_et_al_2019.html">Lowe_et_al_2019</a>: externally mixed polydisperse size spectrum with <mark>surface-active organics</mark> case
|
|
141
140
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Grabowski_and_Pawlowska_2023.html">Grabowski_and_Pawlowska_2023</a>: polydisperse activation, focus on <mark>ripening</mark>
|
|
142
141
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Jensen_and_Nugent_2017.html">Jensen_and_Nugent_2017</a>: polydisperse activation featuring <mark>giant CCN</mark>
|
|
@@ -148,6 +147,10 @@ Example notebooks include:
|
|
|
148
147
|
|
|
149
148
|
The parcel environment is also featured in the <a href="https://open-atmos.github.io/PySDM/PySDM.html#tutorials">PySDM tutorials</a>.
|
|
150
149
|
|
|
150
|
+
<center>
|
|
151
|
+
<img src="https://github.com/open-atmos/PySDM/releases/download/tip/parcel_animation_ubuntu-24.04.gif" style="width:80%" />
|
|
152
|
+
</center>
|
|
153
|
+
|
|
151
154
|
## 0D box environment
|
|
152
155
|
|
|
153
156
|
The box environment is void of any spatial or thermodynamic context, it constitutes the most basic framework.
|
|
@@ -13,7 +13,13 @@ from PySDM.physics import si
|
|
|
13
13
|
|
|
14
14
|
class Simulation(BasicSimulation):
|
|
15
15
|
def __init__(
|
|
16
|
-
self,
|
|
16
|
+
self,
|
|
17
|
+
settings,
|
|
18
|
+
products=None,
|
|
19
|
+
scipy_solver=False,
|
|
20
|
+
rtol_thd=1e-10,
|
|
21
|
+
rtol_x=1e-10,
|
|
22
|
+
mass_of_dry_air=44 * si.kg,
|
|
17
23
|
):
|
|
18
24
|
n_sd = sum(settings.n_sd_per_mode)
|
|
19
25
|
builder = Builder(
|
|
@@ -27,7 +33,7 @@ class Simulation(BasicSimulation):
|
|
|
27
33
|
initial_water_vapour_mixing_ratio=settings.initial_vapour_mixing_ratio,
|
|
28
34
|
T0=settings.initial_temperature,
|
|
29
35
|
w=settings.vertical_velocity,
|
|
30
|
-
mass_of_dry_air=
|
|
36
|
+
mass_of_dry_air=mass_of_dry_air,
|
|
31
37
|
),
|
|
32
38
|
)
|
|
33
39
|
builder.add_dynamic(AmbientThermodynamics())
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
#!/usr/bin/env pvpython
|
|
2
|
+
"""
|
|
3
|
+
ParaView pvpython script for visualizing sd_products and sd_attributes.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import argparse
|
|
7
|
+
from collections import namedtuple
|
|
8
|
+
import pathlib
|
|
9
|
+
from paraview import simple as pvs # pylint: disable=import-error
|
|
10
|
+
|
|
11
|
+
pvs._DisableFirstRenderCameraReset() # pylint: disable=protected-access
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def cli_using_argparse(argparse_parser):
|
|
15
|
+
"""
|
|
16
|
+
Command line interface using argparse.
|
|
17
|
+
"""
|
|
18
|
+
argparse_parser.add_argument(
|
|
19
|
+
"--sd-products-pvd",
|
|
20
|
+
dest="sd_products_pvd",
|
|
21
|
+
help="Path to sd_products.pvd",
|
|
22
|
+
)
|
|
23
|
+
argparse_parser.add_argument(
|
|
24
|
+
"--sd-attributes-pvd",
|
|
25
|
+
dest="sd_attributes_pvd",
|
|
26
|
+
help="Path to sd_attributes.pvd",
|
|
27
|
+
)
|
|
28
|
+
argparse_parser.add_argument(
|
|
29
|
+
"--output-animation-path",
|
|
30
|
+
help="Output path for the animation file.",
|
|
31
|
+
)
|
|
32
|
+
argparse_parser.add_argument(
|
|
33
|
+
"--output-screenshot-path",
|
|
34
|
+
help="Output path for the screenshot file.",
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
argparse_parser.add_argument(
|
|
38
|
+
"--scalarbar-title-size",
|
|
39
|
+
type=int,
|
|
40
|
+
default=30,
|
|
41
|
+
help="Font size for scalar bar titles.",
|
|
42
|
+
)
|
|
43
|
+
argparse_parser.add_argument(
|
|
44
|
+
"--scalarbar-label-size",
|
|
45
|
+
type=int,
|
|
46
|
+
default=30,
|
|
47
|
+
help="Font size for scalar bar labels.",
|
|
48
|
+
)
|
|
49
|
+
argparse_parser.add_argument(
|
|
50
|
+
"--axes-title-size",
|
|
51
|
+
type=int,
|
|
52
|
+
default=30,
|
|
53
|
+
help="Font size for axes titles.",
|
|
54
|
+
)
|
|
55
|
+
argparse_parser.add_argument(
|
|
56
|
+
"--axes-label-size",
|
|
57
|
+
type=int,
|
|
58
|
+
default=30,
|
|
59
|
+
help="Font size for axes labels.",
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
parser = argparse.ArgumentParser(
|
|
64
|
+
description="ParaView pvpython script for visualizing sd_products and sd_attributes PVD files."
|
|
65
|
+
)
|
|
66
|
+
cli_using_argparse(parser)
|
|
67
|
+
args = parser.parse_args()
|
|
68
|
+
|
|
69
|
+
sd_productspvd = pvs.PVDReader(
|
|
70
|
+
registrationName="sd_products.pvd", FileName=args.sd_products_pvd
|
|
71
|
+
)
|
|
72
|
+
sd_attributespvd = pvs.PVDReader(
|
|
73
|
+
registrationName="sd_attributes.pvd", FileName=args.sd_attributes_pvd
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
setup = {
|
|
77
|
+
"renderView1": pvs.GetActiveViewOrCreate("RenderView"),
|
|
78
|
+
"sd_productspvdDisplay": pvs.Show(
|
|
79
|
+
sd_productspvd,
|
|
80
|
+
pvs.GetActiveViewOrCreate("RenderView"),
|
|
81
|
+
"UnstructuredGridRepresentation",
|
|
82
|
+
),
|
|
83
|
+
"sd_attributespvdDisplay": pvs.Show(
|
|
84
|
+
sd_attributespvd,
|
|
85
|
+
pvs.GetActiveViewOrCreate("RenderView"),
|
|
86
|
+
"UnstructuredGridRepresentation",
|
|
87
|
+
),
|
|
88
|
+
"rHlookup_table": pvs.GetColorTransferFunction("RH"),
|
|
89
|
+
"volumelookup_table": pvs.GetColorTransferFunction("volume"),
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
animation_setup = namedtuple("setup", setup.keys())(**setup)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def configure_color_bar_and_display(
|
|
96
|
+
display, lookup_table, kind, *, anim_setup=animation_setup
|
|
97
|
+
):
|
|
98
|
+
"""
|
|
99
|
+
Configure color bar and display settings.
|
|
100
|
+
"""
|
|
101
|
+
display.Representation = "Surface"
|
|
102
|
+
display.SetScalarBarVisibility(anim_setup.renderView1, True)
|
|
103
|
+
color_bar = pvs.GetScalarBar(lookup_table, anim_setup.renderView1)
|
|
104
|
+
color_bar.LabelColor = [0.0, 0.0, 0.0]
|
|
105
|
+
color_bar.DrawScalarBarOutline = 1
|
|
106
|
+
color_bar.ScalarBarOutlineColor = [0.0, 0.0, 0.0]
|
|
107
|
+
color_bar.TitleColor = [0.0, 0.0, 0.0]
|
|
108
|
+
|
|
109
|
+
color_bar.TitleFontSize = args.scalarbar_title_size
|
|
110
|
+
color_bar.LabelFontSize = args.scalarbar_label_size
|
|
111
|
+
|
|
112
|
+
if kind == "prod":
|
|
113
|
+
display.Opacity = 0.4
|
|
114
|
+
display.DisableLighting = 1
|
|
115
|
+
display.Diffuse = 0.76
|
|
116
|
+
lookup_table.RescaleTransferFunction(90.0, 101.0)
|
|
117
|
+
lookup_table.ApplyPreset("Black, Blue and White", True)
|
|
118
|
+
lookup_table.NanColor = [0.67, 1.0, 1.0]
|
|
119
|
+
else:
|
|
120
|
+
display.PointSize = 13.0
|
|
121
|
+
display.RenderPointsAsSpheres = 1
|
|
122
|
+
display.Interpolation = "PBR"
|
|
123
|
+
lookup_table.RescaleTransferFunction(1e-18, 1e-13)
|
|
124
|
+
lookup_table.ApplyPreset("Cold and Hot", True)
|
|
125
|
+
lookup_table.MapControlPointsToLogSpace()
|
|
126
|
+
lookup_table.UseLogScale = 1
|
|
127
|
+
lookup_table.NumberOfTableValues = 16
|
|
128
|
+
lookup_table.InvertTransferFunction()
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def configure_data_axes_grid(display, kind):
|
|
132
|
+
"""
|
|
133
|
+
Configure data axes grid settings.
|
|
134
|
+
"""
|
|
135
|
+
display.DataAxesGrid.GridAxesVisibility = 1
|
|
136
|
+
display.DataAxesGrid.XTitle = ""
|
|
137
|
+
display.DataAxesGrid.YTitle = ""
|
|
138
|
+
display.DataAxesGrid.XAxisUseCustomLabels = 1
|
|
139
|
+
display.DataAxesGrid.YAxisUseCustomLabels = 1
|
|
140
|
+
|
|
141
|
+
display.DataAxesGrid.XTitleFontSize = args.axes_title_size
|
|
142
|
+
display.DataAxesGrid.XLabelFontSize = args.axes_label_size
|
|
143
|
+
display.DataAxesGrid.YTitleFontSize = args.axes_title_size
|
|
144
|
+
display.DataAxesGrid.YLabelFontSize = args.axes_label_size
|
|
145
|
+
|
|
146
|
+
if kind == "prod":
|
|
147
|
+
display.DataAxesGrid.ZTitle = ""
|
|
148
|
+
display.DataAxesGrid.GridColor = [0.0, 0.0, 0.0]
|
|
149
|
+
display.DataAxesGrid.ShowGrid = 1
|
|
150
|
+
display.DataAxesGrid.LabelUniqueEdgesOnly = 0
|
|
151
|
+
display.DataAxesGrid.ZAxisUseCustomLabels = 1
|
|
152
|
+
display.DataAxesGrid.ZTitleFontSize = args.axes_title_size
|
|
153
|
+
display.DataAxesGrid.ZLabelFontSize = args.axes_label_size
|
|
154
|
+
else:
|
|
155
|
+
display.DataAxesGrid.ZTitle = "Z [m]"
|
|
156
|
+
display.DataAxesGrid.ZLabelColor = [0.0, 0.0, 0.0]
|
|
157
|
+
display.DataAxesGrid.ZTitleColor = [0.0, 0.0, 0.0]
|
|
158
|
+
display.DataAxesGrid.ZTitleFontSize = args.axes_title_size
|
|
159
|
+
display.DataAxesGrid.ZLabelFontSize = args.axes_label_size
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
def configure_view_appearance(render_view):
|
|
163
|
+
"""
|
|
164
|
+
Configure view appearance settings."""
|
|
165
|
+
render_view.OrientationAxesLabelColor = [0.0, 0.0, 0.0]
|
|
166
|
+
render_view.OrientationAxesOutlineColor = [0.0, 0.0, 0.0]
|
|
167
|
+
render_view.OrientationAxesXVisibility = 0
|
|
168
|
+
render_view.OrientationAxesYVisibility = 0
|
|
169
|
+
render_view.OrientationAxesZColor = [0.0, 0.0, 0.0]
|
|
170
|
+
render_view.UseColorPaletteForBackground = 0
|
|
171
|
+
render_view.Background = [1.0, 1.0, 1.0]
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
def set_camera_view(render_view):
|
|
175
|
+
"""
|
|
176
|
+
Set camera view settings.
|
|
177
|
+
"""
|
|
178
|
+
layout1 = pvs.GetLayout()
|
|
179
|
+
layout1.SetSize(1592, 1128)
|
|
180
|
+
render_view.CameraPosition = [
|
|
181
|
+
1548.95,
|
|
182
|
+
-1349.49,
|
|
183
|
+
699.27,
|
|
184
|
+
]
|
|
185
|
+
render_view.CameraFocalPoint = [
|
|
186
|
+
-1.37e-13,
|
|
187
|
+
3.18e-13,
|
|
188
|
+
505.00,
|
|
189
|
+
]
|
|
190
|
+
render_view.CameraViewUp = [
|
|
191
|
+
-0.07,
|
|
192
|
+
0.06,
|
|
193
|
+
0.99,
|
|
194
|
+
]
|
|
195
|
+
render_view.CameraParallelScale = 534.08
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
def save_animation_and_screenshot(render_view, animation_path, screenshot_path):
|
|
199
|
+
"""
|
|
200
|
+
Save animation and screenshot.
|
|
201
|
+
"""
|
|
202
|
+
animation_scene = pvs.GetAnimationScene()
|
|
203
|
+
animation_scene.UpdateAnimationUsingDataTimeSteps()
|
|
204
|
+
|
|
205
|
+
pvs.SaveAnimation(animation_path, render_view, FrameRate=15)
|
|
206
|
+
|
|
207
|
+
if not screenshot_path:
|
|
208
|
+
return
|
|
209
|
+
|
|
210
|
+
time_steps = sd_productspvd.TimestepValues
|
|
211
|
+
if not time_steps:
|
|
212
|
+
return
|
|
213
|
+
|
|
214
|
+
last_time = time_steps[-1]
|
|
215
|
+
render_view.ViewTime = last_time
|
|
216
|
+
|
|
217
|
+
for reader in (sd_productspvd, sd_attributespvd):
|
|
218
|
+
reader.UpdatePipeline(last_time)
|
|
219
|
+
|
|
220
|
+
pvs.ExportView(
|
|
221
|
+
filename=str(pathlib.Path(screenshot_path)),
|
|
222
|
+
view=render_view,
|
|
223
|
+
Rasterize3Dgeometry=False,
|
|
224
|
+
GL2PSdepthsortmethod="BSP sorting (slow, best)",
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
pvs.RenderAllViews()
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
configure_color_bar_and_display(
|
|
231
|
+
animation_setup.sd_productspvdDisplay, animation_setup.rHlookup_table, kind="prod"
|
|
232
|
+
)
|
|
233
|
+
configure_data_axes_grid(animation_setup.sd_productspvdDisplay, kind="prod")
|
|
234
|
+
configure_view_appearance(animation_setup.renderView1)
|
|
235
|
+
configure_color_bar_and_display(
|
|
236
|
+
animation_setup.sd_attributespvdDisplay,
|
|
237
|
+
animation_setup.volumelookup_table,
|
|
238
|
+
kind="attr",
|
|
239
|
+
)
|
|
240
|
+
configure_data_axes_grid(animation_setup.sd_attributespvdDisplay, kind="attr")
|
|
241
|
+
set_camera_view(animation_setup.renderView1)
|
|
242
|
+
save_animation_and_screenshot(
|
|
243
|
+
animation_setup.renderView1, args.output_animation_path, args.output_screenshot_path
|
|
244
|
+
)
|
|
@@ -86,6 +86,7 @@ Example notebooks include:
|
|
|
86
86
|
- `PySDM_examples.Yang_et_al_2018`: polydisperse particle spectrum, activation/deactivation cycles
|
|
87
87
|
- `PySDM_examples.Abdul_Razzak_Ghan_2000`: polydisperse activation, comparison against <mark>GCM parameterisation</mark>
|
|
88
88
|
- `PySDM_examples.Pyrcel`: polydisperse activation, mimicking example test case from <mark>Pyrcel</mark> documentation
|
|
89
|
+
- `PySDM_examples.Strzabala_2025_BEng`: ParaView visualisation example
|
|
89
90
|
- `PySDM_examples.Lowe_et_al_2019`: externally mixed polydisperse size spectrum with <mark>surface-active organics</mark> case
|
|
90
91
|
- `PySDM_examples.Grabowski_and_Pawlowska_2023`: polydisperse activation, focus on <mark>ripening</mark>
|
|
91
92
|
- `PySDM_examples.Jensen_and_Nugent_2017`: polydisperse activation featuring <mark>giant CCN</mark>
|
|
@@ -97,6 +98,10 @@ Example notebooks include:
|
|
|
97
98
|
|
|
98
99
|
The parcel environment is also featured in the <a href="https://open-atmos.github.io/PySDM/PySDM.html#tutorials">PySDM tutorials</a>.
|
|
99
100
|
|
|
101
|
+
<center>
|
|
102
|
+
<img src="https://github.com/open-atmos/PySDM/releases/download/tip/parcel_animation_ubuntu-24.04.gif" style="width:80%" />
|
|
103
|
+
</center>
|
|
104
|
+
|
|
100
105
|
## 0D box environment
|
|
101
106
|
|
|
102
107
|
The box environment is void of any spatial or thermodynamic context, it constitutes the most basic framework.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pysdm-examples
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.0rc13
|
|
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
|
|
@@ -15,7 +15,6 @@ Requires-Dist: PyMPDATA
|
|
|
15
15
|
Requires-Dist: open-atmos-jupyter-utils
|
|
16
16
|
Requires-Dist: pystrict
|
|
17
17
|
Requires-Dist: matplotlib
|
|
18
|
-
Requires-Dist: Pillow
|
|
19
18
|
Requires-Dist: joblib
|
|
20
19
|
Requires-Dist: ipywidgets
|
|
21
20
|
Requires-Dist: seaborn
|
|
@@ -26,11 +25,10 @@ Requires-Dist: pyvinecopulib
|
|
|
26
25
|
Requires-Dist: networkx
|
|
27
26
|
Provides-Extra: ci-version-pins
|
|
28
27
|
Requires-Dist: PySDM[CI_version_pins]; extra == "ci-version-pins"
|
|
29
|
-
Requires-Dist: PyMPDATA==1.6.
|
|
28
|
+
Requires-Dist: PyMPDATA==1.6.3; extra == "ci-version-pins"
|
|
30
29
|
Requires-Dist: open-atmos-jupyter-utils==1.3.0; extra == "ci-version-pins"
|
|
31
30
|
Requires-Dist: pystrict==1.3; extra == "ci-version-pins"
|
|
32
31
|
Requires-Dist: matplotlib!=3.9.1; extra == "ci-version-pins"
|
|
33
|
-
Requires-Dist: Pillow<11.3.0; extra == "ci-version-pins"
|
|
34
32
|
Requires-Dist: joblib==1.5.1; extra == "ci-version-pins"
|
|
35
33
|
Requires-Dist: ipywidgets==8.1.7; extra == "ci-version-pins"
|
|
36
34
|
Requires-Dist: seaborn==0.13.2; extra == "ci-version-pins"
|
|
@@ -137,6 +135,7 @@ Example notebooks include:
|
|
|
137
135
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Yang_et_al_2018.html">Yang_et_al_2018</a>: polydisperse particle spectrum, activation/deactivation cycles
|
|
138
136
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Abdul_Razzak_Ghan_2000.html">Abdul_Razzak_Ghan_2000</a>: polydisperse activation, comparison against <mark>GCM parameterisation</mark>
|
|
139
137
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Pyrcel.html">Pyrcel</a>: polydisperse activation, mimicking example test case from <mark>Pyrcel</mark> documentation
|
|
138
|
+
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Strzabala_2025_BEng.html">Strzabala_2025_BEng</a>: ParaView visualisation example
|
|
140
139
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Lowe_et_al_2019.html">Lowe_et_al_2019</a>: externally mixed polydisperse size spectrum with <mark>surface-active organics</mark> case
|
|
141
140
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Grabowski_and_Pawlowska_2023.html">Grabowski_and_Pawlowska_2023</a>: polydisperse activation, focus on <mark>ripening</mark>
|
|
142
141
|
- <a href="https://open-atmos.github.io/PySDM/PySDM_examples/Jensen_and_Nugent_2017.html">Jensen_and_Nugent_2017</a>: polydisperse activation featuring <mark>giant CCN</mark>
|
|
@@ -148,6 +147,10 @@ Example notebooks include:
|
|
|
148
147
|
|
|
149
148
|
The parcel environment is also featured in the <a href="https://open-atmos.github.io/PySDM/PySDM.html#tutorials">PySDM tutorials</a>.
|
|
150
149
|
|
|
150
|
+
<center>
|
|
151
|
+
<img src="https://github.com/open-atmos/PySDM/releases/download/tip/parcel_animation_ubuntu-24.04.gif" style="width:80%" />
|
|
152
|
+
</center>
|
|
153
|
+
|
|
151
154
|
## 0D box environment
|
|
152
155
|
|
|
153
156
|
The box environment is void of any spatial or thermodynamic context, it constitutes the most basic framework.
|
|
@@ -127,6 +127,8 @@ PySDM_examples/Srivastava_1982/example.py
|
|
|
127
127
|
PySDM_examples/Srivastava_1982/settings.py
|
|
128
128
|
PySDM_examples/Srivastava_1982/simulation.py
|
|
129
129
|
PySDM_examples/Stewart_1975/__init__.py
|
|
130
|
+
PySDM_examples/Strzabala_2025_BEng/__init__.py
|
|
131
|
+
PySDM_examples/Strzabala_2025_BEng/paraview_parcel_model.py
|
|
130
132
|
PySDM_examples/Toon_et_al_1980/__init__.py
|
|
131
133
|
PySDM_examples/Van_Hook_1968/__init__.py
|
|
132
134
|
PySDM_examples/Ware_et_al_2025/__init__.py
|
|
@@ -3,7 +3,6 @@ PyMPDATA
|
|
|
3
3
|
open-atmos-jupyter-utils
|
|
4
4
|
pystrict
|
|
5
5
|
matplotlib
|
|
6
|
-
Pillow
|
|
7
6
|
joblib
|
|
8
7
|
ipywidgets
|
|
9
8
|
seaborn
|
|
@@ -15,11 +14,10 @@ networkx
|
|
|
15
14
|
|
|
16
15
|
[CI_version_pins]
|
|
17
16
|
PySDM[CI_version_pins]
|
|
18
|
-
PyMPDATA==1.6.
|
|
17
|
+
PyMPDATA==1.6.3
|
|
19
18
|
open-atmos-jupyter-utils==1.3.0
|
|
20
19
|
pystrict==1.3
|
|
21
20
|
matplotlib!=3.9.1
|
|
22
|
-
Pillow<11.3.0
|
|
23
21
|
joblib==1.5.1
|
|
24
22
|
ipywidgets==8.1.7
|
|
25
23
|
seaborn==0.13.2
|
|
@@ -28,7 +28,6 @@ setup(
|
|
|
28
28
|
"open-atmos-jupyter-utils",
|
|
29
29
|
"pystrict",
|
|
30
30
|
"matplotlib",
|
|
31
|
-
"Pillow",
|
|
32
31
|
"joblib",
|
|
33
32
|
"ipywidgets",
|
|
34
33
|
"seaborn",
|
|
@@ -41,11 +40,10 @@ setup(
|
|
|
41
40
|
extras_require={
|
|
42
41
|
"CI_version_pins": [
|
|
43
42
|
"PySDM[CI_version_pins]",
|
|
44
|
-
"PyMPDATA==1.6.
|
|
43
|
+
"PyMPDATA==1.6.3",
|
|
45
44
|
"open-atmos-jupyter-utils==1.3.0",
|
|
46
45
|
"pystrict==1.3",
|
|
47
46
|
"matplotlib!=3.9.1",
|
|
48
|
-
"Pillow<11.3.0",
|
|
49
47
|
"joblib==1.5.1",
|
|
50
48
|
"ipywidgets==8.1.7",
|
|
51
49
|
"seaborn==0.13.2",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Alpert_and_Knopf_2016/table.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2015/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2015/example.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2015/settings.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2015/spin_up.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2025/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2025/commons.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Arabas_et_al_2025/plots.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bartman_et_al_2021/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bartman_et_al_2021/label.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Berry_1967/example_fig_6.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Berry_1967/spectrum_plotter.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bieli_et_al_2022/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bieli_et_al_2022/settings.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bieli_et_al_2022/simulation.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Bolot_et_al_2013/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Fisher_1991/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Gonfiantini_1986/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Graf_et_al_2019/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lamb_et_al_2017/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/aerosol.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/aerosol_code.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/plot_helper.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/settings.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Lowe_et_al_2019/simulation.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Miyake_et_al_1968/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Pierchala_et_al_2022/commons.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Pyrcel/profile_plotter.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Rogers_1975/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/example.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shima_et_al_2009/settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Shipway_and_Hill_2012/plot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Singer_Ward/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Srivastava_1982/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Srivastava_1982/equations.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Srivastava_1982/example.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Srivastava_1982/settings.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Srivastava_1982/simulation.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Stewart_1975/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Toon_et_al_1980/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Van_Hook_1968/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Ware_et_al_2025/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Yang_et_al_2018/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Yang_et_al_2018/settings.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/Yang_et_al_2018/simulation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Azimi/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Azimi/cloudy_data.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Azimi/cloudy_data_0d.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Azimi/settings1D.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/deJong_Azimi/simulation_0D.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/basic_simulation.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/dummy_controller.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/fields.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/gui.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/mpdata_2d.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/plots.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/kinematic_2d/storage.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/progbar_controller.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/widgets/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/PySDM_examples/utils/widgets/freezer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-3.0.0rc12 → pysdm_examples-3.0.0rc13}/pysdm_examples.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|