PySDM 2.71__tar.gz → 2.72__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-2.71 → PySDM-2.72}/.github/workflows/tests+artifacts+pypi.yml +2 -3
- {PySDM-2.71 → PySDM-2.72}/PKG-INFO +23 -23
- {PySDM-2.71 → PySDM-2.72}/PySDM.egg-info/PKG-INFO +23 -23
- {PySDM-2.71 → PySDM-2.72}/PySDM.egg-info/SOURCES.txt +1 -1
- {PySDM-2.71 → PySDM-2.72}/README.md +22 -22
- PySDM-2.72/pdoc_templates/index.html.jinja2 +23 -0
- PySDM-2.71/.github/workflows/pdoc_index_workaround.py +0 -21
- {PySDM-2.71 → PySDM-2.72}/.appveyor.yml +0 -0
- {PySDM-2.71 → PySDM-2.72}/.binder/apt.txt +0 -0
- {PySDM-2.71 → PySDM-2.72}/.binder/postBuild +0 -0
- {PySDM-2.71 → PySDM-2.72}/.binder/requirements.txt +0 -0
- {PySDM-2.71 → PySDM-2.72}/.codecov.yml +0 -0
- {PySDM-2.71 → PySDM-2.72}/.github/dependabot.yml +0 -0
- {PySDM-2.71 → PySDM-2.72}/.github/workflows/cancel.yml +0 -0
- {PySDM-2.71 → PySDM-2.72}/.github/workflows/joss.yml +0 -0
- {PySDM-2.71 → PySDM-2.72}/.github/workflows/joss_paper.yml +0 -0
- {PySDM-2.71 → PySDM-2.72}/.github/workflows/readme_snippets.yml +0 -0
- {PySDM-2.71 → PySDM-2.72}/.github/workflows/stale.yml +0 -0
- {PySDM-2.71 → PySDM-2.72}/.gitignore +0 -0
- {PySDM-2.71 → PySDM-2.72}/.gitmodules +0 -0
- {PySDM-2.71 → PySDM-2.72}/.pre-commit-config.yaml +0 -0
- {PySDM-2.71 → PySDM-2.72}/.zenodo.json +0 -0
- {PySDM-2.71 → PySDM-2.72}/LICENSE +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/chemistry/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/chemistry/acidity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/chemistry/concentration.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/chemistry/hydrogen_ion_concentration.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/ice/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/ice/cooling_rate.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/ice/freezing_temperature.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/ice/immersed_surface_area.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/impl/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/impl/attribute.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/impl/attribute_registry.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/impl/base_attribute.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/impl/cell_attribute.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/impl/derived_attribute.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/impl/dummy_attribute.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/impl/extensive_attribute.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/impl/intensive_attribute.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/impl/maximum_attribute.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/impl/mole_amount.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/isotopes/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/isotopes/delta.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/isotopes/moles.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/numerics/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/numerics/cell_id.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/numerics/cell_origin.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/numerics/position_in_cell.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/area.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/critical_supersaturation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/critical_volume.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/dry_radius.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/dry_volume.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/equilibrium_supersaturation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/heat.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/hygroscopicity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/multiplicity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/radius.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/relative_fall_velocity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/reynolds_number.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/temperature.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/terminal_velocity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/volume.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/attributes/physics/water_mass.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_common/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_common/backend_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_common/freezing_attributes.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_common/index.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_common/indexed_storage.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_common/pair_indicator.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_common/pairwise_storage.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_common/random_common.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_common/storage_utils.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/atomic_operations.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/conf.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/chemistry_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/collisions_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/condensation_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/displacement_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/fragmentation_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/freezing_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/index_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/isotope_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/moments_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/pair_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/physics_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/methods/terminal_velocity_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/random.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/storage.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/storage_impl.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/test_helpers/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/test_helpers/scipy_ode_condensation_solver.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/toms748.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_numba/warnings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/bisection.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/conf.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/collisions_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/condensation_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/displacement_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/freezing_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/index_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/isotope_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/moments_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/pair_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/physics_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/terminal_velocity_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/methods/thrust_rtc_backend_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/nice_thrust.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/random.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/storage.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/test_helpers/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/test_helpers/cpp2python.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/test_helpers/fake_thrust_rtc.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/impl_thrust_rtc/test_helpers/flag.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/numba.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/backends/thrust_rtc.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/builder.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/ambient_thermodynamics.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/aqueous_chemistry.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_efficiencies/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_efficiencies/constEb.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/always_n.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/constant_mass.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/expon_frag.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/exponential.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/feingold1988.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/gaussian.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/impl/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/impl/volume_based.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/lowlist82.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/slams.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/breakup_fragmentations/straub2010.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/coalescence_efficiencies/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/coalescence_efficiencies/_gravitational.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/coalescence_efficiencies/_parameterized.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/coalescence_efficiencies/berry1967.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/coalescence_efficiencies/constEc.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/coalescence_efficiencies/lowlist1982.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/coalescence_efficiencies/specified_eff.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/coalescence_efficiencies/straub2010.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision_kernels/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision_kernels/constantK.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision_kernels/electric.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision_kernels/geometric.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision_kernels/golovin.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision_kernels/hydrodynamic.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision_kernels/impl/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision_kernels/impl/gravitational.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision_kernels/impl/parameterized.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision_kernels/linear.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/collisions/collision_kernels/simple_geometric.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/condensation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/displacement.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/eulerian_advection.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/freezing.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/impl/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/impl/chemistry_utils.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/impl/random_generator_optimizer.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/impl/random_generator_optimizer_nopair.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/impl/register_dynamic.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/isotopic_fractionation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/relaxed_velocity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/terminal_velocity/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/terminal_velocity/gunn_and_kinzer.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/terminal_velocity/power_series.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/dynamics/terminal_velocity/rogers_and_yau.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/environments/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/environments/box.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/environments/impl/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/environments/impl/moist.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/environments/kinematic_1d.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/environments/kinematic_2d.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/environments/parcel.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/exporters/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/exporters/netcdf_exporter.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/exporters/netcdf_exporter_1d.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/exporters/vtk_exporter.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/exporters/vtk_exporter_1d.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/formulae.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/impl/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/impl/arakawa_c.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/impl/camel_case.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/impl/mesh.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/impl/null_physics_class.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/impl/particle_attributes.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/impl/particle_attributes_factory.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/impl/wall_timer.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/aerosol_composition/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/aerosol_composition/dry_aerosol.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/discretise_multiplicities.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/equilibrate_wet_radii.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/impl/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/impl/spectrum.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/init_fall_momenta.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/sampling/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/sampling/spatial_sampling.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/sampling/spectral_sampling.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/sampling/spectro_glacial_sampling.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/spectra/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/spectra/exponential.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/spectra/gamma.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/spectra/gaussian.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/spectra/lognormal.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/spectra/sum.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/initialisation/spectra/top_hat.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/particulator.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/air_dynamic_viscosity/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/air_dynamic_viscosity/zografos_et_al_1987.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/bulk_phase_partitioning/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/bulk_phase_partitioning/kaul_et_al_2015.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/condensation_coordinate/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/condensation_coordinate/volume.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/condensation_coordinate/volume_logarithm.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/constants.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/constants_defaults.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_kinetics/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_kinetics/fuchs_sutugin.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_kinetics/grabowski_et_al_2011.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_kinetics/lowe_et_al_2019.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_kinetics/neglect.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_kinetics/pruppacher_and_klett_2005.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_thermics/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_thermics/grabowski_et_al_2011.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_thermics/lowe_et_al_2019.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_thermics/neglect.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_thermics/seinfeld_and_pandis_2010.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/diffusion_thermics/tracy_welch_porter.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/dimensional_analysis.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/drop_growth/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/drop_growth/mason_1951.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/drop_growth/mason_1971.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/fragmentation_function/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/fragmentation_function/always_n.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/fragmentation_function/constant_mass.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/fragmentation_function/expon_frag.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/fragmentation_function/exponential.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/fragmentation_function/feingold1988.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/fragmentation_function/gaussian.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/fragmentation_function/lowlist82.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/fragmentation_function/slams.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/fragmentation_function/straub2010nf.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/freezing_temperature_spectrum/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/freezing_temperature_spectrum/bigg_1953.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/freezing_temperature_spectrum/niemand_et_al_2012.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/freezing_temperature_spectrum/null.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/heterogeneous_ice_nucleation_rate/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/heterogeneous_ice_nucleation_rate/abifm.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/heterogeneous_ice_nucleation_rate/constant.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/heterogeneous_ice_nucleation_rate/null.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/hydrostatics/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/hydrostatics/default.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/hygroscopicity/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/hygroscopicity/kappa_koehler.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/hygroscopicity/kappa_koehler_leading_terms.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/impl/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/impl/fake_unit_registry.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/impl/flag.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_diffusivity_ratios/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_diffusivity_ratios/grahams_law.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_diffusivity_ratios/hellmann_and_harvey_2020.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_diffusivity_ratios/stewart_1975.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_equilibrium_fractionation_factors/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_equilibrium_fractionation_factors/barkan_and_luz_2005.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_equilibrium_fractionation_factors/ellehoj_et_al_2013.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_equilibrium_fractionation_factors/horita_and_wesolowski_1994.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_equilibrium_fractionation_factors/lamb_et_al_2017.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_equilibrium_fractionation_factors/majoube_1970.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_equilibrium_fractionation_factors/majoube_1971.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_equilibrium_fractionation_factors/merlivat_and_nief_1967.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_equilibrium_fractionation_factors/van_hook_1968.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_meteoric_water_line_excess/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_meteoric_water_line_excess/barkan_and_luz_2007.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_meteoric_water_line_excess/dansgaard_1964.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_ratio_evolution/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_ratio_evolution/gedzelman_and_arnold_1994.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_ratio_evolution/merlivat_and_jouzel_1979.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_ratio_evolution/rayleigh_distillation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_relaxation_timescale/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/isotope_relaxation_timescale/miyake_et_al_1968.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/latent_heat/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/latent_heat/constant.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/latent_heat/kirchhoff.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/latent_heat/lowe2019.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/latent_heat/seinfeld_and_pandis_2010.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/optical_albedo/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/optical_albedo/bohren1987.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/optical_depth/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/optical_depth/stephens_1978.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/particle_advection/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/particle_advection/explicit_in_space.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/particle_advection/implicit_in_space.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/particle_shape_and_density/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/particle_shape_and_density/liquid_spheres.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/particle_shape_and_density/mixed_phase_spheres.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/particle_shape_and_density/porous_spheroids.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/saturation_vapour_pressure/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/saturation_vapour_pressure/august_roche_magnus.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/saturation_vapour_pressure/bolton_1980.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/saturation_vapour_pressure/flatau_walko_cotton.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/saturation_vapour_pressure/lowe1977.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/saturation_vapour_pressure/murphy_koop_2005.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/saturation_vapour_pressure/wexler_1976.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/state_variable_triplet/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/state_variable_triplet/libcloudphplusplus.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/surface_tension/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/surface_tension/compressed_film_ovadnevaite.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/surface_tension/compressed_film_ruehl.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/surface_tension/constant.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/surface_tension/szyszkowski_langmuir.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/terminal_velocity/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/terminal_velocity/gunn_kinzer_1949.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/terminal_velocity/power_series.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/terminal_velocity/rogers_yau.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/trivia.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/ventilation/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/ventilation/froessling_1938.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/ventilation/neglect.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/physics/ventilation/pruppacher_rasmussen_1979.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/ambient_thermodynamics/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/ambient_thermodynamics/ambient_dry_air_density.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/ambient_thermodynamics/ambient_dry_air_potential_temperature.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/ambient_thermodynamics/ambient_pressure.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/ambient_thermodynamics/ambient_relative_humidity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/ambient_thermodynamics/ambient_temperature.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/ambient_thermodynamics/ambient_water_vapour_mixing_ratio.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/aqueous_chemistry/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/aqueous_chemistry/acidity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/aqueous_chemistry/aqueous_mass_spectrum.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/aqueous_chemistry/aqueous_mole_fraction.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/aqueous_chemistry/gaseous_mole_fraction.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/aqueous_chemistry/total_dry_mass_mixing_ratio.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/collision/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/collision/collision_rates.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/collision/collision_timestep_mean.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/collision/collision_timestep_min.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/condensation/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/condensation/activable_fraction.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/condensation/condensation_timestep.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/condensation/event_rates.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/condensation/peak_supersaturation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/displacement/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/displacement/averaged_terminal_velocity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/displacement/flow_velocity_component.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/displacement/max_courant_number.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/displacement/surface_precipitation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/freezing/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/freezing/cooling_rate.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/freezing/freezable_specific_concentration.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/freezing/frozen_particle_concentration.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/freezing/ice_nuclei_concentration.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/freezing/total_unfrozen_immersed_surface_area.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/housekeeping/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/housekeeping/dynamic_wall_time.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/housekeeping/super_droplet_count_per_gridbox.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/housekeeping/time.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/housekeeping/timers.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/impl/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/impl/activation_filtered_product.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/impl/concentration_product.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/impl/moist_environment_product.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/impl/moment_product.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/impl/product.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/impl/rate_product.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/impl/register_product.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/impl/spectrum_moment_product.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/optical/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/optical/cloud_albedo.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/optical/cloud_optical_depth.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/parcel/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/parcel/cloud_water_path.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/parcel/parcel_displacement.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/arbitrary_moment.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/cloud_water_content.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/effective_radius.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/effective_radius_activated.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/mean_radius.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/mean_radius_activated.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/mean_volume_radius.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/number_size_spectrum.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/particle_concentration.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/particle_concentration_activated.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/particle_size_spectrum.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/particle_volume_versus_radius_logarithm_spectrum.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/radius_binned_number_averaged_terminal_velocity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/size_standard_deviation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/total_particle_concentration.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/total_particle_specific_concentration.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM/products/size_spectral/water_mixing_ratio.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM.egg-info/dependency_links.txt +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM.egg-info/requires.txt +0 -0
- {PySDM-2.71 → PySDM-2.72}/PySDM.egg-info/top_level.txt +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/MANIFEST.in +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Abade_and_Albuquerque_2024/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Abade_and_Albuquerque_2024/fig_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Abade_and_Albuquerque_2024/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Abade_and_Albuquerque_2024/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_ARG2000_paper.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_CloudMicrophysics_ARG.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/fig_4_kinetic_limitations.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/figs1-5.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Alpert_and_Knopf_2016/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Alpert_and_Knopf_2016/fig_1.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Alpert_and_Knopf_2016/fig_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Alpert_and_Knopf_2016/fig_3.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Alpert_and_Knopf_2016/fig_4.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Alpert_and_Knopf_2016/fig_5.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Alpert_and_Knopf_2016/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Alpert_and_Knopf_2016/table.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Alpert_and_Knopf_2016/table_1.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Alpert_and_Knopf_2016/table_2.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_and_Shima_2017/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_and_Shima_2017/example.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_and_Shima_2017/fig_5.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_and_Shima_2017/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_and_Shima_2017/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2015/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2015/example.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2015/example_benchmark.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2015/gui.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2015/paraview_hello_world.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2015/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2015/spin_up.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/aida.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/commons.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/copula_hello.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/curved_text.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/fig_11.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/fig_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/fig_A2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/figs_3_and_7_and_8.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/figs_5_and_6.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/frozen_fraction.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/make_particulator.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/plots.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Arabas_et_al_2023/run_simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bartman_2020_MasterThesis/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bartman_2020_MasterThesis/fig_4_adaptive_sdm.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bartman_et_al_2021/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bartman_et_al_2021/demo.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bartman_et_al_2021/demo_fig2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bartman_et_al_2021/demo_fig3.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bartman_et_al_2021/label.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Berry_1967/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Berry_1967/example.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Berry_1967/example_fig_6.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Berry_1967/figs_5_8_10.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Berry_1967/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Berry_1967/spectrum_plotter.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bieli_et_al_2022/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bieli_et_al_2022/make_fig_3.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bieli_et_al_2022/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bieli_et_al_2022/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bolot_et_al_2013/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bolot_et_al_2013/fig_1.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bulenok_2023_MasterThesis/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bulenok_2023_MasterThesis/performance_comparison_Srivastava_Setup.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bulenok_2023_MasterThesis/setups.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Bulenok_2023_MasterThesis/utils.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Ervens_and_Feingold_2012/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Ervens_and_Feingold_2012/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Gedzelman_and_Arnold_1994/fig_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/figure_1.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/figure_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/figure_3.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/figure_4.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/figure_ripening_rate.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Graf_et_al_2019/Table_1.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Graf_et_al_2019/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Graf_et_al_2019/figure_4.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jaruga_and_Pawlowska_2018/fig_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jaruga_and_Pawlowska_2018/fig_3.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_1.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_3_and_Tab_4_upper_rows.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_4_and_7_and_Tab_4_bottom_rows.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_5.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_6.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jensen_and_Nugent_2017/Fig_8.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jensen_and_Nugent_2017/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jensen_and_Nugent_2017/plotting.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jensen_and_Nugent_2017/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jensen_and_Nugent_2017/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Jensen_and_Nugent_2017/table_3.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Kreidenweis_et_al_2003/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Kreidenweis_et_al_2003/fig_1.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Kreidenweis_et_al_2003/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Kreidenweis_et_al_2003/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lamb_et_al_2017/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lamb_et_al_2017/fig_4.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lowe_et_al_2019/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lowe_et_al_2019/aerosol.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lowe_et_al_2019/aerosol_code.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lowe_et_al_2019/constants_def.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lowe_et_al_2019/fig_1.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lowe_et_al_2019/fig_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lowe_et_al_2019/fig_3.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lowe_et_al_2019/fig_s2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lowe_et_al_2019/plot_helper.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lowe_et_al_2019/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Lowe_et_al_2019/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Merlivat_and_Nief_1967/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Merlivat_and_Nief_1967/fig_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Miyake_et_al_1968/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Miyake_et_al_1968/fig_19.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Morrison_and_Grabowski_2007/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Morrison_and_Grabowski_2007/common.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Morrison_and_Grabowski_2007/cumulus.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Morrison_and_Grabowski_2007/fig_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Morrison_and_Grabowski_2007/fig_3.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Morrison_and_Grabowski_2007/strato_cumulus.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Niedermeier_et_al_2014/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Niedermeier_et_al_2014/fig_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Niedermeier_et_al_2014/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Niedermeier_et_al_2014/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Pierchala_et_al_2022/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Pierchala_et_al_2022/commons.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Pierchala_et_al_2022/fig_3.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Pierchala_et_al_2022/fig_4.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Pyrcel/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Pyrcel/example_basic_run.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Pyrcel/profile_plotter.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Pyrcel/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Pyrcel/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Pyrcel/tutorial_settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Pyrcel/tutorial_simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Rozanski_and_Sonntag_1982/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Rozanski_and_Sonntag_1982/figs_4_5_6.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shima_et_al_2009/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shima_et_al_2009/error_measure.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shima_et_al_2009/example.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shima_et_al_2009/example_timing.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shima_et_al_2009/fig_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shima_et_al_2009/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shima_et_al_2009/spectrum_plotter.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shima_et_al_2009/tutorial_example.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shima_et_al_2009/tutorial_plotter.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shima_et_al_2009/tutorial_settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shipway_and_Hill_2012/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shipway_and_Hill_2012/fig_1.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shipway_and_Hill_2012/plot.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shipway_and_Hill_2012/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Shipway_and_Hill_2012/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Singer_Ward/MWE_joss_paper.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Singer_Ward/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Singer_Ward/aerosol.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Singer_Ward/kohler.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Srivastava_1982/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Srivastava_1982/equations.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Srivastava_1982/example.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Srivastava_1982/figures.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Srivastava_1982/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Srivastava_1982/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/fields.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/gui.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/gui_controller.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/gui_settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/gui_viewer.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/make_default_product_collection.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/mpdata_2d.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/plots.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/sounding.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Szumowski_et_al_1998/storage.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Van_Hook_1968/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Van_Hook_1968/fig_1.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Yang_et_al_2018/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Yang_et_al_2018/fig_2.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Yang_et_al_2018/settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/Yang_et_al_2018/simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Azimi/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Azimi/box.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Azimi/cloudy_data.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Azimi/cloudy_data_0d.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Azimi/rainshaft.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Azimi/settings1D.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Azimi/simulation_0D.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/data/straub_fig10.csv +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/fig_9.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/figs_10_11_12_13.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/figs_3_4_5.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/figs_6_7_8.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/plot_rates.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/settings1D.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/settings_0D.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/simulation1D.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/simulation_0D.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/deJong_Mackay_et_al_2023/simulation_ss.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/utils/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/utils/basic_simulation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/utils/dummy_controller.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/utils/notebook_vars.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/utils/progbar_controller.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/utils/read_vtk_1d.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/utils/widgets/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/utils/widgets/freezer.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/PySDM_examples/utils/widgets/progbar_updater.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/README.md +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/pyproject.toml +0 -0
- {PySDM-2.71 → PySDM-2.72}/examples/setup.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/paper/joss-ARG-fig_1.pdf +0 -0
- {PySDM-2.71 → PySDM-2.72}/paper/paper.bib +0 -0
- {PySDM-2.71 → PySDM-2.72}/paper/paper.md +0 -0
- {PySDM-2.71 → PySDM-2.72}/paper/paperv1.md +0 -0
- {PySDM-2.71 → PySDM-2.72}/paper/readme.pdf +0 -0
- {PySDM-2.71 → PySDM-2.72}/paper/test.pdf +0 -0
- {PySDM-2.71 → PySDM-2.72}/pyproject.toml +0 -0
- {PySDM-2.71 → PySDM-2.72}/setup.cfg +0 -0
- {PySDM-2.71 → PySDM-2.72}/setup.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/examples_tests/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/examples_tests/conftest.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/examples_tests/test_run_examples.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/examples_tests/test_run_notebooks.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/examples_tests/test_tests_completeness.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/alpert_and_knopf_2016/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/alpert_and_knopf_2016/test_ak16_fig_1.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/alpert_and_knopf_2016/test_frozen_fraction.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/berry_1967/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/berry_1967/test_coalescence.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/bieli_et_al_2022/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/bieli_et_al_2022/test_moments.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/dejong_and_mackay_et_al_2023/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/dejong_and_mackay_et_al_2023/test_collision.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/dejong_and_mackay_et_al_2023/test_fig_6.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/dejong_and_mackay_et_al_2023/test_fig_7.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/dejong_and_mackay_et_al_2023/test_fig_8.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/dejong_azimi/test_box.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/partmc/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/partmc/test_dry_wet_equilibration.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/shima_et_al_2009/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/shima_et_al_2009/test_lwc_constant.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/srivastava_1982/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/srivastava_1982/test_eq_10.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/srivastava_1982/test_eq_13.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/box/srivastava_1982/test_equations.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/conftest.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_1d/deJong_Azimi/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_1d/deJong_Azimi/test_few_steps.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_1d/deJong_Azimi/test_initial_condition.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_1d/shipway_and_hill_2012/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_1d/shipway_and_hill_2012/test_1d_exporters.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_1d/shipway_and_hill_2012/test_few_steps.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_1d/shipway_and_hill_2012/test_initial_condition.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_1d/shipway_and_hill_2012/test_settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/dummy_storage.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_adaptive_displacement.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_environment.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_export.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_freezing.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_gui_settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_initialisation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/kinematic_2d/arabas_et_al_2015/test_spin_up.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/no_env/gedzelman_and_arnold_1994/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/no_env/gedzelman_and_arnold_1994/test_fig_2.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/no_env/lamb_et_al_2017/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/no_env/lamb_et_al_2017/test_fig_4.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/no_env/miyake_et_al_1968/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/no_env/miyake_et_al_1968/test_fig_19.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/no_env/pierchala_et_al_2022/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/no_env/pierchala_et_al_2022/test_fig_3.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/no_env/pierchala_et_al_2022/test_fig_4.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/no_env/pierchala_et_al_2022/test_supplement.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/lowe_et_al_2019/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/lowe_et_al_2019/conftest.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_dz_sensitivity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_fig_1.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_fig_2.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_fig_s2.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_surface_tension_models.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/lowe_et_al_2019/test_zero_forg.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/pyrcel/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/pyrcel/test_parcel_example.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/rozanski_and_sonntag_1982/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_a/rozanski_and_sonntag_1982/test_figs_4_5_6.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/test_conservation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/test_displacement.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/test_event_rates.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/test_initialisation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_b/arabas_and_shima_2017/test_vs_scipy.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_b/yang_et_al_2018/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_b/yang_et_al_2018/test_displacement.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_b/yang_et_al_2018/test_initialisation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_b/yang_et_al_2018/test_just_do_it.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/abade_and_albuquerque_2024/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/abade_and_albuquerque_2024/test_fig_2.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/abdul_razzak_ghan_2000/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/abdul_razzak_ghan_2000/test_ARG_example.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/abdul_razzak_ghan_2000/test_just_do_it.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/abdul_razzak_ghan_2000/test_single_supersaturation_peak.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/test_condensation_tolerance.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/test_figure_1_and_2.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/test_figure_3.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/test_figure_4.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/grabowski_and_pawlowska_2023/test_ripening_rate.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/graf_et_al_2019/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/graf_et_al_2019/test_fig_4.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/graf_et_al_2019/test_table_1.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_fig_1.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_fig_3_and_tab_4_upper_rows.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_fig_4_and_7_and_tab_4_bottom_rows.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_fig_5.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_fig_6.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/jensen_and_nugent_2017/test_table_3.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/kreidenweis_et_al_2003/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/kreidenweis_et_al_2003/test_fig_1.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/kreidenweis_et_al_2003/test_ionic_strength.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/kreidenweis_et_al_2003/test_spectrum_at_t_0.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/kreidenweis_et_al_2003/test_table_3.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/niedermeier_et_al_2013/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/smoke_tests/parcel_c/niedermeier_et_al_2013/test_temperature_profile.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/tutorials_tests/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/tutorials_tests/conftest.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/tutorials_tests/test_run_notebooks.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/attributes/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/attributes/test_acidity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/attributes/test_area_radius.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/attributes/test_critical_supersaturation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/attributes/test_fall_velocity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/attributes/test_impl_attribute_registry.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/attributes/test_isotopes.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/attributes/test_multiplicities.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/attributes/test_reynolds_number.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/storage/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/storage/test_basic_ops.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/storage/test_index.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/storage/test_setitem.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/test_collisions_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/test_ctor_defaults.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/test_fake_thrust.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/test_freezing_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/test_isotope_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/test_moments_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/test_oxidation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/test_pair_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/test_physics_methods.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/backends/test_toms748.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/conftest.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dummy_environment.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dummy_particulator.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/collisions/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/collisions/conftest.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/collisions/test_croupiers.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/collisions/test_defaults.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/collisions/test_efficiencies.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/collisions/test_fragmentations.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/collisions/test_kernels.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/collisions/test_sdm_breakup.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/collisions/test_sdm_multi_cell.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/collisions/test_sdm_single_cell.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/condensation/test_diagnostics.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/condensation/test_parcel_sanity_checks.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/condensation/test_ventilation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/displacement/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/displacement/displacement_settings.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/displacement/test_advection.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/displacement/test_courant_product.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/displacement/test_sedimentation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/test_eulerian_advection.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/test_impl_register_dynamic.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/test_isotopic_fractionation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/test_relaxed_velocity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/dynamics/test_terminal_velocity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/impl/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/impl/test_camel_case.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/impl/test_mesh.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/impl/test_moments.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/impl/test_particle_attributes.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/initialisation/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/initialisation/test_aerosol_init.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/initialisation/test_equilibrate_wet_radii.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/initialisation/test_init_fall_momenta.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/initialisation/test_spatial_discretisation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/initialisation/test_spectra_lognormal.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/initialisation/test_spectral_discretisation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/initialisation/test_spectro_glacial_discretisation.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_accommodation_coefficients.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_air_dynamic_viscosity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_bulk_phase_partitioning.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_constants.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_dimensional_analysis.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_drop_growth.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_formulae.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_fragmentation_functions.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_freezing_temperature_spectra.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_hygroscopicity_fierce_diagrams.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_isotope_diffusivity_ratios.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_isotope_equilibrium_fractionation_factors.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_isotope_meteoric_water_line_excess.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_isotope_ratio_evolution.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_isotope_relaxation_timescale.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_latent_heat.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_optical.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_particle_shape_and_density.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_saturation_vapour_pressure.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_spectra.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_spectra_top_hat.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_surface_tension.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_thermal_conductivity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_trivia.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/physics/test_ventilation_coefficient.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/__init__.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/test_ambient_relative_humidity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/test_arbitrary_moment.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/test_averaged_terminal_velocity.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/test_collision_rates.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/test_concentration_product.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/test_cooling_rate.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/test_effective_radii.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/test_impl.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/test_parcel_liquid_water_path.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/test_particle_size_product.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/products/test_particle_size_spectrum.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/test_builder.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/test_formulae.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/test_imports.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tests/unit_tests/test_particulator.py +0 -0
- {PySDM-2.71 → PySDM-2.72}/tutorials/README.md +0 -0
- {PySDM-2.71 → PySDM-2.72}/tutorials/collisions/collection_droplet.svg +0 -0
- {PySDM-2.71 → PySDM-2.72}/tutorials/collisions/collisions_playground.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/tutorials/condensation/condensation_playground.ipynb +0 -0
- {PySDM-2.71 → PySDM-2.72}/tutorials/condensation/kohler_curve.svg +0 -0
|
@@ -69,11 +69,10 @@ jobs:
|
|
|
69
69
|
with:
|
|
70
70
|
python-version: 3.9
|
|
71
71
|
- run: |
|
|
72
|
-
pip install
|
|
72
|
+
pip install pdoc
|
|
73
73
|
pip install -e .
|
|
74
74
|
pip install -e examples
|
|
75
|
-
python -We -m pdoc
|
|
76
|
-
python -We .github/workflows/pdoc_index_workaround.py
|
|
75
|
+
PDOC_ALLOW_EXEC=1 python -We -m pdoc -o html PySDM examples/PySDM_examples -t pdoc_templates
|
|
77
76
|
- if: ${{ github.ref == 'refs/heads/main' && matrix.platform == 'ubuntu-latest' }}
|
|
78
77
|
uses: JamesIves/github-pages-deploy-action@4.1.1
|
|
79
78
|
with:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PySDM
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.72
|
|
4
4
|
Summary: Pythonic particle-based (super-droplet) warm-rain/aqueous-chemistry cloud microphysics package with box, parcel & 1D/2D prescribed-flow examples in Python, Julia and Matlab
|
|
5
5
|
Home-page: https://github.com/open-atmos/PySDM
|
|
6
6
|
Author: https://github.com/open-atmos/PySDM/graphs/contributors
|
|
@@ -32,7 +32,7 @@ Description: # PySDM
|
|
|
32
32
|
[](https://ci.appveyor.com/project/slayoo/pysdm/branch/main)
|
|
33
33
|
[](https://app.codecov.io/gh/open-atmos/PySDM)
|
|
34
34
|
[](https://pypi.org/project/PySDM)
|
|
35
|
-
[](https://open-atmos.github.io/PySDM/)
|
|
36
36
|
|
|
37
37
|
PySDM is a package for simulating the dynamics of population of particles.
|
|
38
38
|
It is intended to serve as a building block for simulation systems modelling
|
|
@@ -62,9 +62,9 @@ Description: # PySDM
|
|
|
62
62
|
PySDM has two alternative parallel number-crunching backends
|
|
63
63
|
available: multi-threaded CPU backend based on [Numba](http://numba.pydata.org/)
|
|
64
64
|
and GPU-resident backend built on top of [ThrustRTC](https://pypi.org/project/ThrustRTC/).
|
|
65
|
-
The [`Numba`](https://open-atmos.github.io/PySDM/PySDM/backends/numba
|
|
65
|
+
The [`Numba`](https://open-atmos.github.io/PySDM/PySDM/backends/numba.html) backend (aliased ``CPU``) features multi-threaded parallelism for
|
|
66
66
|
multi-core CPUs, it uses the just-in-time compilation technique based on the LLVM infrastructure.
|
|
67
|
-
The [`ThrustRTC`](https://open-atmos.github.io/PySDM/PySDM/backends/
|
|
67
|
+
The [`ThrustRTC`](https://open-atmos.github.io/PySDM/PySDM/backends/thrust_rtc.html) backend (aliased ``GPU``) offers GPU-resident operation of PySDM
|
|
68
68
|
leveraging the [SIMT](https://en.wikipedia.org/wiki/Single_instruction,_multiple_threads)
|
|
69
69
|
parallelisation model.
|
|
70
70
|
Using the ``GPU`` backend requires nVidia hardware and [CUDA driver](https://developer.nvidia.com/cuda-downloads).
|
|
@@ -76,7 +76,7 @@ Description: # PySDM
|
|
|
76
76
|
PySDM includes an extension of the SDM scheme to represent collisional breakup described in [de Jong, Mackay et al. 2023](10.5194/gmd-16-4193-2023).
|
|
77
77
|
For a list of talks and other materials on PySDM as well as a list of published papers featuring PySDM simulations, see the [project wiki](https://github.com/open-atmos/PySDM/wiki).
|
|
78
78
|
|
|
79
|
-
A [pdoc-generated](https://
|
|
79
|
+
A [pdoc-generated](https://pdoc.dev/) documentation of PySDM public API is maintained at: [https://open-atmos.github.io/PySDM](https://open-atmos.github.io/PySDM)
|
|
80
80
|
|
|
81
81
|
## Example Jupyter notebooks (reproducing results from literature):
|
|
82
82
|
|
|
@@ -186,8 +186,8 @@ Description: # PySDM
|
|
|
186
186
|
listings provide sample code roughly reproducing the
|
|
187
187
|
Figure 2 from [Shima et al. 2009 paper](http://doi.org/10.1002/qj.441)
|
|
188
188
|
using PySDM from Python, Julia and Matlab.
|
|
189
|
-
It is a [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/
|
|
190
|
-
spectrum is [`Exponential`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html#
|
|
189
|
+
It is a [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/sollision.html#Coalescence)-only set-up in which the initial particle size
|
|
190
|
+
spectrum is [`Exponential`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra/exponential.html#Exponential) and is deterministically sampled to match
|
|
191
191
|
the condition of each super-droplet having equal initial multiplicity:
|
|
192
192
|
<details>
|
|
193
193
|
<summary>Julia (click to expand)</summary>
|
|
@@ -241,9 +241,9 @@ Description: # PySDM
|
|
|
241
241
|
```
|
|
242
242
|
</details>
|
|
243
243
|
|
|
244
|
-
The key element of the PySDM interface is the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html)
|
|
244
|
+
The key element of the PySDM interface is the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator)
|
|
245
245
|
class instances of which are used to manage the system state and control the simulation.
|
|
246
|
-
Instantiation of the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html) class is handled by the [``Builder``](https://open-atmos.github.io/PySDM/PySDM/builder.html)
|
|
246
|
+
Instantiation of the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator) class is handled by the [``Builder``](https://open-atmos.github.io/PySDM/PySDM/builder.html#Builder)
|
|
247
247
|
as exemplified below:
|
|
248
248
|
<details>
|
|
249
249
|
<summary>Julia (click to expand)</summary>
|
|
@@ -313,18 +313,18 @@ Description: # PySDM
|
|
|
313
313
|
The ``backend`` argument may be set to ``CPU`` or ``GPU``
|
|
314
314
|
what translates to choosing the multi-threaded backend or the
|
|
315
315
|
GPU-resident computation mode, respectively.
|
|
316
|
-
The employed [`Box`](https://open-atmos.github.io/PySDM/PySDM/environments/box.html) environment corresponds to a zero-dimensional framework
|
|
316
|
+
The employed [`Box`](https://open-atmos.github.io/PySDM/PySDM/environments/box.html#Box) environment corresponds to a zero-dimensional framework
|
|
317
317
|
(particle positions are not considered).
|
|
318
318
|
The vectors of particle multiplicities ``n`` and particle volumes ``v`` are
|
|
319
319
|
used to initialise super-droplet attributes.
|
|
320
|
-
The [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/
|
|
320
|
+
The [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision.html#Coalescence)
|
|
321
321
|
Monte-Carlo algorithm (Super Droplet Method) is registered as the only
|
|
322
322
|
dynamic in the system.
|
|
323
|
-
Finally, the [`build()`](https://open-atmos.github.io/PySDM/PySDM/builder.html#
|
|
324
|
-
of [`Particulator`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#
|
|
323
|
+
Finally, the [`build()`](https://open-atmos.github.io/PySDM/PySDM/builder.html#Builder.build) method is used to obtain an instance
|
|
324
|
+
of [`Particulator`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator) which can then be used to control time-stepping and
|
|
325
325
|
access simulation state.
|
|
326
326
|
|
|
327
|
-
The [`run(nt)`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#
|
|
327
|
+
The [`run(nt)`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator.run) method advances the simulation by ``nt`` timesteps.
|
|
328
328
|
In the listing below, its usage is interleaved with plotting logic
|
|
329
329
|
which displays a histogram of particle mass distribution
|
|
330
330
|
at selected timesteps:
|
|
@@ -441,16 +441,16 @@ Description: # PySDM
|
|
|
441
441
|
SPECTRUM_INIT["ParticleVolumeVersusRadiusLogarithmSpectrum.__init__()"] -->|instantiates| SPECTRUM
|
|
442
442
|
SPECTRUM[":ParticleVolumeVersusRadiusLogarithmSpectrum"] -->|added as element of| PRODUCTS
|
|
443
443
|
|
|
444
|
-
click COAL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision.html"
|
|
444
|
+
click COAL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision.html#Coalescence"
|
|
445
445
|
click BUILDER_INSTANCE "https://open-atmos.github.io/PySDM/PySDM/builder.html"
|
|
446
446
|
click BUILDER_INIT "https://open-atmos.github.io/PySDM/PySDM/builder.html"
|
|
447
447
|
click BUILDER_ADD_DYN "https://open-atmos.github.io/PySDM/PySDM/builder.html"
|
|
448
|
-
click ENV_INIT "https://open-atmos.github.io/PySDM/PySDM/environments
|
|
449
|
-
click ENV "https://open-atmos.github.io/PySDM/PySDM/environments
|
|
450
|
-
click KERNEL_INIT "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels
|
|
451
|
-
click KERNEL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels
|
|
452
|
-
click EXP_INIT "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra
|
|
453
|
-
click IS "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra
|
|
448
|
+
click ENV_INIT "https://open-atmos.github.io/PySDM/PySDM/environments.html"
|
|
449
|
+
click ENV "https://open-atmos.github.io/PySDM/PySDM/environments.html"
|
|
450
|
+
click KERNEL_INIT "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels.html"
|
|
451
|
+
click KERNEL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels.html"
|
|
452
|
+
click EXP_INIT "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html"
|
|
453
|
+
click IS "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html"
|
|
454
454
|
click CM_INIT "https://open-atmos.github.io/PySDM/PySDM/initialisation/sampling/spectral_sampling.html"
|
|
455
455
|
click CM_INSTANCE "https://open-atmos.github.io/PySDM/PySDM/initialisation/sampling/spectral_sampling.html"
|
|
456
456
|
click SAMPLE "https://open-atmos.github.io/PySDM/PySDM/initialisation/sampling/spectral_sampling.html"
|
|
@@ -466,7 +466,7 @@ Description: # PySDM
|
|
|
466
466
|
|
|
467
467
|
In the following example, a condensation-only setup is used with the adiabatic
|
|
468
468
|
[`Parcel`](https://open-atmos.github.io/PySDM/PySDM/environments/parcel.html) environment.
|
|
469
|
-
An initial [`Lognormal`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html#
|
|
469
|
+
An initial [`Lognormal`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra/lognormal.html#Lognormal)
|
|
470
470
|
spectrum of dry aerosol particles is first initialised to equilibrium wet size for the given
|
|
471
471
|
initial humidity.
|
|
472
472
|
Subsequent particle growth due to [`Condensation`](https://open-atmos.github.io/PySDM/PySDM/dynamics/condensation.html) of water vapour (coupled with the release of latent heat)
|
|
@@ -476,7 +476,7 @@ Description: # PySDM
|
|
|
476
476
|
and depict the evolution of
|
|
477
477
|
[`PeakSupersaturation`](https://open-atmos.github.io/PySDM/PySDM/products/condensation/peak_supersaturation.html),
|
|
478
478
|
[`EffectiveRadius`](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/effective_radius.html),
|
|
479
|
-
[`ParticleConcentration`](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/particle_concentration.html#
|
|
479
|
+
[`ParticleConcentration`](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/particle_concentration.html#ParticleConcentration)
|
|
480
480
|
and the
|
|
481
481
|
[`WaterMixingRatio `](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/water_mixing_ratio.html).
|
|
482
482
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PySDM
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.72
|
|
4
4
|
Summary: Pythonic particle-based (super-droplet) warm-rain/aqueous-chemistry cloud microphysics package with box, parcel & 1D/2D prescribed-flow examples in Python, Julia and Matlab
|
|
5
5
|
Home-page: https://github.com/open-atmos/PySDM
|
|
6
6
|
Author: https://github.com/open-atmos/PySDM/graphs/contributors
|
|
@@ -32,7 +32,7 @@ Description: # PySDM
|
|
|
32
32
|
[](https://ci.appveyor.com/project/slayoo/pysdm/branch/main)
|
|
33
33
|
[](https://app.codecov.io/gh/open-atmos/PySDM)
|
|
34
34
|
[](https://pypi.org/project/PySDM)
|
|
35
|
-
[](https://open-atmos.github.io/PySDM/)
|
|
36
36
|
|
|
37
37
|
PySDM is a package for simulating the dynamics of population of particles.
|
|
38
38
|
It is intended to serve as a building block for simulation systems modelling
|
|
@@ -62,9 +62,9 @@ Description: # PySDM
|
|
|
62
62
|
PySDM has two alternative parallel number-crunching backends
|
|
63
63
|
available: multi-threaded CPU backend based on [Numba](http://numba.pydata.org/)
|
|
64
64
|
and GPU-resident backend built on top of [ThrustRTC](https://pypi.org/project/ThrustRTC/).
|
|
65
|
-
The [`Numba`](https://open-atmos.github.io/PySDM/PySDM/backends/numba
|
|
65
|
+
The [`Numba`](https://open-atmos.github.io/PySDM/PySDM/backends/numba.html) backend (aliased ``CPU``) features multi-threaded parallelism for
|
|
66
66
|
multi-core CPUs, it uses the just-in-time compilation technique based on the LLVM infrastructure.
|
|
67
|
-
The [`ThrustRTC`](https://open-atmos.github.io/PySDM/PySDM/backends/
|
|
67
|
+
The [`ThrustRTC`](https://open-atmos.github.io/PySDM/PySDM/backends/thrust_rtc.html) backend (aliased ``GPU``) offers GPU-resident operation of PySDM
|
|
68
68
|
leveraging the [SIMT](https://en.wikipedia.org/wiki/Single_instruction,_multiple_threads)
|
|
69
69
|
parallelisation model.
|
|
70
70
|
Using the ``GPU`` backend requires nVidia hardware and [CUDA driver](https://developer.nvidia.com/cuda-downloads).
|
|
@@ -76,7 +76,7 @@ Description: # PySDM
|
|
|
76
76
|
PySDM includes an extension of the SDM scheme to represent collisional breakup described in [de Jong, Mackay et al. 2023](10.5194/gmd-16-4193-2023).
|
|
77
77
|
For a list of talks and other materials on PySDM as well as a list of published papers featuring PySDM simulations, see the [project wiki](https://github.com/open-atmos/PySDM/wiki).
|
|
78
78
|
|
|
79
|
-
A [pdoc-generated](https://
|
|
79
|
+
A [pdoc-generated](https://pdoc.dev/) documentation of PySDM public API is maintained at: [https://open-atmos.github.io/PySDM](https://open-atmos.github.io/PySDM)
|
|
80
80
|
|
|
81
81
|
## Example Jupyter notebooks (reproducing results from literature):
|
|
82
82
|
|
|
@@ -186,8 +186,8 @@ Description: # PySDM
|
|
|
186
186
|
listings provide sample code roughly reproducing the
|
|
187
187
|
Figure 2 from [Shima et al. 2009 paper](http://doi.org/10.1002/qj.441)
|
|
188
188
|
using PySDM from Python, Julia and Matlab.
|
|
189
|
-
It is a [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/
|
|
190
|
-
spectrum is [`Exponential`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html#
|
|
189
|
+
It is a [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/sollision.html#Coalescence)-only set-up in which the initial particle size
|
|
190
|
+
spectrum is [`Exponential`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra/exponential.html#Exponential) and is deterministically sampled to match
|
|
191
191
|
the condition of each super-droplet having equal initial multiplicity:
|
|
192
192
|
<details>
|
|
193
193
|
<summary>Julia (click to expand)</summary>
|
|
@@ -241,9 +241,9 @@ Description: # PySDM
|
|
|
241
241
|
```
|
|
242
242
|
</details>
|
|
243
243
|
|
|
244
|
-
The key element of the PySDM interface is the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html)
|
|
244
|
+
The key element of the PySDM interface is the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator)
|
|
245
245
|
class instances of which are used to manage the system state and control the simulation.
|
|
246
|
-
Instantiation of the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html) class is handled by the [``Builder``](https://open-atmos.github.io/PySDM/PySDM/builder.html)
|
|
246
|
+
Instantiation of the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator) class is handled by the [``Builder``](https://open-atmos.github.io/PySDM/PySDM/builder.html#Builder)
|
|
247
247
|
as exemplified below:
|
|
248
248
|
<details>
|
|
249
249
|
<summary>Julia (click to expand)</summary>
|
|
@@ -313,18 +313,18 @@ Description: # PySDM
|
|
|
313
313
|
The ``backend`` argument may be set to ``CPU`` or ``GPU``
|
|
314
314
|
what translates to choosing the multi-threaded backend or the
|
|
315
315
|
GPU-resident computation mode, respectively.
|
|
316
|
-
The employed [`Box`](https://open-atmos.github.io/PySDM/PySDM/environments/box.html) environment corresponds to a zero-dimensional framework
|
|
316
|
+
The employed [`Box`](https://open-atmos.github.io/PySDM/PySDM/environments/box.html#Box) environment corresponds to a zero-dimensional framework
|
|
317
317
|
(particle positions are not considered).
|
|
318
318
|
The vectors of particle multiplicities ``n`` and particle volumes ``v`` are
|
|
319
319
|
used to initialise super-droplet attributes.
|
|
320
|
-
The [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/
|
|
320
|
+
The [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision.html#Coalescence)
|
|
321
321
|
Monte-Carlo algorithm (Super Droplet Method) is registered as the only
|
|
322
322
|
dynamic in the system.
|
|
323
|
-
Finally, the [`build()`](https://open-atmos.github.io/PySDM/PySDM/builder.html#
|
|
324
|
-
of [`Particulator`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#
|
|
323
|
+
Finally, the [`build()`](https://open-atmos.github.io/PySDM/PySDM/builder.html#Builder.build) method is used to obtain an instance
|
|
324
|
+
of [`Particulator`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator) which can then be used to control time-stepping and
|
|
325
325
|
access simulation state.
|
|
326
326
|
|
|
327
|
-
The [`run(nt)`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#
|
|
327
|
+
The [`run(nt)`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator.run) method advances the simulation by ``nt`` timesteps.
|
|
328
328
|
In the listing below, its usage is interleaved with plotting logic
|
|
329
329
|
which displays a histogram of particle mass distribution
|
|
330
330
|
at selected timesteps:
|
|
@@ -441,16 +441,16 @@ Description: # PySDM
|
|
|
441
441
|
SPECTRUM_INIT["ParticleVolumeVersusRadiusLogarithmSpectrum.__init__()"] -->|instantiates| SPECTRUM
|
|
442
442
|
SPECTRUM[":ParticleVolumeVersusRadiusLogarithmSpectrum"] -->|added as element of| PRODUCTS
|
|
443
443
|
|
|
444
|
-
click COAL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision.html"
|
|
444
|
+
click COAL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision.html#Coalescence"
|
|
445
445
|
click BUILDER_INSTANCE "https://open-atmos.github.io/PySDM/PySDM/builder.html"
|
|
446
446
|
click BUILDER_INIT "https://open-atmos.github.io/PySDM/PySDM/builder.html"
|
|
447
447
|
click BUILDER_ADD_DYN "https://open-atmos.github.io/PySDM/PySDM/builder.html"
|
|
448
|
-
click ENV_INIT "https://open-atmos.github.io/PySDM/PySDM/environments
|
|
449
|
-
click ENV "https://open-atmos.github.io/PySDM/PySDM/environments
|
|
450
|
-
click KERNEL_INIT "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels
|
|
451
|
-
click KERNEL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels
|
|
452
|
-
click EXP_INIT "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra
|
|
453
|
-
click IS "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra
|
|
448
|
+
click ENV_INIT "https://open-atmos.github.io/PySDM/PySDM/environments.html"
|
|
449
|
+
click ENV "https://open-atmos.github.io/PySDM/PySDM/environments.html"
|
|
450
|
+
click KERNEL_INIT "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels.html"
|
|
451
|
+
click KERNEL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels.html"
|
|
452
|
+
click EXP_INIT "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html"
|
|
453
|
+
click IS "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html"
|
|
454
454
|
click CM_INIT "https://open-atmos.github.io/PySDM/PySDM/initialisation/sampling/spectral_sampling.html"
|
|
455
455
|
click CM_INSTANCE "https://open-atmos.github.io/PySDM/PySDM/initialisation/sampling/spectral_sampling.html"
|
|
456
456
|
click SAMPLE "https://open-atmos.github.io/PySDM/PySDM/initialisation/sampling/spectral_sampling.html"
|
|
@@ -466,7 +466,7 @@ Description: # PySDM
|
|
|
466
466
|
|
|
467
467
|
In the following example, a condensation-only setup is used with the adiabatic
|
|
468
468
|
[`Parcel`](https://open-atmos.github.io/PySDM/PySDM/environments/parcel.html) environment.
|
|
469
|
-
An initial [`Lognormal`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html#
|
|
469
|
+
An initial [`Lognormal`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra/lognormal.html#Lognormal)
|
|
470
470
|
spectrum of dry aerosol particles is first initialised to equilibrium wet size for the given
|
|
471
471
|
initial humidity.
|
|
472
472
|
Subsequent particle growth due to [`Condensation`](https://open-atmos.github.io/PySDM/PySDM/dynamics/condensation.html) of water vapour (coupled with the release of latent heat)
|
|
@@ -476,7 +476,7 @@ Description: # PySDM
|
|
|
476
476
|
and depict the evolution of
|
|
477
477
|
[`PeakSupersaturation`](https://open-atmos.github.io/PySDM/PySDM/products/condensation/peak_supersaturation.html),
|
|
478
478
|
[`EffectiveRadius`](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/effective_radius.html),
|
|
479
|
-
[`ParticleConcentration`](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/particle_concentration.html#
|
|
479
|
+
[`ParticleConcentration`](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/particle_concentration.html#ParticleConcentration)
|
|
480
480
|
and the
|
|
481
481
|
[`WaterMixingRatio `](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/water_mixing_ratio.html).
|
|
482
482
|
|
|
@@ -15,7 +15,6 @@ setup.py
|
|
|
15
15
|
.github/workflows/cancel.yml
|
|
16
16
|
.github/workflows/joss.yml
|
|
17
17
|
.github/workflows/joss_paper.yml
|
|
18
|
-
.github/workflows/pdoc_index_workaround.py
|
|
19
18
|
.github/workflows/readme_snippets.yml
|
|
20
19
|
.github/workflows/stale.yml
|
|
21
20
|
.github/workflows/tests+artifacts+pypi.yml
|
|
@@ -633,6 +632,7 @@ paper/paper.md
|
|
|
633
632
|
paper/paperv1.md
|
|
634
633
|
paper/readme.pdf
|
|
635
634
|
paper/test.pdf
|
|
635
|
+
pdoc_templates/index.html.jinja2
|
|
636
636
|
tests/__init__.py
|
|
637
637
|
tests/examples_tests/__init__.py
|
|
638
638
|
tests/examples_tests/conftest.py
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
[](https://ci.appveyor.com/project/slayoo/pysdm/branch/main)
|
|
22
22
|
[](https://app.codecov.io/gh/open-atmos/PySDM)
|
|
23
23
|
[](https://pypi.org/project/PySDM)
|
|
24
|
-
[](https://open-atmos.github.io/PySDM/)
|
|
25
25
|
|
|
26
26
|
PySDM is a package for simulating the dynamics of population of particles.
|
|
27
27
|
It is intended to serve as a building block for simulation systems modelling
|
|
@@ -51,9 +51,9 @@ Like the examples, these tutorials can be executed or viewed "in the cloud" maki
|
|
|
51
51
|
PySDM has two alternative parallel number-crunching backends
|
|
52
52
|
available: multi-threaded CPU backend based on [Numba](http://numba.pydata.org/)
|
|
53
53
|
and GPU-resident backend built on top of [ThrustRTC](https://pypi.org/project/ThrustRTC/).
|
|
54
|
-
The [`Numba`](https://open-atmos.github.io/PySDM/PySDM/backends/numba
|
|
54
|
+
The [`Numba`](https://open-atmos.github.io/PySDM/PySDM/backends/numba.html) backend (aliased ``CPU``) features multi-threaded parallelism for
|
|
55
55
|
multi-core CPUs, it uses the just-in-time compilation technique based on the LLVM infrastructure.
|
|
56
|
-
The [`ThrustRTC`](https://open-atmos.github.io/PySDM/PySDM/backends/
|
|
56
|
+
The [`ThrustRTC`](https://open-atmos.github.io/PySDM/PySDM/backends/thrust_rtc.html) backend (aliased ``GPU``) offers GPU-resident operation of PySDM
|
|
57
57
|
leveraging the [SIMT](https://en.wikipedia.org/wiki/Single_instruction,_multiple_threads)
|
|
58
58
|
parallelisation model.
|
|
59
59
|
Using the ``GPU`` backend requires nVidia hardware and [CUDA driver](https://developer.nvidia.com/cuda-downloads).
|
|
@@ -65,7 +65,7 @@ For an overview of PySDM features (and the preferred way to cite PySDM in papers
|
|
|
65
65
|
PySDM includes an extension of the SDM scheme to represent collisional breakup described in [de Jong, Mackay et al. 2023](10.5194/gmd-16-4193-2023).
|
|
66
66
|
For a list of talks and other materials on PySDM as well as a list of published papers featuring PySDM simulations, see the [project wiki](https://github.com/open-atmos/PySDM/wiki).
|
|
67
67
|
|
|
68
|
-
A [pdoc-generated](https://
|
|
68
|
+
A [pdoc-generated](https://pdoc.dev/) documentation of PySDM public API is maintained at: [https://open-atmos.github.io/PySDM](https://open-atmos.github.io/PySDM)
|
|
69
69
|
|
|
70
70
|
## Example Jupyter notebooks (reproducing results from literature):
|
|
71
71
|
|
|
@@ -175,8 +175,8 @@ In order to depict the PySDM API with a practical example, the following
|
|
|
175
175
|
listings provide sample code roughly reproducing the
|
|
176
176
|
Figure 2 from [Shima et al. 2009 paper](http://doi.org/10.1002/qj.441)
|
|
177
177
|
using PySDM from Python, Julia and Matlab.
|
|
178
|
-
It is a [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/
|
|
179
|
-
spectrum is [`Exponential`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html#
|
|
178
|
+
It is a [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/sollision.html#Coalescence)-only set-up in which the initial particle size
|
|
179
|
+
spectrum is [`Exponential`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra/exponential.html#Exponential) and is deterministically sampled to match
|
|
180
180
|
the condition of each super-droplet having equal initial multiplicity:
|
|
181
181
|
<details>
|
|
182
182
|
<summary>Julia (click to expand)</summary>
|
|
@@ -230,9 +230,9 @@ attributes['volume'], attributes['multiplicity'] = ConstantMultiplicity(initial_
|
|
|
230
230
|
```
|
|
231
231
|
</details>
|
|
232
232
|
|
|
233
|
-
The key element of the PySDM interface is the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html)
|
|
233
|
+
The key element of the PySDM interface is the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator)
|
|
234
234
|
class instances of which are used to manage the system state and control the simulation.
|
|
235
|
-
Instantiation of the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html) class is handled by the [``Builder``](https://open-atmos.github.io/PySDM/PySDM/builder.html)
|
|
235
|
+
Instantiation of the [``Particulator``](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator) class is handled by the [``Builder``](https://open-atmos.github.io/PySDM/PySDM/builder.html#Builder)
|
|
236
236
|
as exemplified below:
|
|
237
237
|
<details>
|
|
238
238
|
<summary>Julia (click to expand)</summary>
|
|
@@ -302,18 +302,18 @@ particulator = builder.build(attributes, products)
|
|
|
302
302
|
The ``backend`` argument may be set to ``CPU`` or ``GPU``
|
|
303
303
|
what translates to choosing the multi-threaded backend or the
|
|
304
304
|
GPU-resident computation mode, respectively.
|
|
305
|
-
The employed [`Box`](https://open-atmos.github.io/PySDM/PySDM/environments/box.html) environment corresponds to a zero-dimensional framework
|
|
305
|
+
The employed [`Box`](https://open-atmos.github.io/PySDM/PySDM/environments/box.html#Box) environment corresponds to a zero-dimensional framework
|
|
306
306
|
(particle positions are not considered).
|
|
307
307
|
The vectors of particle multiplicities ``n`` and particle volumes ``v`` are
|
|
308
308
|
used to initialise super-droplet attributes.
|
|
309
|
-
The [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/
|
|
309
|
+
The [`Coalescence`](https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision.html#Coalescence)
|
|
310
310
|
Monte-Carlo algorithm (Super Droplet Method) is registered as the only
|
|
311
311
|
dynamic in the system.
|
|
312
|
-
Finally, the [`build()`](https://open-atmos.github.io/PySDM/PySDM/builder.html#
|
|
313
|
-
of [`Particulator`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#
|
|
312
|
+
Finally, the [`build()`](https://open-atmos.github.io/PySDM/PySDM/builder.html#Builder.build) method is used to obtain an instance
|
|
313
|
+
of [`Particulator`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator) which can then be used to control time-stepping and
|
|
314
314
|
access simulation state.
|
|
315
315
|
|
|
316
|
-
The [`run(nt)`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#
|
|
316
|
+
The [`run(nt)`](https://open-atmos.github.io/PySDM/PySDM/particulator.html#Particulator.run) method advances the simulation by ``nt`` timesteps.
|
|
317
317
|
In the listing below, its usage is interleaved with plotting logic
|
|
318
318
|
which displays a histogram of particle mass distribution
|
|
319
319
|
at selected timesteps:
|
|
@@ -430,16 +430,16 @@ The component submodules used to create this simulation are visualized below:
|
|
|
430
430
|
SPECTRUM_INIT["ParticleVolumeVersusRadiusLogarithmSpectrum.__init__()"] -->|instantiates| SPECTRUM
|
|
431
431
|
SPECTRUM[":ParticleVolumeVersusRadiusLogarithmSpectrum"] -->|added as element of| PRODUCTS
|
|
432
432
|
|
|
433
|
-
click COAL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision.html"
|
|
433
|
+
click COAL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision.html#Coalescence"
|
|
434
434
|
click BUILDER_INSTANCE "https://open-atmos.github.io/PySDM/PySDM/builder.html"
|
|
435
435
|
click BUILDER_INIT "https://open-atmos.github.io/PySDM/PySDM/builder.html"
|
|
436
436
|
click BUILDER_ADD_DYN "https://open-atmos.github.io/PySDM/PySDM/builder.html"
|
|
437
|
-
click ENV_INIT "https://open-atmos.github.io/PySDM/PySDM/environments
|
|
438
|
-
click ENV "https://open-atmos.github.io/PySDM/PySDM/environments
|
|
439
|
-
click KERNEL_INIT "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels
|
|
440
|
-
click KERNEL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels
|
|
441
|
-
click EXP_INIT "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra
|
|
442
|
-
click IS "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra
|
|
437
|
+
click ENV_INIT "https://open-atmos.github.io/PySDM/PySDM/environments.html"
|
|
438
|
+
click ENV "https://open-atmos.github.io/PySDM/PySDM/environments.html"
|
|
439
|
+
click KERNEL_INIT "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels.html"
|
|
440
|
+
click KERNEL "https://open-atmos.github.io/PySDM/PySDM/dynamics/collisions/collision_kernels.html"
|
|
441
|
+
click EXP_INIT "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html"
|
|
442
|
+
click IS "https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html"
|
|
443
443
|
click CM_INIT "https://open-atmos.github.io/PySDM/PySDM/initialisation/sampling/spectral_sampling.html"
|
|
444
444
|
click CM_INSTANCE "https://open-atmos.github.io/PySDM/PySDM/initialisation/sampling/spectral_sampling.html"
|
|
445
445
|
click SAMPLE "https://open-atmos.github.io/PySDM/PySDM/initialisation/sampling/spectral_sampling.html"
|
|
@@ -455,7 +455,7 @@ The component submodules used to create this simulation are visualized below:
|
|
|
455
455
|
|
|
456
456
|
In the following example, a condensation-only setup is used with the adiabatic
|
|
457
457
|
[`Parcel`](https://open-atmos.github.io/PySDM/PySDM/environments/parcel.html) environment.
|
|
458
|
-
An initial [`Lognormal`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra.html#
|
|
458
|
+
An initial [`Lognormal`](https://open-atmos.github.io/PySDM/PySDM/initialisation/spectra/lognormal.html#Lognormal)
|
|
459
459
|
spectrum of dry aerosol particles is first initialised to equilibrium wet size for the given
|
|
460
460
|
initial humidity.
|
|
461
461
|
Subsequent particle growth due to [`Condensation`](https://open-atmos.github.io/PySDM/PySDM/dynamics/condensation.html) of water vapour (coupled with the release of latent heat)
|
|
@@ -465,7 +465,7 @@ Results of the simulation are plotted against vertical
|
|
|
465
465
|
and depict the evolution of
|
|
466
466
|
[`PeakSupersaturation`](https://open-atmos.github.io/PySDM/PySDM/products/condensation/peak_supersaturation.html),
|
|
467
467
|
[`EffectiveRadius`](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/effective_radius.html),
|
|
468
|
-
[`ParticleConcentration`](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/particle_concentration.html#
|
|
468
|
+
[`ParticleConcentration`](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/particle_concentration.html#ParticleConcentration)
|
|
469
469
|
and the
|
|
470
470
|
[`WaterMixingRatio `](https://open-atmos.github.io/PySDM/PySDM/products/size_spectral/water_mixing_ratio.html).
|
|
471
471
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{% extends "default/index.html.jinja2" %}
|
|
2
|
+
|
|
3
|
+
{% block title %}PySDM module list{% endblock %}
|
|
4
|
+
|
|
5
|
+
{% block nav %}
|
|
6
|
+
<h2>Available Modules</h2>
|
|
7
|
+
<ul>
|
|
8
|
+
{% for submodule in all_modules if "." not in submodule %}
|
|
9
|
+
<li><a href="{{ submodule.replace(".","/") }}.html">{{ submodule }}</a></li>
|
|
10
|
+
{% endfor %}
|
|
11
|
+
</ul>
|
|
12
|
+
{% endblock %}
|
|
13
|
+
|
|
14
|
+
{% block content %}
|
|
15
|
+
<main class="pdoc">
|
|
16
|
+
|
|
17
|
+
{% filter to_html %}
|
|
18
|
+
# PySDM documentation home page
|
|
19
|
+
{% endfilter %}
|
|
20
|
+
|
|
21
|
+
</main>
|
|
22
|
+
{% include "search.html.jinja2" %}
|
|
23
|
+
{% endblock %}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
workaround for https://github.com/pdoc3/pdoc/issues/101#issuecomment-526957342
|
|
3
|
-
extracted from pdoc's cli.py
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
import inspect
|
|
7
|
-
from pdoc import import_module, _render_template
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
modules = [
|
|
11
|
-
import_module(module, reload=False)
|
|
12
|
-
for module in ('PySDM', 'examples/PySDM_examples')
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
with open('html/index.html', 'w', encoding='utf-8') as index:
|
|
16
|
-
index.write(
|
|
17
|
-
_render_template(
|
|
18
|
-
'/html.mako',
|
|
19
|
-
modules=sorted((module.__name__, inspect.getdoc(module)) for module in modules)
|
|
20
|
-
)
|
|
21
|
-
)
|
|
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
|
|
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
|
|
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
|
|
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
|