PySDM-examples 2.74__py3-none-any.whl → 2.77__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py +1 -1
- PySDM_examples/Alpert_and_Knopf_2016/simulation.py +2 -5
- PySDM_examples/Arabas_and_Shima_2017/settings.py +1 -1
- PySDM_examples/Arabas_et_al_2023/run_simulation.py +1 -2
- PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py +1 -3
- PySDM_examples/Jensen_and_Nugent_2017/simulation.py +2 -2
- PySDM_examples/Kreidenweis_et_al_2003/settings.py +2 -2
- PySDM_examples/Lowe_et_al_2019/settings.py +1 -3
- PySDM_examples/Niedermeier_et_al_2014/settings.py +1 -2
- PySDM_examples/Pyrcel/settings.py +2 -5
- PySDM_examples/Pyrcel/tutorial_settings.py +2 -5
- PySDM_examples/Yang_et_al_2018/simulation.py +1 -3
- PySDM_examples/seeding/__init__.py +2 -0
- PySDM_examples/seeding/settings.py +65 -0
- PySDM_examples/seeding/simulation.py +97 -0
- {PySDM_examples-2.74.dist-info → PySDM_examples-2.77.dist-info}/METADATA +1 -1
- {PySDM_examples-2.74.dist-info → PySDM_examples-2.77.dist-info}/RECORD +19 -16
- {PySDM_examples-2.74.dist-info → PySDM_examples-2.77.dist-info}/WHEEL +0 -0
- {PySDM_examples-2.74.dist-info → PySDM_examples-2.77.dist-info}/top_level.txt +0 -0
|
@@ -35,7 +35,7 @@ def run_parcel(
|
|
|
35
35
|
|
|
36
36
|
formulae = Formulae(constants=CONSTANTS_ARG)
|
|
37
37
|
const = formulae.constants
|
|
38
|
-
pv0 = RH0 * formulae.saturation_vapour_pressure.
|
|
38
|
+
pv0 = RH0 * formulae.saturation_vapour_pressure.pvs_water(T0)
|
|
39
39
|
|
|
40
40
|
env = Parcel(
|
|
41
41
|
dt=dt,
|
|
@@ -11,7 +11,6 @@ from PySDM.dynamics import Freezing
|
|
|
11
11
|
from PySDM.environments import Box
|
|
12
12
|
from PySDM.initialisation import discretise_multiplicities
|
|
13
13
|
from PySDM.initialisation.sampling import spectral_sampling
|
|
14
|
-
from PySDM.physics import constants as const
|
|
15
14
|
from PySDM.physics import si
|
|
16
15
|
from PySDM.products import IceWaterContent, TotalUnfrozenImmersedSurfaceArea
|
|
17
16
|
|
|
@@ -143,7 +142,7 @@ class Simulation:
|
|
|
143
142
|
svp = formulae.saturation_vapour_pressure
|
|
144
143
|
plot_x = np.linspace(*self.temperature_range) * si.K
|
|
145
144
|
plot_y = formulae.heterogeneous_ice_nucleation_rate.j_het(
|
|
146
|
-
svp.
|
|
145
|
+
svp.pvs_ice(plot_x) / svp.pvs_water(plot_x)
|
|
147
146
|
)
|
|
148
147
|
pyplot.grid()
|
|
149
148
|
pyplot.plot(plot_x, plot_y / yunit, color="red", label="ABIFM $J_{het}$")
|
|
@@ -252,9 +251,7 @@ def simulation(
|
|
|
252
251
|
for i in range(int(total_time / time_step) + 1):
|
|
253
252
|
if cooling_rate != 0:
|
|
254
253
|
env["T"] -= np.full((1,), cooling_rate * time_step / 2)
|
|
255
|
-
env["a_w_ice"] = svp.
|
|
256
|
-
env["T"][0] - const.T0
|
|
257
|
-
)
|
|
254
|
+
env["a_w_ice"] = svp.pvs_ice(env["T"][0]) / svp.pvs_water(env["T"][0])
|
|
258
255
|
particulator.run(0 if i == 0 else 1)
|
|
259
256
|
if cooling_rate != 0:
|
|
260
257
|
env["T"] -= np.full((1,), cooling_rate * time_step / 2)
|
|
@@ -27,7 +27,7 @@ class Settings:
|
|
|
27
27
|
self.T0 = 300 * si.kelvin
|
|
28
28
|
self.z_half = 150 * si.metres
|
|
29
29
|
|
|
30
|
-
pvs = self.formulae.saturation_vapour_pressure.
|
|
30
|
+
pvs = self.formulae.saturation_vapour_pressure.pvs_water(self.T0)
|
|
31
31
|
self.initial_water_vapour_mixing_ratio = const.eps / (
|
|
32
32
|
self.p0 / self.RH0 / pvs - 1
|
|
33
33
|
)
|
|
@@ -4,10 +4,9 @@ import numpy as np
|
|
|
4
4
|
def update_thermo(particulator, T):
|
|
5
5
|
env = particulator.environment
|
|
6
6
|
svp = particulator.formulae.saturation_vapour_pressure
|
|
7
|
-
const = particulator.formulae.constants
|
|
8
7
|
|
|
9
8
|
env["T"] = T
|
|
10
|
-
env["a_w_ice"] = svp.
|
|
9
|
+
env["a_w_ice"] = svp.pvs_ice(T) / svp.pvs_water(T)
|
|
11
10
|
|
|
12
11
|
|
|
13
12
|
def run_simulation(particulator, temperature_profile, n_steps):
|
|
@@ -61,9 +61,7 @@ class Settings:
|
|
|
61
61
|
self.initial_temperature = initial_temperature
|
|
62
62
|
pv0 = (
|
|
63
63
|
initial_relative_humidity
|
|
64
|
-
* self.formulae.saturation_vapour_pressure.
|
|
65
|
-
initial_temperature - const.T0
|
|
66
|
-
)
|
|
64
|
+
* self.formulae.saturation_vapour_pressure.pvs_water(initial_temperature)
|
|
67
65
|
)
|
|
68
66
|
self.initial_vapour_mixing_ratio = const.eps * pv0 / (initial_pressure - pv0)
|
|
69
67
|
self.t_max = displacement / vertical_velocity
|
|
@@ -29,9 +29,9 @@ class Simulation(BasicSimulation):
|
|
|
29
29
|
gravitational_coalsecence: bool = False,
|
|
30
30
|
):
|
|
31
31
|
const = settings.formulae.constants
|
|
32
|
-
|
|
32
|
+
pvs_water = settings.formulae.saturation_vapour_pressure.pvs_water
|
|
33
33
|
initial_water_vapour_mixing_ratio = const.eps / (
|
|
34
|
-
settings.p0 / settings.RH0 /
|
|
34
|
+
settings.p0 / settings.RH0 / pvs_water(settings.T0) - 1
|
|
35
35
|
)
|
|
36
36
|
|
|
37
37
|
n_gccn = np.count_nonzero(table_3.NA) if gccn else 0
|
|
@@ -7,7 +7,7 @@ from PySDM.dynamics.impl.chemistry_utils import AQUEOUS_COMPOUNDS
|
|
|
7
7
|
from PySDM.initialisation import spectra
|
|
8
8
|
from PySDM.initialisation.sampling import spectral_sampling as spec_sampling
|
|
9
9
|
from PySDM.physics import si
|
|
10
|
-
from PySDM.physics.constants import PPB, PPM
|
|
10
|
+
from PySDM.physics.constants import PPB, PPM
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
@strict
|
|
@@ -40,7 +40,7 @@ class Settings:
|
|
|
40
40
|
|
|
41
41
|
self.p0 = 950 * si.mbar
|
|
42
42
|
self.T0 = 285.2 * si.K
|
|
43
|
-
pv0 = 0.95 * self.formulae.saturation_vapour_pressure.
|
|
43
|
+
pv0 = 0.95 * self.formulae.saturation_vapour_pressure.pvs_water(self.T0)
|
|
44
44
|
self.initial_water_vapour_mixing_ratio = const.eps * pv0 / (self.p0 - pv0)
|
|
45
45
|
self.kappa = 0.61
|
|
46
46
|
|
|
@@ -44,9 +44,7 @@ class Settings:
|
|
|
44
44
|
|
|
45
45
|
self.p0 = 980 * si.mbar
|
|
46
46
|
self.T0 = 280 * si.K
|
|
47
|
-
pv0 = 0.999 * self.formulae.saturation_vapour_pressure.
|
|
48
|
-
self.T0 - const.T0
|
|
49
|
-
)
|
|
47
|
+
pv0 = 0.999 * self.formulae.saturation_vapour_pressure.pvs_water(self.T0)
|
|
50
48
|
self.initial_water_vapour_mixing_ratio = const.eps * pv0 / (self.p0 - pv0)
|
|
51
49
|
|
|
52
50
|
self.cloud_radius_range = (0.5 * si.micrometre, np.inf)
|
|
@@ -3,7 +3,6 @@ from typing import Optional
|
|
|
3
3
|
from pystrict import strict
|
|
4
4
|
|
|
5
5
|
from PySDM import Formulae
|
|
6
|
-
from PySDM.physics import constants as const
|
|
7
6
|
from PySDM.physics import si
|
|
8
7
|
|
|
9
8
|
|
|
@@ -40,7 +39,7 @@ class Settings:
|
|
|
40
39
|
|
|
41
40
|
@property
|
|
42
41
|
def pv0(self):
|
|
43
|
-
pvs = self.formulae.saturation_vapour_pressure.
|
|
42
|
+
pvs = self.formulae.saturation_vapour_pressure.pvs_water(self.T0)
|
|
44
43
|
return self.initial_relative_humidity * pvs
|
|
45
44
|
|
|
46
45
|
@property
|
|
@@ -29,11 +29,8 @@ class Settings:
|
|
|
29
29
|
self.vertical_velocity = vertical_velocity
|
|
30
30
|
self.initial_pressure = initial_pressure
|
|
31
31
|
self.initial_temperature = initial_temperature
|
|
32
|
-
pv0 = (
|
|
33
|
-
|
|
34
|
-
* formulae.saturation_vapour_pressure.pvs_Celsius(
|
|
35
|
-
initial_temperature - const.T0
|
|
36
|
-
)
|
|
32
|
+
pv0 = initial_relative_humidity * formulae.saturation_vapour_pressure.pvs_water(
|
|
33
|
+
initial_temperature
|
|
37
34
|
)
|
|
38
35
|
self.initial_vapour_mixing_ratio = const.eps * pv0 / (initial_pressure - pv0)
|
|
39
36
|
self.t_max = displacement / vertical_velocity
|
|
@@ -29,11 +29,8 @@ class Settings:
|
|
|
29
29
|
self.vertical_velocity = vertical_velocity
|
|
30
30
|
self.initial_pressure = initial_pressure
|
|
31
31
|
self.initial_temperature = initial_temperature
|
|
32
|
-
pv0 = (
|
|
33
|
-
|
|
34
|
-
* formulae.saturation_vapour_pressure.pvs_Celsius(
|
|
35
|
-
initial_temperature - const.T0
|
|
36
|
-
)
|
|
32
|
+
pv0 = initial_relative_humidity * formulae.saturation_vapour_pressure.pvs_water(
|
|
33
|
+
initial_temperature
|
|
37
34
|
)
|
|
38
35
|
self.initial_vapour_mixing_ratio = const.eps * pv0 / (initial_pressure - pv0)
|
|
39
36
|
self.t_max = displacement / vertical_velocity
|
|
@@ -30,9 +30,7 @@ class Simulation:
|
|
|
30
30
|
/ (
|
|
31
31
|
settings.p0
|
|
32
32
|
/ settings.RH0
|
|
33
|
-
/ self.formulae.saturation_vapour_pressure.
|
|
34
|
-
settings.T0 - self.formulae.constants.T0
|
|
35
|
-
)
|
|
33
|
+
/ self.formulae.saturation_vapour_pressure.pvs_water(settings.T0)
|
|
36
34
|
- 1
|
|
37
35
|
),
|
|
38
36
|
T0=settings.T0,
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
from pystrict import strict
|
|
3
|
+
from PySDM.initialisation.spectra import Lognormal
|
|
4
|
+
from PySDM.initialisation.sampling.spectral_sampling import ConstantMultiplicity
|
|
5
|
+
from PySDM.physics import si
|
|
6
|
+
from PySDM import Formulae
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@strict
|
|
10
|
+
class Settings:
|
|
11
|
+
def __init__(
|
|
12
|
+
self,
|
|
13
|
+
*,
|
|
14
|
+
super_droplet_injection_rate: callable,
|
|
15
|
+
n_sd_initial: int,
|
|
16
|
+
n_sd_seeding: int,
|
|
17
|
+
rain_water_radius_threshold: float,
|
|
18
|
+
formulae: Formulae,
|
|
19
|
+
enable_collisions: bool = True,
|
|
20
|
+
):
|
|
21
|
+
self.enable_collisions = enable_collisions
|
|
22
|
+
self.formulae = formulae
|
|
23
|
+
self.n_sd_initial = n_sd_initial
|
|
24
|
+
self.n_sd_seeding = n_sd_seeding
|
|
25
|
+
self.rain_water_radius_threshold = rain_water_radius_threshold
|
|
26
|
+
|
|
27
|
+
self.t_max = 25 * si.min
|
|
28
|
+
self.w_max = 3 * si.m / si.s
|
|
29
|
+
self.w_min = 0.025 * si.m / si.s
|
|
30
|
+
|
|
31
|
+
self.timestep = 15 * si.s
|
|
32
|
+
self.mass_of_dry_air = 666 * si.kg
|
|
33
|
+
|
|
34
|
+
self.updraft = (
|
|
35
|
+
lambda t: self.w_min
|
|
36
|
+
+ (self.w_max - self.w_min)
|
|
37
|
+
* np.maximum(0, np.sin(t / self.t_max * 2 * np.pi)) ** 2
|
|
38
|
+
)
|
|
39
|
+
self.initial_water_vapour_mixing_ratio = 666 / 30 * si.g / si.kg
|
|
40
|
+
self.initial_total_pressure = 1000 * si.hPa
|
|
41
|
+
self.initial_temperature = 300 * si.K
|
|
42
|
+
self.initial_aerosol_kappa = 0.5
|
|
43
|
+
self.initial_aerosol_dry_radii = Lognormal(
|
|
44
|
+
norm_factor=200 / si.mg * self.mass_of_dry_air,
|
|
45
|
+
m_mode=75 * si.nm,
|
|
46
|
+
s_geom=1.6,
|
|
47
|
+
)
|
|
48
|
+
self.super_droplet_injection_rate = super_droplet_injection_rate
|
|
49
|
+
|
|
50
|
+
r_dry, n_in_dv = ConstantMultiplicity(
|
|
51
|
+
Lognormal(
|
|
52
|
+
norm_factor=10 / si.mg * self.mass_of_dry_air,
|
|
53
|
+
m_mode=1 * si.um,
|
|
54
|
+
s_geom=1.1,
|
|
55
|
+
)
|
|
56
|
+
).sample(
|
|
57
|
+
n_sd=n_sd_seeding
|
|
58
|
+
) # TODO #1387: does not to be the same?
|
|
59
|
+
v_dry = self.formulae.trivia.volume(radius=r_dry)
|
|
60
|
+
self.seeded_particle_multiplicity = n_in_dv
|
|
61
|
+
self.seeded_particle_extensive_attributes = {
|
|
62
|
+
"water mass": [0.0001 * si.ng] * n_sd_seeding,
|
|
63
|
+
"dry volume": v_dry,
|
|
64
|
+
"kappa times dry volume": 0.8 * v_dry,
|
|
65
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
|
|
3
|
+
from PySDM_examples.seeding.settings import Settings
|
|
4
|
+
|
|
5
|
+
from PySDM import Builder
|
|
6
|
+
from PySDM.backends import CPU
|
|
7
|
+
from PySDM.environments import Parcel
|
|
8
|
+
from PySDM.dynamics import Condensation, AmbientThermodynamics, Coalescence, Seeding
|
|
9
|
+
from PySDM.dynamics.collisions.collision_kernels import Geometric
|
|
10
|
+
from PySDM.initialisation.sampling.spectral_sampling import ConstantMultiplicity
|
|
11
|
+
from PySDM import products
|
|
12
|
+
from PySDM.physics import si
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Simulation:
|
|
16
|
+
def __init__(self, settings: Settings):
|
|
17
|
+
builder = Builder(
|
|
18
|
+
n_sd=settings.n_sd_seeding + settings.n_sd_initial,
|
|
19
|
+
backend=CPU(
|
|
20
|
+
formulae=settings.formulae, override_jit_flags={"parallel": False}
|
|
21
|
+
),
|
|
22
|
+
environment=Parcel(
|
|
23
|
+
dt=settings.timestep,
|
|
24
|
+
mass_of_dry_air=settings.mass_of_dry_air,
|
|
25
|
+
w=settings.updraft,
|
|
26
|
+
initial_water_vapour_mixing_ratio=settings.initial_water_vapour_mixing_ratio,
|
|
27
|
+
p0=settings.initial_total_pressure,
|
|
28
|
+
T0=settings.initial_temperature,
|
|
29
|
+
),
|
|
30
|
+
)
|
|
31
|
+
builder.add_dynamic(AmbientThermodynamics())
|
|
32
|
+
builder.add_dynamic(Condensation())
|
|
33
|
+
if settings.enable_collisions:
|
|
34
|
+
builder.add_dynamic(Coalescence(collision_kernel=Geometric()))
|
|
35
|
+
builder.add_dynamic(
|
|
36
|
+
Seeding(
|
|
37
|
+
super_droplet_injection_rate=settings.super_droplet_injection_rate,
|
|
38
|
+
seeded_particle_multiplicity=settings.seeded_particle_multiplicity,
|
|
39
|
+
seeded_particle_extensive_attributes=settings.seeded_particle_extensive_attributes,
|
|
40
|
+
)
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
r_dry, n_in_dv = ConstantMultiplicity(
|
|
44
|
+
settings.initial_aerosol_dry_radii
|
|
45
|
+
).sample(n_sd=settings.n_sd_initial, backend=builder.particulator.backend)
|
|
46
|
+
attributes = builder.particulator.environment.init_attributes(
|
|
47
|
+
n_in_dv=n_in_dv, kappa=settings.initial_aerosol_kappa, r_dry=r_dry
|
|
48
|
+
)
|
|
49
|
+
self.particulator = builder.build(
|
|
50
|
+
attributes={
|
|
51
|
+
k: np.pad(
|
|
52
|
+
array=v,
|
|
53
|
+
pad_width=(0, settings.n_sd_seeding),
|
|
54
|
+
mode="constant",
|
|
55
|
+
constant_values=np.nan if k == "multiplicity" else 0,
|
|
56
|
+
)
|
|
57
|
+
for k, v in attributes.items()
|
|
58
|
+
},
|
|
59
|
+
products=(
|
|
60
|
+
products.SuperDropletCountPerGridbox(name="sd_count"),
|
|
61
|
+
products.Time(),
|
|
62
|
+
products.WaterMixingRatio(
|
|
63
|
+
radius_range=(settings.rain_water_radius_threshold, np.inf),
|
|
64
|
+
name="rain water mixing ratio",
|
|
65
|
+
),
|
|
66
|
+
products.EffectiveRadius(
|
|
67
|
+
name="r_eff",
|
|
68
|
+
unit="um",
|
|
69
|
+
radius_range=(0.5 * si.um, 25 * si.um),
|
|
70
|
+
),
|
|
71
|
+
products.ParticleConcentration(
|
|
72
|
+
name="n_drop",
|
|
73
|
+
unit="cm^-3",
|
|
74
|
+
radius_range=(0.5 * si.um, 25 * si.um),
|
|
75
|
+
),
|
|
76
|
+
),
|
|
77
|
+
)
|
|
78
|
+
self.n_steps = int(settings.t_max // settings.timestep)
|
|
79
|
+
|
|
80
|
+
def run(self):
|
|
81
|
+
output = {
|
|
82
|
+
"attributes": {"water mass": []},
|
|
83
|
+
"products": {key: [] for key in self.particulator.products},
|
|
84
|
+
}
|
|
85
|
+
for step in range(self.n_steps + 1):
|
|
86
|
+
if step != 0:
|
|
87
|
+
self.particulator.run(steps=1)
|
|
88
|
+
for key, attr in output["attributes"].items():
|
|
89
|
+
data = self.particulator.attributes[key].to_ndarray(raw=True)
|
|
90
|
+
data[data == 0] = np.nan
|
|
91
|
+
attr.append(data)
|
|
92
|
+
for key, prod in output["products"].items():
|
|
93
|
+
prod.append(float(self.particulator.products[key].get()))
|
|
94
|
+
for out in ("attributes", "products"):
|
|
95
|
+
for key, val in output[out].items():
|
|
96
|
+
output[out][key] = np.array(val)
|
|
97
|
+
return output
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PySDM-examples
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.77
|
|
4
4
|
Summary: PySDM usage examples reproducing results from literature and depicting how to use PySDM from Python Jupyter notebooks
|
|
5
5
|
Home-page: https://github.com/open-atmos/PySDM
|
|
6
6
|
Author: https://github.com/open-atmos/PySDM/graphs/contributors
|
|
@@ -6,15 +6,15 @@ PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py,sha256=t568yvoJqJgyyhR69eBjs2y
|
|
|
6
6
|
PySDM_examples/Abdul_Razzak_Ghan_2000/aerosol.py,sha256=BHZL7DILM2WGK5v251N0pHd_bdk8V1PnhSpItkPh1HI,3405
|
|
7
7
|
PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_ARG2000_paper.py,sha256=MRyurAnXq5ESE8gA5rzMsVx1ZhwcOz76o2xPRAcTPMQ,11585
|
|
8
8
|
PySDM_examples/Abdul_Razzak_Ghan_2000/data_from_CloudMicrophysics_ARG.py,sha256=6vuCL55D2KnUutnqZvdv1Wnpgt0rz4BTFELKzOQP1uo,11547
|
|
9
|
-
PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py,sha256=
|
|
9
|
+
PySDM_examples/Abdul_Razzak_Ghan_2000/run_ARG_parcel.py,sha256=_n_sc0o-iAUr7_ZQmIqY4YNCViGtd82LE_r1AU3phvU,5460
|
|
10
10
|
PySDM_examples/Alpert_and_Knopf_2016/__init__.py,sha256=NIqxh_uW0b83mrhYojbd1sMh6-lpz8wf8uuhtNtr0mU,264
|
|
11
|
-
PySDM_examples/Alpert_and_Knopf_2016/simulation.py,sha256=
|
|
11
|
+
PySDM_examples/Alpert_and_Knopf_2016/simulation.py,sha256=YkO3L1JOyz_5ygWBunnY97lkj68IgVgJEJ2m67UkmoE,10034
|
|
12
12
|
PySDM_examples/Alpert_and_Knopf_2016/table.py,sha256=z3d4Pms0nwe4Jb10FilOtNcE4cpUx3zGtDSeStH1l6o,228
|
|
13
13
|
PySDM_examples/Alpert_and_Knopf_2016/table_1.py,sha256=edJfFNqOYwZvOL4nKM5Ir5kFppDqbfz4hPUESqCnNaI,3792
|
|
14
14
|
PySDM_examples/Alpert_and_Knopf_2016/table_2.py,sha256=oxeB_UNLWzrSHKoWOot-kAe5X_i9n18SKDOh7fF9KkQ,1857
|
|
15
15
|
PySDM_examples/Arabas_and_Shima_2017/__init__.py,sha256=hR7OQjmlyxwzrO61gQsfJaatHYI8BJBdwGSmgBZn8HI,186
|
|
16
16
|
PySDM_examples/Arabas_and_Shima_2017/example.py,sha256=dWzGbRCkdwjWethxtdEjn6IjEssFrmW37sEK8y36Q3I,253
|
|
17
|
-
PySDM_examples/Arabas_and_Shima_2017/settings.py,sha256=
|
|
17
|
+
PySDM_examples/Arabas_and_Shima_2017/settings.py,sha256=pxmwrD93WyPoGtSyiTpvlZ8XoD6SI3deG9USDM9OV1E,2370
|
|
18
18
|
PySDM_examples/Arabas_and_Shima_2017/simulation.py,sha256=mCrf-GQLL-so4cZs2w6hdjQnDvYiNnctLpgfDfoxFF8,4164
|
|
19
19
|
PySDM_examples/Arabas_et_al_2015/__init__.py,sha256=uPSOIkvpr_UnLacbdQ5DYGW6k59JqvMVTKSuz6ff7bQ,244
|
|
20
20
|
PySDM_examples/Arabas_et_al_2015/example.py,sha256=YB-ABtUByHQnv0jTGJvROhxNX_aQnM_PgoilG7mSEmQ,828
|
|
@@ -27,7 +27,7 @@ PySDM_examples/Arabas_et_al_2023/curved_text.py,sha256=DoUvIuHkZ8xrgyXwdwEjUZLMe
|
|
|
27
27
|
PySDM_examples/Arabas_et_al_2023/frozen_fraction.py,sha256=8ok3PbeXMwn87hCQt5tsNcHMCbYZHdW7dnCL-Fcx3LQ,783
|
|
28
28
|
PySDM_examples/Arabas_et_al_2023/make_particulator.py,sha256=L17Ol-aWpt2EYAz-QhngROTnaEyDx5J5jjvyYOP3PxE,2079
|
|
29
29
|
PySDM_examples/Arabas_et_al_2023/plots.py,sha256=fw7E3bkFiXLkB6QR8nK4qCMVDxW46B77LE-KpdepK_Q,5047
|
|
30
|
-
PySDM_examples/Arabas_et_al_2023/run_simulation.py,sha256=
|
|
30
|
+
PySDM_examples/Arabas_et_al_2023/run_simulation.py,sha256=Yq4EjdvOr1nYrvK8b1LZtqtbvf0bg6Mm2CWg5zsDqi4,1281
|
|
31
31
|
PySDM_examples/Bartman_2020_MasterThesis/__init__.py,sha256=la2o79L6WLPueZ3EI5ThGtNRuSkXvKQwJJmvrNhhHa8,136
|
|
32
32
|
PySDM_examples/Bartman_2020_MasterThesis/fig_4_adaptive_sdm.py,sha256=bbXDRKH7ekiwEd8dgNRcavlWzoQGfZvXKL_qOT6TtWU,2337
|
|
33
33
|
PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py,sha256=CJ4oXcQe8LGxBoD352dyYQICTWkxPvfUVAhBVf5Uxls,4192
|
|
@@ -49,17 +49,17 @@ PySDM_examples/Ervens_and_Feingold_2012/__init__.py,sha256=F9Q-77npT6TyIK1vdNS4R
|
|
|
49
49
|
PySDM_examples/Ervens_and_Feingold_2012/settings.py,sha256=DtkcDqkcO2WAkH63P1RQ19cejn0oAamdsZefN3y0Gy8,442
|
|
50
50
|
PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py,sha256=XOWJbRQ4U0YxJ6AEL0-kGSXDi4OktihaQDL0QZEB294,252
|
|
51
51
|
PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py,sha256=_UWULcA_8_vA7zYlW_QuyS4SYe5827jyZBum-ZrGwGk,225
|
|
52
|
-
PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py,sha256=
|
|
52
|
+
PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py,sha256=MEs7RNTLbOb78r-0mEgor5RD5xvrnDNx-NmPUIuafaw,3230
|
|
53
53
|
PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py,sha256=lMOu5aATJB5eGGUpO7j35-AGWtTYAOrLXyPp9enHMQU,4667
|
|
54
54
|
PySDM_examples/Graf_et_al_2019/__init__.py,sha256=nT6uOv3PODePRUzFoyOfH_eOCjJkg5z9qS3tXy3USPc,140
|
|
55
55
|
PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py,sha256=VJz_xFOhVvnqYHKbAPRnZQ3Vky6JEOZxBx8kV0kHIcg,161
|
|
56
56
|
PySDM_examples/Jensen_and_Nugent_2017/__init__.py,sha256=3iMpMdkdy_BEBBhjD9WR-2HbRHn7dop8kEk2uJJYe9U,66
|
|
57
57
|
PySDM_examples/Jensen_and_Nugent_2017/plotting.py,sha256=J0lWibUFQq4aHTAPlql9DNj_JiMinlwZgRlsUs8y-I0,3607
|
|
58
58
|
PySDM_examples/Jensen_and_Nugent_2017/settings.py,sha256=Dz7kZgEWACpl3mNMawfp1aAeIBbjrw1GAVFNni8plSM,2195
|
|
59
|
-
PySDM_examples/Jensen_and_Nugent_2017/simulation.py,sha256=
|
|
59
|
+
PySDM_examples/Jensen_and_Nugent_2017/simulation.py,sha256=fVeLHWxHq8yPPGBL9hikpv22Mw3XCHMF1z3H3q2oJiw,4870
|
|
60
60
|
PySDM_examples/Jensen_and_Nugent_2017/table_3.py,sha256=HVhqXwNIqkUyl0k718qVaZaf0lnENWpE-sjqj5b08bc,952
|
|
61
61
|
PySDM_examples/Kreidenweis_et_al_2003/__init__.py,sha256=9QbrxhPe0QJxboGKeqHhq9rrvQ5VUcjTpqWgWsxnM1E,225
|
|
62
|
-
PySDM_examples/Kreidenweis_et_al_2003/settings.py,sha256=
|
|
62
|
+
PySDM_examples/Kreidenweis_et_al_2003/settings.py,sha256=0uutxPWVJsHP4MVXZQarN6XdBpJjWhndLqvJa1Uzz0I,2825
|
|
63
63
|
PySDM_examples/Kreidenweis_et_al_2003/simulation.py,sha256=UPJiaPfS2usuR5T21EnzwfNE6BaiYQuW6iW9X-SYVHU,4757
|
|
64
64
|
PySDM_examples/Lamb_et_al_2017/__init__.py,sha256=FfYms0faIM9l3GX4AkTjEqY6pjyKnJ7SlkKFlLLuHqY,184
|
|
65
65
|
PySDM_examples/Lowe_et_al_2019/__init__.py,sha256=JpFMpZWcBOXcQnYSXNoe4cc0giQJwJAm27dOewsR3wE,236
|
|
@@ -67,7 +67,7 @@ PySDM_examples/Lowe_et_al_2019/aerosol.py,sha256=8h0e1QAo4CQyyKokYScfuiWbKVJuLHf
|
|
|
67
67
|
PySDM_examples/Lowe_et_al_2019/aerosol_code.py,sha256=HqjEfWwsdKFnrCvRNpyUrfX4JGJLdS53AbHTJ0NgyzQ,9667
|
|
68
68
|
PySDM_examples/Lowe_et_al_2019/constants_def.py,sha256=dgNxLpBwXiyrefuW4t87uNIxIV3wySx5PXW3QqQZ7f0,480
|
|
69
69
|
PySDM_examples/Lowe_et_al_2019/plot_helper.py,sha256=5h7zo0Aonm2pzUPFNNTqxLhShWcJZaNgG-Bwa9EwY9E,6427
|
|
70
|
-
PySDM_examples/Lowe_et_al_2019/settings.py,sha256
|
|
70
|
+
PySDM_examples/Lowe_et_al_2019/settings.py,sha256=-PvRdvKzPR39xP1qnGyRnSTT6W_hOuiHH31WQgLh0bg,2585
|
|
71
71
|
PySDM_examples/Lowe_et_al_2019/simulation.py,sha256=Cg4Sd7_We-VEM0RuMCH-r9WmWseuqes2PFhlACvlLRI,5862
|
|
72
72
|
PySDM_examples/Merlivat_and_Nief_1967/__init__.py,sha256=bbjcqXvQxmMwZIRTAOGWwFGkKGnQeGsi7x9kI-VdQpQ,127
|
|
73
73
|
PySDM_examples/Miyake_et_al_1968/__init__.py,sha256=Hdl2Ngex_AVg-wkvBaKwujLbfpH1jXM1-JJ1GceNui4,149
|
|
@@ -76,15 +76,15 @@ PySDM_examples/Morrison_and_Grabowski_2007/common.py,sha256=aOSCsXSCRPLEgV2LThpm
|
|
|
76
76
|
PySDM_examples/Morrison_and_Grabowski_2007/cumulus.py,sha256=kyypwfFdYqY_QyoPr88ScvNb53rMTPvseRL7KVad9Fo,4490
|
|
77
77
|
PySDM_examples/Morrison_and_Grabowski_2007/strato_cumulus.py,sha256=NsYP-AOHcY-HDvhg1dWAHWVFZzlaxpDoQJNbrSphdUg,1139
|
|
78
78
|
PySDM_examples/Niedermeier_et_al_2014/__init__.py,sha256=Oy4G3rNeJtEvLy6F7vznxKL3vLYhPdhp2SoP4YyoPUQ,148
|
|
79
|
-
PySDM_examples/Niedermeier_et_al_2014/settings.py,sha256=
|
|
79
|
+
PySDM_examples/Niedermeier_et_al_2014/settings.py,sha256=wO9NwcgOhzIDmmyVDHVYuGSlbnJUq7FjRL1kfCekS8M,1556
|
|
80
80
|
PySDM_examples/Niedermeier_et_al_2014/simulation.py,sha256=F1DKol-ujtJ5PaNKyKATquuTgHwces2it4jXDu-4dho,3408
|
|
81
81
|
PySDM_examples/Pierchala_et_al_2022/__init__.py,sha256=vPjlbuWAJ7karsAxnZi2QoJTvduugqCcvDgPe1aPxMA,140
|
|
82
82
|
PySDM_examples/Pierchala_et_al_2022/commons.py,sha256=qqdQkEoURw7ewSCmsDz62lXDk20BQ_9xDmvxwOvznSg,1016
|
|
83
83
|
PySDM_examples/Pyrcel/__init__.py,sha256=Hzj0Dq23fGz_QPHd9Fse76MG1LPJqk_Lpd2qzXCN8RY,208
|
|
84
84
|
PySDM_examples/Pyrcel/profile_plotter.py,sha256=Yquz_ylj8W6KGecFY162PB4z7few2wldxJs5x7YyuW8,2196
|
|
85
|
-
PySDM_examples/Pyrcel/settings.py,sha256=
|
|
85
|
+
PySDM_examples/Pyrcel/settings.py,sha256=GLBcbGFR-Qe0polSwh2MpdNtsdPocb5cyL-UmpT4bFQ,2090
|
|
86
86
|
PySDM_examples/Pyrcel/simulation.py,sha256=pQi6rFMBneQn7TajB_GzxaD091cCHIx-POFmVH1Rc1o,3973
|
|
87
|
-
PySDM_examples/Pyrcel/tutorial_settings.py,sha256=
|
|
87
|
+
PySDM_examples/Pyrcel/tutorial_settings.py,sha256=3dbGs-9EJ2WXyVR4UTqzflwg5QBEOOmRWoyc6UFEA3g,2039
|
|
88
88
|
PySDM_examples/Pyrcel/tutorial_simulation.py,sha256=PWnMHV4wMs9J45mpFDaCcxXYhJSVfSxjwuwA_ixkPQs,3803
|
|
89
89
|
PySDM_examples/Rozanski_and_Sonntag_1982/__init__.py,sha256=M-xOZWC2Nvf74W14ZJdYoNhwmLe3EYLVpp3gD471DNg,128
|
|
90
90
|
PySDM_examples/Shima_et_al_2009/__init__.py,sha256=3ROF5jcKiWa9VUEQ8D3B32t3wtqes7mf7zswseZ3P1A,183
|
|
@@ -123,7 +123,7 @@ PySDM_examples/Szumowski_et_al_1998/storage.py,sha256=NaGoujCRLubSEbhLA0QZDaSkAT
|
|
|
123
123
|
PySDM_examples/Van_Hook_1968/__init__.py,sha256=nTGyMcf6D4l6Ib0hMwyx4es1nX5dpuPbM9AYEleaIPE,119
|
|
124
124
|
PySDM_examples/Yang_et_al_2018/__init__.py,sha256=zY7OnJ0d5eyWh3j0VvuHJMYOum9jY596-Ek2po0efmE,227
|
|
125
125
|
PySDM_examples/Yang_et_al_2018/settings.py,sha256=snD3ehCPaWD2QBJosdCYKX4X-dHb0LnBiayhPkXUY3w,2327
|
|
126
|
-
PySDM_examples/Yang_et_al_2018/simulation.py,sha256=
|
|
126
|
+
PySDM_examples/Yang_et_al_2018/simulation.py,sha256=vj4wiMqg_7ndu90a8GP1cQx1eZo8ORfigDSX5qymy3E,4199
|
|
127
127
|
PySDM_examples/deJong_Azimi/__init__.py,sha256=VSVGYB3ckDnW2WVTnrn0tebEIbsE3xYNL6_gdQh4XMs,264
|
|
128
128
|
PySDM_examples/deJong_Azimi/cloudy_data.py,sha256=WrseLwj7uF0cESY7xRWqXbXzOu-WPJCNAPyrNMOqQHE,11258
|
|
129
129
|
PySDM_examples/deJong_Azimi/cloudy_data_0d.py,sha256=uadPxR4zMQFViIFjoqiGfAxTFLAVaUd9Xf6Coj-lXVg,12260
|
|
@@ -136,6 +136,9 @@ PySDM_examples/deJong_Mackay_et_al_2023/settings_0D.py,sha256=ksclyxZ0sZNeLS-QZC
|
|
|
136
136
|
PySDM_examples/deJong_Mackay_et_al_2023/simulation1D.py,sha256=xDA7I3EBoeAw_sHfp7MuBzoDrCbkF4wOKDR2BRePZxk,2430
|
|
137
137
|
PySDM_examples/deJong_Mackay_et_al_2023/simulation_0D.py,sha256=RFXtnCsQDqB1c3yU7LJYmmWwEcCuP42D1Z8SeC9GUPw,4586
|
|
138
138
|
PySDM_examples/deJong_Mackay_et_al_2023/simulation_ss.py,sha256=fYE5LRPbt5qIYC3NaXhC-qsq9GDETBxmXf2Ih3ezFyw,5864
|
|
139
|
+
PySDM_examples/seeding/__init__.py,sha256=3iMpMdkdy_BEBBhjD9WR-2HbRHn7dop8kEk2uJJYe9U,66
|
|
140
|
+
PySDM_examples/seeding/settings.py,sha256=_dD_0YrWsXkqWpTuSHXDTUE9xktSd9196h6bpsLDNC4,2217
|
|
141
|
+
PySDM_examples/seeding/simulation.py,sha256=VQEoLnl4hwsWnZHq9hjv2DLWClKcmAXG0c7QNrcxaQc,3972
|
|
139
142
|
PySDM_examples/utils/__init__.py,sha256=MayUnfhdnjWwc5Ept-yYfCS_tuSR8yqe-RdBl8FO3Xk,258
|
|
140
143
|
PySDM_examples/utils/basic_simulation.py,sha256=4EdgD0p8EKNNcqYYVSlGm1MG2ac7_6heQdwS-kp-Tmw,698
|
|
141
144
|
PySDM_examples/utils/dummy_controller.py,sha256=f1AjVNXPnDhhD15GkBFtJthDf7jZivDrppj79guYc_w,741
|
|
@@ -145,7 +148,7 @@ PySDM_examples/utils/read_vtk_1d.py,sha256=7_3sagEbX_FxqFuGkFWdwQapd1-9echFghU8T
|
|
|
145
148
|
PySDM_examples/utils/widgets/__init__.py,sha256=U67WZ2YDcXSocMraI7pzcMxCfcxzXNqehDzoG6ogsh4,519
|
|
146
149
|
PySDM_examples/utils/widgets/freezer.py,sha256=tFlZWShXUzA2X0cxgeE44N1g9kD33q3KQWZBqkgBP0A,407
|
|
147
150
|
PySDM_examples/utils/widgets/progbar_updater.py,sha256=3uhG32QkAiSM3dTV7DoROJl7fAUNA6ZsJEIKSg3tdmk,267
|
|
148
|
-
PySDM_examples-2.
|
|
149
|
-
PySDM_examples-2.
|
|
150
|
-
PySDM_examples-2.
|
|
151
|
-
PySDM_examples-2.
|
|
151
|
+
PySDM_examples-2.77.dist-info/METADATA,sha256=ZTdjMwA9q_WXSHIk8DURGHDOT825e7orjMxShPWz7lw,40750
|
|
152
|
+
PySDM_examples-2.77.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
|
153
|
+
PySDM_examples-2.77.dist-info/top_level.txt,sha256=axw2inuuYKPWkQhzBYtkZJTPDlo5LrpGLOA0iSAf9v0,15
|
|
154
|
+
PySDM_examples-2.77.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|