PySDM-examples 2.107__tar.gz → 2.108__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-2.107 → pysdm_examples-2.108}/PKG-INFO +1 -1
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Rozanski_and_Sonntag_1982/__init__.py +1 -0
- pysdm_examples-2.108/PySDM_examples/Rozanski_and_Sonntag_1982/multibox.py +96 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/pyproject.toml +1 -1
- {pysdm_examples-2.107 → pysdm_examples-2.108}/pysdm_examples.egg-info/PKG-INFO +1 -1
- {pysdm_examples-2.107 → pysdm_examples-2.108}/pysdm_examples.egg-info/SOURCES.txt +1 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/MANIFEST.in +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abade_and_Albuquerque_2024/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abade_and_Albuquerque_2024/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abade_and_Albuquerque_2024/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_ARG2000_paper.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_CloudMicrophysics_ARG.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Alpert_and_Knopf_2016/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Alpert_and_Knopf_2016/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Alpert_and_Knopf_2016/table.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Alpert_and_Knopf_2016/table_1.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Alpert_and_Knopf_2016/table_2.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_and_Shima_2017/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_and_Shima_2017/example.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_and_Shima_2017/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_and_Shima_2017/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2015/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2015/example.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2015/example_benchmark.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2015/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2015/spin_up.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2025/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2025/commons.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2025/curved_text.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2025/frozen_fraction.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2025/make_particulator.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2025/plots.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2025/run_simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bartman_2020_MasterThesis/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bartman_2020_MasterThesis/fig_4_adaptive_sdm.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bartman_et_al_2021/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bartman_et_al_2021/label.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Berry_1967/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Berry_1967/example.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Berry_1967/example_fig_6.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Berry_1967/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Berry_1967/spectrum_plotter.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bieli_et_al_2022/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bieli_et_al_2022/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bieli_et_al_2022/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bolin_1958/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bolot_et_al_2013/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bulenok_2023_MasterThesis/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bulenok_2023_MasterThesis/performance_comparison_Srivastava_Setup.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bulenok_2023_MasterThesis/setups.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bulenok_2023_MasterThesis/utils.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Ervens_and_Feingold_2012/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Ervens_and_Feingold_2012/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Gonfiantini_1986/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Graf_et_al_2019/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jensen_and_Nugent_2017/plotting.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jensen_and_Nugent_2017/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jensen_and_Nugent_2017/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jensen_and_Nugent_2017/table_3.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Kreidenweis_et_al_2003/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Kreidenweis_et_al_2003/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Kreidenweis_et_al_2003/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Lamb_et_al_2017/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Lowe_et_al_2019/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Lowe_et_al_2019/aerosol.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Lowe_et_al_2019/aerosol_code.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Lowe_et_al_2019/constants_def.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Lowe_et_al_2019/plot_helper.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Lowe_et_al_2019/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Lowe_et_al_2019/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Merlivat_and_Nief_1967/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Miyake_et_al_1968/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Morrison_and_Grabowski_2007/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Morrison_and_Grabowski_2007/common.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Morrison_and_Grabowski_2007/cumulus.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Morrison_and_Grabowski_2007/strato_cumulus.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Niedermeier_et_al_2014/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Niedermeier_et_al_2014/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Niedermeier_et_al_2014/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Pierchala_et_al_2022/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Pierchala_et_al_2022/commons.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Pyrcel/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Pyrcel/profile_plotter.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Pyrcel/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Pyrcel/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Pyrcel/tutorial_settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Pyrcel/tutorial_simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/error_measure.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/example.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/example_timing.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/spectrum_plotter.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/tutorial_example.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/tutorial_plotter.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/tutorial_settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shipway_and_Hill_2012/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shipway_and_Hill_2012/plot.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shipway_and_Hill_2012/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shipway_and_Hill_2012/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Singer_Ward/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Singer_Ward/aerosol.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Srivastava_1982/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Srivastava_1982/equations.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Srivastava_1982/example.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Srivastava_1982/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Srivastava_1982/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/fields.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/gui.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/gui_controller.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/gui_settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/gui_viewer.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/make_default_product_collection.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/mpdata_2d.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/plots.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/sounding.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/storage.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Toon_et_al_1980/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Van_Hook_1968/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Yang_et_al_2018/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Yang_et_al_2018/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Yang_et_al_2018/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Zaba_et_al_2025/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/_HOWTOs/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Azimi/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Azimi/cloudy_data.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Azimi/cloudy_data_0d.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Azimi/settings1D.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Azimi/simulation_0D.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Mackay_et_al_2023/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Mackay_et_al_2023/plot_rates.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Mackay_et_al_2023/settings1D.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Mackay_et_al_2023/settings_0D.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Mackay_et_al_2023/simulation1D.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_0D.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Mackay_et_al_2023/simulation_ss.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/seeding/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/seeding/settings.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/seeding/simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/utils/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/utils/basic_simulation.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/utils/dummy_controller.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/utils/progbar_controller.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/utils/read_vtk_1d.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/utils/widgets/__init__.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/utils/widgets/freezer.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/utils/widgets/progbar_updater.py +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/README.md +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/docs/pysdm_examples_landing.md +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/pysdm_examples.egg-info/dependency_links.txt +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/pysdm_examples.egg-info/requires.txt +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/pysdm_examples.egg-info/top_level.txt +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/setup.cfg +0 -0
- {pysdm_examples-2.107 → pysdm_examples-2.108}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: pysdm-examples
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.108
|
|
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
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"""
|
|
2
|
+
definition of a multi-box environment (parcel iteratively adjusting to a stationary state)
|
|
3
|
+
plus helper equation for isotopic ratio evolution
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
# pylint: disable=invalid-name
|
|
7
|
+
|
|
8
|
+
import numpy as np
|
|
9
|
+
|
|
10
|
+
from PySDM.environments import Parcel
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def Rv_prim(*, Rl, Nl, Rv, Nv, dNl, Rr, K, a):
|
|
14
|
+
"""eq. (2) in [Rozanski and Sonntag 1982](https://doi.org/10.3402/tellusa.v34i2.10795)"""
|
|
15
|
+
return (Rl * Nl + Rv * Nv + dNl * Rr * K) / ((Nl + dNl * K) * a + Nv)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class MultiBox(Parcel):
|
|
19
|
+
"""iterative parcel model in which each new iteration operates with ambient isotopic profile
|
|
20
|
+
resultant from the previous iteration, leading to a stationary state
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
def __init__(
|
|
24
|
+
self,
|
|
25
|
+
*,
|
|
26
|
+
isotopes,
|
|
27
|
+
delta_nl,
|
|
28
|
+
rain_isotope_ratios,
|
|
29
|
+
nt,
|
|
30
|
+
autoconversion_mixrat_threshold,
|
|
31
|
+
isotope_exchange_factor,
|
|
32
|
+
**kwargs,
|
|
33
|
+
):
|
|
34
|
+
super().__init__(
|
|
35
|
+
variables=[
|
|
36
|
+
f"{ratio}_{isotope}" for ratio in ("Rv", "Rr") for isotope in isotopes
|
|
37
|
+
],
|
|
38
|
+
**kwargs,
|
|
39
|
+
)
|
|
40
|
+
self.isotopes = isotopes
|
|
41
|
+
self.delta_nl = delta_nl
|
|
42
|
+
self.rain_isotope_ratios = rain_isotope_ratios
|
|
43
|
+
self.nt = nt
|
|
44
|
+
self.autoconversion_mixrat_threshold = autoconversion_mixrat_threshold
|
|
45
|
+
self.isotope_exchange_factor = isotope_exchange_factor
|
|
46
|
+
|
|
47
|
+
def advance_parcel_vars(self):
|
|
48
|
+
"""explicit Euler integration of isotope-ratio time derivative"""
|
|
49
|
+
assert self.delta_liquid_water_mixing_ratio >= 0
|
|
50
|
+
self._recalculate_temperature_pressure_relative_humidity(self._tmp)
|
|
51
|
+
|
|
52
|
+
alpha_old = {}
|
|
53
|
+
dRv__dt = {}
|
|
54
|
+
for isotope in self.isotopes:
|
|
55
|
+
alpha_fun = getattr(
|
|
56
|
+
self.particulator.formulae.isotope_equilibrium_fractionation_factors,
|
|
57
|
+
f"alpha_l_{isotope}",
|
|
58
|
+
)
|
|
59
|
+
alpha_old[isotope] = alpha_fun(self["T"][0])
|
|
60
|
+
alpha_new = alpha_fun(self._tmp["T"][0])
|
|
61
|
+
|
|
62
|
+
dRv__dt[isotope] = self[f"Rv_{isotope}"][
|
|
63
|
+
0
|
|
64
|
+
] * self.particulator.formulae.isotope_ratio_evolution.d_Rv_over_Rv(
|
|
65
|
+
alpha=alpha_old[isotope],
|
|
66
|
+
d_alpha=(alpha_new - alpha_old[isotope]) / self.dt,
|
|
67
|
+
n_vapour=self["water_vapour_mixing_ratio"][0],
|
|
68
|
+
d_n_vapour=-self.delta_liquid_water_mixing_ratio / self.dt,
|
|
69
|
+
n_liquid=self.autoconversion_mixrat_threshold, # TODO #1207
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
super().advance_parcel_vars()
|
|
73
|
+
|
|
74
|
+
for isotope in self.isotopes:
|
|
75
|
+
self.particulator.backend.explicit_euler(
|
|
76
|
+
self._tmp[f"Rv_{isotope}"], self.particulator.dt, dRv__dt[isotope]
|
|
77
|
+
)
|
|
78
|
+
level = self.particulator.n_steps
|
|
79
|
+
if self.delta_nl is not None:
|
|
80
|
+
self._tmp[f"Rv_{isotope}"][:] = Rv_prim(
|
|
81
|
+
Rl=alpha_old[isotope] * self._tmp[f"Rv_{isotope}"][0],
|
|
82
|
+
Nl=self.autoconversion_mixrat_threshold,
|
|
83
|
+
Rv=self._tmp[f"Rv_{isotope}"][0],
|
|
84
|
+
Nv=self["water_vapour_mixing_ratio"][0],
|
|
85
|
+
dNl=np.sum(self.delta_nl[level:]),
|
|
86
|
+
Rr=self.rain_isotope_ratios[isotope][
|
|
87
|
+
min(
|
|
88
|
+
level + 2, self.nt # TODO #1207: this warrants a comment...
|
|
89
|
+
)
|
|
90
|
+
],
|
|
91
|
+
K=self.isotope_exchange_factor,
|
|
92
|
+
a=alpha_old[isotope],
|
|
93
|
+
)
|
|
94
|
+
self._tmp[f"Rr_{isotope}"][:] = (
|
|
95
|
+
alpha_old[isotope] * self._tmp[f"Rv_{isotope}"][0]
|
|
96
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: pysdm-examples
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.108
|
|
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
|
|
@@ -94,6 +94,7 @@ PySDM_examples/Pyrcel/simulation.py
|
|
|
94
94
|
PySDM_examples/Pyrcel/tutorial_settings.py
|
|
95
95
|
PySDM_examples/Pyrcel/tutorial_simulation.py
|
|
96
96
|
PySDM_examples/Rozanski_and_Sonntag_1982/__init__.py
|
|
97
|
+
PySDM_examples/Rozanski_and_Sonntag_1982/multibox.py
|
|
97
98
|
PySDM_examples/Shima_et_al_2009/__init__.py
|
|
98
99
|
PySDM_examples/Shima_et_al_2009/error_measure.py
|
|
99
100
|
PySDM_examples/Shima_et_al_2009/example.py
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abade_and_Albuquerque_2024/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abade_and_Albuquerque_2024/settings.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Alpert_and_Knopf_2016/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Alpert_and_Knopf_2016/simulation.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Alpert_and_Knopf_2016/table_1.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Alpert_and_Knopf_2016/table_2.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_and_Shima_2017/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_and_Shima_2017/example.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_and_Shima_2017/settings.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_and_Shima_2017/simulation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2015/example_benchmark.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2025/curved_text.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2025/frozen_fraction.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2025/make_particulator.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Arabas_et_al_2025/run_simulation.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bartman_2020_MasterThesis/__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
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bulenok_2023_MasterThesis/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bulenok_2023_MasterThesis/setups.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Bulenok_2023_MasterThesis/utils.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Ervens_and_Feingold_2012/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Ervens_and_Feingold_2012/settings.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jensen_and_Nugent_2017/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jensen_and_Nugent_2017/plotting.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jensen_and_Nugent_2017/settings.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jensen_and_Nugent_2017/simulation.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Jensen_and_Nugent_2017/table_3.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Kreidenweis_et_al_2003/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Kreidenweis_et_al_2003/settings.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Kreidenweis_et_al_2003/simulation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Lowe_et_al_2019/aerosol_code.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Lowe_et_al_2019/constants_def.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Merlivat_and_Nief_1967/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Morrison_and_Grabowski_2007/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Morrison_and_Grabowski_2007/common.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Morrison_and_Grabowski_2007/cumulus.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Niedermeier_et_al_2014/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Niedermeier_et_al_2014/settings.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Niedermeier_et_al_2014/simulation.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Pierchala_et_al_2022/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Pierchala_et_al_2022/commons.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-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/error_measure.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/example_timing.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/spectrum_plotter.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/tutorial_example.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/tutorial_plotter.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shima_et_al_2009/tutorial_settings.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shipway_and_Hill_2012/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shipway_and_Hill_2012/settings.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Shipway_and_Hill_2012/simulation.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-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/gui_controller.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/gui_settings.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/gui_viewer.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/mpdata_2d.py
RENAMED
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/simulation.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/sounding.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/Szumowski_et_al_1998/storage.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-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Mackay_et_al_2023/__init__.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Mackay_et_al_2023/plot_rates.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Mackay_et_al_2023/settings1D.py
RENAMED
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/deJong_Mackay_et_al_2023/settings_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
|
|
File without changes
|
|
File without changes
|
{pysdm_examples-2.107 → pysdm_examples-2.108}/PySDM_examples/utils/widgets/progbar_updater.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
|