PySDM-examples 2.128__py3-none-any.whl → 2.129__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 +4 -4
- PySDM_examples/Arabas_and_Shima_2017/simulation.py +4 -4
- PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py +2 -2
- PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py +4 -8
- PySDM_examples/Jensen_and_Nugent_2017/simulation.py +3 -3
- PySDM_examples/Kreidenweis_et_al_2003/simulation.py +1 -1
- PySDM_examples/Lowe_et_al_2019/simulation.py +2 -2
- PySDM_examples/Pyrcel/profile_plotter.py +6 -2
- PySDM_examples/Shipway_and_Hill_2012/simulation.py +1 -1
- PySDM_examples/utils/kinematic_2d/make_default_product_collection.py +1 -1
- PySDM_examples/utils/pvanim.py +57 -21
- {pysdm_examples-2.128.dist-info → pysdm_examples-2.129.dist-info}/METADATA +1 -1
- {pysdm_examples-2.128.dist-info → pysdm_examples-2.129.dist-info}/RECORD +15 -15
- {pysdm_examples-2.128.dist-info → pysdm_examples-2.129.dist-info}/WHEEL +0 -0
- {pysdm_examples-2.128.dist-info → pysdm_examples-2.129.dist-info}/top_level.txt +0 -0
|
@@ -28,7 +28,7 @@ def run_parcel(
|
|
|
28
28
|
):
|
|
29
29
|
products = (
|
|
30
30
|
PySDM_products.WaterMixingRatio(unit="g/kg", name="liquid water mixing ratio"),
|
|
31
|
-
PySDM_products.
|
|
31
|
+
PySDM_products.PeakSaturation(name="S max"),
|
|
32
32
|
PySDM_products.AmbientRelativeHumidity(name="RH"),
|
|
33
33
|
PySDM_products.ParcelDisplacement(name="z"),
|
|
34
34
|
)
|
|
@@ -54,7 +54,7 @@ def run_parcel(
|
|
|
54
54
|
builder = Builder(backend=CPU(formulae), n_sd=n_sd, environment=env)
|
|
55
55
|
builder.add_dynamic(AmbientThermodynamics())
|
|
56
56
|
builder.add_dynamic(Condensation())
|
|
57
|
-
builder.request_attribute("critical
|
|
57
|
+
builder.request_attribute("critical saturation")
|
|
58
58
|
|
|
59
59
|
attributes = {
|
|
60
60
|
k: np.empty(0) for k in ("dry volume", "kappa times dry volume", "multiplicity")
|
|
@@ -87,7 +87,7 @@ def run_parcel(
|
|
|
87
87
|
"multiplicity": tuple([] for _ in range(particulator.n_sd)),
|
|
88
88
|
"volume": tuple([] for _ in range(particulator.n_sd)),
|
|
89
89
|
"critical volume": tuple([] for _ in range(particulator.n_sd)),
|
|
90
|
-
"critical
|
|
90
|
+
"critical saturation": tuple([] for _ in range(particulator.n_sd)),
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
for _ in range(n_steps):
|
|
@@ -109,7 +109,7 @@ def run_parcel(
|
|
|
109
109
|
RHmax = np.nanmax(np.asarray(output["RH"]))
|
|
110
110
|
for i, volume in enumerate(output_attributes["volume"]):
|
|
111
111
|
if j * n_sd_per_mode <= i < (j + 1) * n_sd_per_mode:
|
|
112
|
-
if output_attributes["critical
|
|
112
|
+
if output_attributes["critical saturation"][i][-1] < RHmax:
|
|
113
113
|
activated_drops_j_S += output_attributes["multiplicity"][i][-1]
|
|
114
114
|
if output_attributes["critical volume"][i][-1] < volume[-1]:
|
|
115
115
|
activated_drops_j_V += output_attributes["multiplicity"][i][-1]
|
|
@@ -62,14 +62,14 @@ class Simulation:
|
|
|
62
62
|
PySDM_products.MeanRadius(name="radius_m1", unit="um"),
|
|
63
63
|
PySDM_products.CondensationTimestepMin(name="dt_cond_min"),
|
|
64
64
|
PySDM_products.ParcelDisplacement(name="z"),
|
|
65
|
-
PySDM_products.AmbientRelativeHumidity(name="RH"
|
|
65
|
+
PySDM_products.AmbientRelativeHumidity(name="RH"),
|
|
66
|
+
PySDM_products.PeakSaturation(name="S_max"),
|
|
66
67
|
PySDM_products.Time(name="t"),
|
|
67
68
|
PySDM_products.ActivatingRate(unit="s^-1 mg^-1", name="activating_rate"),
|
|
68
69
|
PySDM_products.DeactivatingRate(
|
|
69
70
|
unit="s^-1 mg^-1", name="deactivating_rate"
|
|
70
71
|
),
|
|
71
72
|
PySDM_products.RipeningRate(unit="s^-1 mg^-1", name="ripening_rate"),
|
|
72
|
-
PySDM_products.PeakSupersaturation(unit="%", name="S_max"),
|
|
73
73
|
]
|
|
74
74
|
|
|
75
75
|
self.particulator = builder.build(attributes, products)
|
|
@@ -85,7 +85,7 @@ class Simulation:
|
|
|
85
85
|
self.particulator.products["dt_cond_min"].get()[cell_id]
|
|
86
86
|
)
|
|
87
87
|
output["z"].append(self.particulator.products["z"].get()[cell_id])
|
|
88
|
-
output["
|
|
88
|
+
output["RH"].append(self.particulator.products["RH"].get()[cell_id])
|
|
89
89
|
output["t"].append(self.particulator.products["t"].get())
|
|
90
90
|
|
|
91
91
|
for event in ("activating", "deactivating", "ripening"):
|
|
@@ -96,7 +96,7 @@ class Simulation:
|
|
|
96
96
|
def run(self):
|
|
97
97
|
output = {
|
|
98
98
|
"r": [],
|
|
99
|
-
"
|
|
99
|
+
"RH": [],
|
|
100
100
|
"z": [],
|
|
101
101
|
"t": [],
|
|
102
102
|
"dt_cond_min": [],
|
|
@@ -75,12 +75,12 @@ def plot(plot_data, rtols, schemes, setups_num, show_plot, path=None):
|
|
|
75
75
|
ax = axs[settings_idx, rtol_idx]
|
|
76
76
|
for scheme in schemes:
|
|
77
77
|
datum = plot_data[scheme][_rtol][settings_idx]
|
|
78
|
-
S = datum["
|
|
78
|
+
S = datum["RH"]
|
|
79
79
|
z = datum["z"]
|
|
80
80
|
dt = datum["dt_cond_min"]
|
|
81
81
|
if scheme == "SciPy":
|
|
82
|
-
ax.plot(S, z, label=scheme, color="grey")
|
|
83
82
|
SCIPY_S = np.array(S)
|
|
83
|
+
ax.plot(SCIPY_S - 1, z, label=scheme, color="grey")
|
|
84
84
|
else:
|
|
85
85
|
add_color_line(fig, ax, S, z, dt)
|
|
86
86
|
PySDM_S = np.array(S)
|
|
@@ -38,8 +38,8 @@ class Simulation(BasicSimulation):
|
|
|
38
38
|
Condensation(rtol_thd=settings.rtol_thd, rtol_x=settings.rtol_x)
|
|
39
39
|
)
|
|
40
40
|
for attribute in (
|
|
41
|
-
"critical
|
|
42
|
-
"equilibrium
|
|
41
|
+
"critical saturation",
|
|
42
|
+
"equilibrium saturation",
|
|
43
43
|
"critical volume",
|
|
44
44
|
):
|
|
45
45
|
builder.request_attribute(attribute)
|
|
@@ -80,12 +80,8 @@ class Simulation(BasicSimulation):
|
|
|
80
80
|
self.output_attributes = {
|
|
81
81
|
"volume": tuple([] for _ in range(self.particulator.n_sd)),
|
|
82
82
|
"dry volume": tuple([] for _ in range(self.particulator.n_sd)),
|
|
83
|
-
"critical
|
|
84
|
-
|
|
85
|
-
),
|
|
86
|
-
"equilibrium supersaturation": tuple(
|
|
87
|
-
[] for _ in range(self.particulator.n_sd)
|
|
88
|
-
),
|
|
83
|
+
"critical saturation": tuple([] for _ in range(self.particulator.n_sd)),
|
|
84
|
+
"equilibrium saturation": tuple([] for _ in range(self.particulator.n_sd)),
|
|
89
85
|
"critical volume": tuple([] for _ in range(self.particulator.n_sd)),
|
|
90
86
|
"multiplicity": tuple([] for _ in range(self.particulator.n_sd)),
|
|
91
87
|
}
|
|
@@ -6,7 +6,7 @@ from PySDM import Builder
|
|
|
6
6
|
from PySDM.physics import si
|
|
7
7
|
from PySDM.backends import CPU
|
|
8
8
|
from PySDM.products import (
|
|
9
|
-
|
|
9
|
+
PeakSaturation,
|
|
10
10
|
ParcelDisplacement,
|
|
11
11
|
Time,
|
|
12
12
|
ActivatedMeanRadius,
|
|
@@ -52,7 +52,7 @@ class Simulation(BasicSimulation):
|
|
|
52
52
|
),
|
|
53
53
|
)
|
|
54
54
|
|
|
55
|
-
additional_derived_attributes = ("radius", "equilibrium
|
|
55
|
+
additional_derived_attributes = ("radius", "equilibrium saturation")
|
|
56
56
|
for additional_derived_attribute in additional_derived_attributes:
|
|
57
57
|
builder.request_attribute(additional_derived_attribute)
|
|
58
58
|
|
|
@@ -93,7 +93,7 @@ class Simulation(BasicSimulation):
|
|
|
93
93
|
builder.build(
|
|
94
94
|
attributes=attributes,
|
|
95
95
|
products=(
|
|
96
|
-
|
|
96
|
+
PeakSaturation(name="S_max"),
|
|
97
97
|
ParcelDisplacement(name="z"),
|
|
98
98
|
Time(name="t"),
|
|
99
99
|
ActivatedMeanRadius(
|
|
@@ -106,7 +106,7 @@ class Simulation(BasicSimulation):
|
|
|
106
106
|
PySDM_products.TotalDryMassMixingRatio(
|
|
107
107
|
settings.DRY_RHO, name="q_dry", unit="ug/kg"
|
|
108
108
|
),
|
|
109
|
-
PySDM_products.
|
|
109
|
+
PySDM_products.PeakSaturation(unit="%", name="S_max_percent"),
|
|
110
110
|
PySDM_products.ParticleSpecificConcentration(
|
|
111
111
|
radius_range=settings.cloud_radius_range, name="n_c_mg", unit="mg^-1"
|
|
112
112
|
),
|
|
@@ -81,8 +81,8 @@ class Simulation(BasicSimulation):
|
|
|
81
81
|
products = products or (
|
|
82
82
|
PySDM_products.ParcelDisplacement(name="z"),
|
|
83
83
|
PySDM_products.Time(name="t"),
|
|
84
|
-
PySDM_products.
|
|
85
|
-
PySDM_products.AmbientRelativeHumidity(
|
|
84
|
+
PySDM_products.PeakSaturation(name="S_max"),
|
|
85
|
+
PySDM_products.AmbientRelativeHumidity(name="RH"),
|
|
86
86
|
PySDM_products.ActivatedParticleConcentration(
|
|
87
87
|
name="CDNC_cm3",
|
|
88
88
|
unit="cm^-3",
|
|
@@ -28,8 +28,12 @@ class ProfilePlotter:
|
|
|
28
28
|
def plot_data(self, settings, output):
|
|
29
29
|
_, axs = pyplot.subplots(1, 2, sharey=True, figsize=(10, 5))
|
|
30
30
|
axS = axs[0]
|
|
31
|
+
if output["products"].get("S_max"):
|
|
32
|
+
SS_percent = (np.asarray(output["products"]["S_max"]) - 1) * 100
|
|
33
|
+
else:
|
|
34
|
+
SS_percent = np.asarray(output["products"]["S_max_percent"]) - 100
|
|
31
35
|
axS.plot(
|
|
32
|
-
|
|
36
|
+
SS_percent,
|
|
33
37
|
output["products"]["z"],
|
|
34
38
|
color="black",
|
|
35
39
|
)
|
|
@@ -37,7 +41,7 @@ class ProfilePlotter:
|
|
|
37
41
|
axS.set_xlabel("Supersaturation [%]")
|
|
38
42
|
axS.set_xlim(0, 0.7)
|
|
39
43
|
axS.set_ylim(0, 250)
|
|
40
|
-
axS.text(0.3, 52, f"max
|
|
44
|
+
axS.text(0.3, 52, f"max SS = {np.nanmax(SS_percent):.2f}%")
|
|
41
45
|
axS.grid()
|
|
42
46
|
|
|
43
47
|
axT = axS.twiny()
|
|
@@ -148,7 +148,7 @@ class Simulation:
|
|
|
148
148
|
PySDM_products.RipeningRate(name="ripening"),
|
|
149
149
|
PySDM_products.ActivatingRate(name="activating"),
|
|
150
150
|
PySDM_products.DeactivatingRate(name="deactivating"),
|
|
151
|
-
PySDM_products.
|
|
151
|
+
PySDM_products.PeakSaturation(),
|
|
152
152
|
PySDM_products.ParticleSizeSpectrumPerVolume(
|
|
153
153
|
name="dry spectrum",
|
|
154
154
|
radius_bins_edges=settings.r_bins_edges_dry,
|
|
@@ -67,7 +67,7 @@ def make_default_product_collection(settings):
|
|
|
67
67
|
if settings.processes["condensation"]:
|
|
68
68
|
products.append(PySDM_products.CondensationTimestepMin(name="dt_cond_min"))
|
|
69
69
|
products.append(PySDM_products.CondensationTimestepMax(name="dt_cond_max"))
|
|
70
|
-
products.append(PySDM_products.
|
|
70
|
+
products.append(PySDM_products.PeakSaturation(unit="%", name="S_max_percent"))
|
|
71
71
|
products.append(PySDM_products.ActivatingRate())
|
|
72
72
|
products.append(PySDM_products.DeactivatingRate())
|
|
73
73
|
products.append(PySDM_products.RipeningRate())
|
PySDM_examples/utils/pvanim.py
CHANGED
|
@@ -12,6 +12,12 @@ def cli_using_argparse(argp):
|
|
|
12
12
|
argp.add_argument("product_path", help="path to pvd products file")
|
|
13
13
|
argp.add_argument("attributes_path", help=" path to pvd attributes file")
|
|
14
14
|
argp.add_argument("output_path", help="path where to write output files")
|
|
15
|
+
argp.add_argument(
|
|
16
|
+
"--mode",
|
|
17
|
+
choices=["light", "dark"],
|
|
18
|
+
default="dark",
|
|
19
|
+
help="Choose 'light' or 'dark' mode.",
|
|
20
|
+
)
|
|
15
21
|
argp.add_argument(
|
|
16
22
|
"--multiplicity_preset",
|
|
17
23
|
default="Inferno (matplotlib)",
|
|
@@ -54,6 +60,13 @@ def cli_using_argparse(argp):
|
|
|
54
60
|
default=0.77,
|
|
55
61
|
help="Opacity for sd_attributes",
|
|
56
62
|
)
|
|
63
|
+
argp.add_argument(
|
|
64
|
+
"--animation_size",
|
|
65
|
+
nargs=2,
|
|
66
|
+
type=int,
|
|
67
|
+
default=[800, 800],
|
|
68
|
+
help="Animation size [x,y]",
|
|
69
|
+
)
|
|
57
70
|
argp.add_argument(
|
|
58
71
|
"--animationframename",
|
|
59
72
|
type=str,
|
|
@@ -86,12 +99,14 @@ setup = {
|
|
|
86
99
|
"sd_productspvdDisplay": pvs.GetDisplayProperties(
|
|
87
100
|
sd_productspvd, view=pvs.GetActiveViewOrCreate("RenderView")
|
|
88
101
|
),
|
|
102
|
+
"color": [1, 1, 1] if args.mode == "dark" else [0, 0, 0],
|
|
103
|
+
"inverted_color": [0.129, 0.145, 0.161] if args.mode == "dark" else [1, 1, 1],
|
|
89
104
|
}
|
|
90
105
|
|
|
91
106
|
setup = namedtuple("Setup", setup.keys())(**setup)
|
|
92
107
|
|
|
93
108
|
setup.effectiveradiusLUT.RescaleTransferFunction(0.1380997175392798, 207.7063518856934)
|
|
94
|
-
|
|
109
|
+
materialLibrary1 = pvs.GetMaterialLibrary()
|
|
95
110
|
setup.renderView1.Update()
|
|
96
111
|
|
|
97
112
|
|
|
@@ -127,6 +142,10 @@ def scalar_bar(name, *, y, erLUT):
|
|
|
127
142
|
scalarBar = pvs.GetScalarBar(erLUT.effectiveradiusLUT, y.renderView1)
|
|
128
143
|
scalarBar.ComponentTitle = ""
|
|
129
144
|
scalarBar.Title = name
|
|
145
|
+
scalarBar.TitleFontSize = 25
|
|
146
|
+
scalarBar.LabelFontSize = 25
|
|
147
|
+
scalarBar.LabelColor = setup.color
|
|
148
|
+
scalarBar.TitleColor = setup.color
|
|
130
149
|
y.renderView1.Update()
|
|
131
150
|
|
|
132
151
|
|
|
@@ -139,6 +158,12 @@ def create_glyph(
|
|
|
139
158
|
glyph.ScaleArray = [scale_array1, scale_array2]
|
|
140
159
|
glyph.ScaleFactor = 100
|
|
141
160
|
glyphDisplay.SetScalarBarVisibility(y.renderView1, True)
|
|
161
|
+
multiplicityLUT = pvs.GetColorTransferFunction("multiplicity")
|
|
162
|
+
multiplicityLUTColorBar = pvs.GetScalarBar(multiplicityLUT, y.renderView1)
|
|
163
|
+
multiplicityLUTColorBar.TitleFontSize = 25
|
|
164
|
+
multiplicityLUTColorBar.LabelFontSize = 25
|
|
165
|
+
multiplicityLUTColorBar.LabelColor = setup.color
|
|
166
|
+
multiplicityLUTColorBar.TitleColor = setup.color
|
|
142
167
|
if color_by is True:
|
|
143
168
|
glyphDisplay.ColorArrayName = ["POINTS", ""]
|
|
144
169
|
pvs.ColorBy(glyphDisplay, None)
|
|
@@ -178,27 +203,31 @@ def apply_presets_logscale_opacity_and_update(*, y, attdisplay, erLUT, proddispl
|
|
|
178
203
|
|
|
179
204
|
|
|
180
205
|
def get_layout(*, y):
|
|
206
|
+
pvs.SetViewProperties(
|
|
207
|
+
Background=setup.inverted_color, UseColorPaletteForBackground=0
|
|
208
|
+
)
|
|
209
|
+
pvs.Render(setup.renderView1)
|
|
181
210
|
layout1 = pvs.GetLayout()
|
|
182
|
-
layout1.SetSize(
|
|
211
|
+
layout1.SetSize(args.animation_size)
|
|
212
|
+
layout1.PreviewMode = args.animation_size
|
|
183
213
|
y.renderView1.Update()
|
|
184
214
|
|
|
185
215
|
|
|
186
216
|
def set_current_camera_placement(*, y):
|
|
187
217
|
y.renderView1.InteractionMode = "2D"
|
|
188
218
|
y.renderView1.CameraPosition = [
|
|
189
|
-
836
|
|
190
|
-
677
|
|
191
|
-
-4098
|
|
219
|
+
836,
|
|
220
|
+
677,
|
|
221
|
+
-4098,
|
|
192
222
|
]
|
|
193
|
-
y.renderView1.CameraFocalPoint = [
|
|
223
|
+
y.renderView1.CameraFocalPoint = [636, 1030, 0.0]
|
|
194
224
|
y.renderView1.CameraViewUp = [1.0, 0.0, 0.0]
|
|
195
|
-
y.renderView1.CameraParallelScale =
|
|
225
|
+
y.renderView1.CameraParallelScale = 1560
|
|
196
226
|
y.renderView1.Update()
|
|
197
227
|
|
|
198
228
|
|
|
199
229
|
def axes_settings(*, view):
|
|
200
|
-
|
|
201
|
-
view.Background = [1, 1, 1]
|
|
230
|
+
# setup.renderView1.Background = [1,0.5,0.2]
|
|
202
231
|
view.CenterAxesVisibility = True
|
|
203
232
|
view.OrientationAxesVisibility = False
|
|
204
233
|
axesGrid = view.AxesGrid
|
|
@@ -216,10 +245,10 @@ def axes_settings(*, view):
|
|
|
216
245
|
axesGrid.YTitleFontSize = 30
|
|
217
246
|
axesGrid.YLabelFontSize = 30
|
|
218
247
|
|
|
219
|
-
axesGrid.XTitleColor =
|
|
220
|
-
axesGrid.XLabelColor =
|
|
221
|
-
axesGrid.YTitleColor =
|
|
222
|
-
axesGrid.YLabelColor =
|
|
248
|
+
axesGrid.XTitleColor = setup.color
|
|
249
|
+
axesGrid.XLabelColor = setup.color
|
|
250
|
+
axesGrid.YTitleColor = setup.color
|
|
251
|
+
axesGrid.YLabelColor = setup.color
|
|
223
252
|
axesGrid.GridColor = [0.1, 0.1, 0.1]
|
|
224
253
|
view.CenterAxesVisibility = False
|
|
225
254
|
view.Update()
|
|
@@ -227,9 +256,14 @@ def axes_settings(*, view):
|
|
|
227
256
|
|
|
228
257
|
def time_annotation(*, y):
|
|
229
258
|
time = pvs.AnnotateTimeFilter(
|
|
230
|
-
guiName="AnnotateTimeFilter1", Format="Time:{time:
|
|
259
|
+
guiName="AnnotateTimeFilter1", Scale=1 / 60, Format="Time:{time:g}min"
|
|
231
260
|
)
|
|
232
|
-
pvs.Show(time, y.renderView1)
|
|
261
|
+
timedisplay = pvs.Show(time, y.renderView1)
|
|
262
|
+
timedisplay.FontSize = 25
|
|
263
|
+
timedisplay.WindowLocation = "Any Location"
|
|
264
|
+
timedisplay.FontSize = 30
|
|
265
|
+
timedisplay.Position = [0.31, 0.9]
|
|
266
|
+
timedisplay.Color = setup.color
|
|
233
267
|
y.renderView1.Update()
|
|
234
268
|
|
|
235
269
|
|
|
@@ -237,10 +271,10 @@ def text(text_in, position_y, *, view):
|
|
|
237
271
|
sentence = pvs.Text()
|
|
238
272
|
sentence.Text = text_in
|
|
239
273
|
textDisplay = pvs.Show(sentence, view)
|
|
240
|
-
textDisplay.Color =
|
|
274
|
+
textDisplay.Color = setup.color
|
|
241
275
|
textDisplay.WindowLocation = "Any Location"
|
|
242
|
-
textDisplay.FontSize =
|
|
243
|
-
textDisplay.Position = [0.
|
|
276
|
+
textDisplay.FontSize = 28
|
|
277
|
+
textDisplay.Position = [0.17, position_y]
|
|
244
278
|
|
|
245
279
|
|
|
246
280
|
def last_anim_frame(animation_frame_name):
|
|
@@ -290,9 +324,11 @@ get_layout(y=setup)
|
|
|
290
324
|
set_current_camera_placement(y=setup)
|
|
291
325
|
axes_settings(view=setup.renderView1)
|
|
292
326
|
time_annotation(y=setup)
|
|
293
|
-
text("Arrows scale with Courant
|
|
294
|
-
text("
|
|
295
|
-
|
|
327
|
+
text("Arrows scale with Courant", 0.15, view=setup.renderView1)
|
|
328
|
+
text("number C=u·Δt/Δx, reflecting", 0.1, view=setup.renderView1)
|
|
329
|
+
text("the grid spacing Δx and Δy.", 0.05, view=setup.renderView1)
|
|
330
|
+
if args.animationframename is not None:
|
|
331
|
+
last_anim_frame(animation_frame_name=args.animationframename)
|
|
296
332
|
scene = pvs.GetAnimationScene()
|
|
297
333
|
scene.UpdateAnimationUsingDataTimeSteps()
|
|
298
334
|
pvs.Render(setup.renderView1)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pysdm-examples
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.129
|
|
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,7 +6,7 @@ PySDM_examples/Abdul_Razzak_Ghan_2000/__init__.py,sha256=2M2S0Qff2PJhxzEiV7eIGhJ
|
|
|
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=6JhYQ9hn826a-RDg6QWW0s5tniKnsK2gwd_gxWZRhjs,5440
|
|
10
10
|
PySDM_examples/Alpert_and_Knopf_2016/__init__.py,sha256=L9OFD5gAfjzjowsdFdESfUX93r04L3t-3OI-MHGyuLw,519
|
|
11
11
|
PySDM_examples/Alpert_and_Knopf_2016/simulation.py,sha256=2Pu4WikpaooKSFqG88GYTWS_uFYuAjpkg3zMCtZNwdQ,10112
|
|
12
12
|
PySDM_examples/Alpert_and_Knopf_2016/table.py,sha256=z3d4Pms0nwe4Jb10FilOtNcE4cpUx3zGtDSeStH1l6o,228
|
|
@@ -15,7 +15,7 @@ PySDM_examples/Alpert_and_Knopf_2016/table_2.py,sha256=oxeB_UNLWzrSHKoWOot-kAe5X
|
|
|
15
15
|
PySDM_examples/Arabas_and_Shima_2017/__init__.py,sha256=A8GENIPgHqt8kSni21gxo8_kSKSTex0atCquQ9_qlc8,237
|
|
16
16
|
PySDM_examples/Arabas_and_Shima_2017/example.py,sha256=dWzGbRCkdwjWethxtdEjn6IjEssFrmW37sEK8y36Q3I,253
|
|
17
17
|
PySDM_examples/Arabas_and_Shima_2017/settings.py,sha256=HuikQrqhpg0tBU0lX_DpOCXMGI9nf7DmlkYt92EiG7c,2370
|
|
18
|
-
PySDM_examples/Arabas_and_Shima_2017/simulation.py,sha256=
|
|
18
|
+
PySDM_examples/Arabas_and_Shima_2017/simulation.py,sha256=wtqeIhlXya45SGIba8pX30cgof_gNd8YuIQFPb-XxUY,4132
|
|
19
19
|
PySDM_examples/Arabas_et_al_2015/__init__.py,sha256=fo2jbv-pNNiLOvdWBfFVeHzbudi6xx57nkWJ8cm7TU0,291
|
|
20
20
|
PySDM_examples/Arabas_et_al_2015/example.py,sha256=5na1kSsR95wGIniGZ6J9f2qKvnRZ1th03hs65bPP5jI,826
|
|
21
21
|
PySDM_examples/Arabas_et_al_2015/example_benchmark.py,sha256=btZxgmuaUT-cYEZkOkPIsibvHikxyaboJupoDvLBjyc,2341
|
|
@@ -30,7 +30,7 @@ PySDM_examples/Arabas_et_al_2025/plots.py,sha256=5ODmXj3xYmkF1cIAGYFNYoOamIzcsgY
|
|
|
30
30
|
PySDM_examples/Arabas_et_al_2025/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=I66ufyfKnLRz50UDfbwf6wiWm2q8QX1FdaghKGFvo1E,2377
|
|
33
|
-
PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py,sha256=
|
|
33
|
+
PySDM_examples/Bartman_2020_MasterThesis/fig_5_SCIPY_VS_ADAPTIVE.py,sha256=EyGCFZ11SAPrhK4tZm5R9_JncNu6LFjXcPsshJ7kwTQ,4237
|
|
34
34
|
PySDM_examples/Bartman_et_al_2021/__init__.py,sha256=lcmJiQq7vkdwnVLGYjITgw6zv9A61KZW750OqJxVQTw,255
|
|
35
35
|
PySDM_examples/Bartman_et_al_2021/label.py,sha256=sHaZcODS8lrKxWha9Zd-VALHHqFTr_PsUrMPRunTxzA,523
|
|
36
36
|
PySDM_examples/Berry_1967/__init__.py,sha256=V_JEnFtNsts2m6K7MYiXiq1nnCfRVp74-IxDP8NPJ1g,248
|
|
@@ -54,13 +54,13 @@ PySDM_examples/Gedzelman_and_Arnold_1994/__init__.py,sha256=P721EPYBc_zDk2Jb2pPG
|
|
|
54
54
|
PySDM_examples/Gonfiantini_1986/__init__.py,sha256=6nCHStg2YE7FmBLbzqpRyYu4Qed-KhjaL7ddlPfT7PI,312
|
|
55
55
|
PySDM_examples/Grabowski_and_Pawlowska_2023/__init__.py,sha256=kVhbqVh19GhJSKcXCae2XKaIKFj5-5bRuG2ll8gCTYw,534
|
|
56
56
|
PySDM_examples/Grabowski_and_Pawlowska_2023/settings.py,sha256=0128FoAODY5j2HnflrHjIZQUsxrRFDrokHQ13de4BTE,3231
|
|
57
|
-
PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py,sha256=
|
|
57
|
+
PySDM_examples/Grabowski_and_Pawlowska_2023/simulation.py,sha256=6UHWd89cQkfdM0kdlaN6neL-bJmt8-6-LzEgJZorWpU,4587
|
|
58
58
|
PySDM_examples/Graf_et_al_2019/__init__.py,sha256=Xh-E4f4-LrX76iBScGoIR-fzWghOJAcnThdywjrs5fM,252
|
|
59
59
|
PySDM_examples/Jaruga_and_Pawlowska_2018/__init__.py,sha256=VARJnWkYHy5VAfB4PUicUa_hI7aCfdO-Su3S8FFKQbU,263
|
|
60
60
|
PySDM_examples/Jensen_and_Nugent_2017/__init__.py,sha256=yncJNKXsktxEpqr5x5IQjv5s83QeoRHGA1rwPT4TfDs,478
|
|
61
61
|
PySDM_examples/Jensen_and_Nugent_2017/plotting.py,sha256=J0lWibUFQq4aHTAPlql9DNj_JiMinlwZgRlsUs8y-I0,3607
|
|
62
62
|
PySDM_examples/Jensen_and_Nugent_2017/settings.py,sha256=Dz7kZgEWACpl3mNMawfp1aAeIBbjrw1GAVFNni8plSM,2195
|
|
63
|
-
PySDM_examples/Jensen_and_Nugent_2017/simulation.py,sha256=
|
|
63
|
+
PySDM_examples/Jensen_and_Nugent_2017/simulation.py,sha256=Oqa-KqUMzn4C2NzmlYyUOeTJu04Yv4DLTOciZrQfmnU,4855
|
|
64
64
|
PySDM_examples/Jensen_and_Nugent_2017/table_3.py,sha256=HVhqXwNIqkUyl0k718qVaZaf0lnENWpE-sjqj5b08bc,952
|
|
65
65
|
PySDM_examples/Jouzel_and_Merlivat_1984/__init__.py,sha256=F6dn78N1NfJ7oscex2QQpcjhaLVentTeEbKDyZM1-N8,335
|
|
66
66
|
PySDM_examples/Jouzel_and_Merlivat_1984/thermodynamic_profiles.py,sha256=yUjYZdZr5Vbqc5C350pMXg19TL6bYcNtOrAn5NAKxZQ,928
|
|
@@ -68,7 +68,7 @@ PySDM_examples/Kinzer_And_Gunn_1951/__init__.py,sha256=Lk7NTowyycY5ggzhnaQMlLK6V
|
|
|
68
68
|
PySDM_examples/Kinzer_And_Gunn_1951/table_1_and_2.py,sha256=2ywIQ2EzjdpXF_wjCglDTh9srqoFTxPTaVcethSsu5M,3130
|
|
69
69
|
PySDM_examples/Kreidenweis_et_al_2003/__init__.py,sha256=0xRsFFFsU05TVO8Ocm7XavOLw2khLUZ27ARbMvGvCpI,276
|
|
70
70
|
PySDM_examples/Kreidenweis_et_al_2003/settings.py,sha256=0uutxPWVJsHP4MVXZQarN6XdBpJjWhndLqvJa1Uzz0I,2825
|
|
71
|
-
PySDM_examples/Kreidenweis_et_al_2003/simulation.py,sha256=
|
|
71
|
+
PySDM_examples/Kreidenweis_et_al_2003/simulation.py,sha256=2KEnNv12JD6fbBlbWdHpQ-BfbRpG6_tds7WppsvBQHc,4759
|
|
72
72
|
PySDM_examples/Lamb_et_al_2017/__init__.py,sha256=XGHb_lVedu1EPxMxv8fxCBXAYcXZRJ-nnmyxgP-gob4,235
|
|
73
73
|
PySDM_examples/Lowe_et_al_2019/__init__.py,sha256=0xd2FSQLkx-TivSIys3g7xn12YlsEYdvpa69ufnZPYA,442
|
|
74
74
|
PySDM_examples/Lowe_et_al_2019/aerosol.py,sha256=8h0e1QAo4CQyyKokYScfuiWbKVJuLHfJir_r3_KAnNk,6827
|
|
@@ -76,7 +76,7 @@ PySDM_examples/Lowe_et_al_2019/aerosol_code.py,sha256=HqjEfWwsdKFnrCvRNpyUrfX4JG
|
|
|
76
76
|
PySDM_examples/Lowe_et_al_2019/constants_def.py,sha256=dgNxLpBwXiyrefuW4t87uNIxIV3wySx5PXW3QqQZ7f0,480
|
|
77
77
|
PySDM_examples/Lowe_et_al_2019/plot_helper.py,sha256=5h7zo0Aonm2pzUPFNNTqxLhShWcJZaNgG-Bwa9EwY9E,6427
|
|
78
78
|
PySDM_examples/Lowe_et_al_2019/settings.py,sha256=p6xSlPJIyDPE4OZ6VX0GxPUTqJdkU9posreOGFLbbO4,2599
|
|
79
|
-
PySDM_examples/Lowe_et_al_2019/simulation.py,sha256=
|
|
79
|
+
PySDM_examples/Lowe_et_al_2019/simulation.py,sha256=JDBlmjbsQzg-M0rW4L2sDeZGtmAT6BV-akVbvV04Q5c,5837
|
|
80
80
|
PySDM_examples/Merlivat_and_Nief_1967/__init__.py,sha256=ng7qsws-A87JR1X5DSewG2ABFdSVrnsUbczc3sKgfME,178
|
|
81
81
|
PySDM_examples/Miyake_et_al_1968/__init__.py,sha256=6uWg29ppJfgyvgwuuBPJdX9immnAly-gkFF_fjTZ9hE,202
|
|
82
82
|
PySDM_examples/Morrison_and_Grabowski_2007/__init__.py,sha256=EB1uqfjyflCw4U-rwlV3dpvCMtUpBuJizSWrxO46FeE,203
|
|
@@ -89,7 +89,7 @@ PySDM_examples/Pierchala_et_al_2022/__init__.py,sha256=GEv_wVIl6qmbdDcneB_q-51cr
|
|
|
89
89
|
PySDM_examples/Pierchala_et_al_2022/commons.py,sha256=GPFC4NbhyTFT_XEcsS6xLMzDIPwOZ0eislYteeSkqqc,1021
|
|
90
90
|
PySDM_examples/Pruppacher_and_Rasmussen_1979/__init__.py,sha256=kMxk_zP024ShSrmt8hpiF9kTkYwLWI8Ylwej2NssrMI,220
|
|
91
91
|
PySDM_examples/Pyrcel/__init__.py,sha256=Ix8ZNYHhQe_rqLJaFBo_v1pRHpQkXT1-N5ql8L6bTSg,283
|
|
92
|
-
PySDM_examples/Pyrcel/profile_plotter.py,sha256=
|
|
92
|
+
PySDM_examples/Pyrcel/profile_plotter.py,sha256=T37c0BrK1Rv9msa7hJK7SidytnZ0iY53c25xGT7l160,2355
|
|
93
93
|
PySDM_examples/Pyrcel/settings.py,sha256=GLBcbGFR-Qe0polSwh2MpdNtsdPocb5cyL-UmpT4bFQ,2090
|
|
94
94
|
PySDM_examples/Pyrcel/simulation.py,sha256=_nA0kX7wnB8XyNJxmHuVisG1l0Is0VP3zrDyhA9K62A,4079
|
|
95
95
|
PySDM_examples/Rogers_1975/__init__.py,sha256=hJhGbBsIo4A59pZV5GsERlQuMd00krOZ3tBmt9b-iZ4,171
|
|
@@ -108,7 +108,7 @@ PySDM_examples/Shipway_and_Hill_2012/__init__.py,sha256=_yZNTXhicir6Q1PaX_ThYx_z
|
|
|
108
108
|
PySDM_examples/Shipway_and_Hill_2012/mpdata_1d.py,sha256=8l7Zcv2PluBXYZO0qQ4j4_otLcLPtPWSGJJgzRfxEKs,2341
|
|
109
109
|
PySDM_examples/Shipway_and_Hill_2012/plot.py,sha256=Q6lnGWE3oSDKV_F1qKUIihhbYABQ3S1A1qg7Q2rXwn4,3606
|
|
110
110
|
PySDM_examples/Shipway_and_Hill_2012/settings.py,sha256=JLBDI_HID-SFjgN6B1N4gLQex1DaQ5wBZ-2ne7dAd-s,6428
|
|
111
|
-
PySDM_examples/Shipway_and_Hill_2012/simulation.py,sha256=
|
|
111
|
+
PySDM_examples/Shipway_and_Hill_2012/simulation.py,sha256=4MAfO71-KfC75IJRFQslwTgrn9FLeJu_qN_j6i7LTrM,10338
|
|
112
112
|
PySDM_examples/Singer_Ward/__init__.py,sha256=2nKsepqAvYfHeiGAF1qca6DRzPQvUMosxhoCQKM7iiQ,161
|
|
113
113
|
PySDM_examples/Singer_Ward/aerosol.py,sha256=H7TcvI94Wc-IvhTMFshFaJRJY3eUjihAlSdNxVKZzL0,5805
|
|
114
114
|
PySDM_examples/Srivastava_1982/__init__.py,sha256=mD9KZ6Gecr2jpynNZxFuv-fD-4B79yhQ98gM-tROaqg,564
|
|
@@ -143,7 +143,7 @@ PySDM_examples/utils/__init__.py,sha256=kf3zKLHnQkH5inbjfzaapfDy5ACDeU8efmbJtRVJ
|
|
|
143
143
|
PySDM_examples/utils/basic_simulation.py,sha256=4EdgD0p8EKNNcqYYVSlGm1MG2ac7_6heQdwS-kp-Tmw,698
|
|
144
144
|
PySDM_examples/utils/dummy_controller.py,sha256=f1AjVNXPnDhhD15GkBFtJthDf7jZivDrppj79guYc_w,741
|
|
145
145
|
PySDM_examples/utils/progbar_controller.py,sha256=IXk7rkXUOBKP7EQe6zLHUpnCPwtE2LuEeho5lxdsewA,470
|
|
146
|
-
PySDM_examples/utils/pvanim.py,sha256=
|
|
146
|
+
PySDM_examples/utils/pvanim.py,sha256=Yy7I3-rMXKCzLjKuDX4_x4e5FVV-qbBiXyFTzQmApIw,10977
|
|
147
147
|
PySDM_examples/utils/read_vtk_1d.py,sha256=7_3sagEbX_FxqFuGkFWdwQapd1-9echFghU8TSNvGuw,966
|
|
148
148
|
PySDM_examples/utils/kinematic_2d/__init__.py,sha256=lvH0Ait3kGUBF_Zi-1K3w3U_6sLoqcZuQbxY-iEIX5A,989
|
|
149
149
|
PySDM_examples/utils/kinematic_2d/fields.py,sha256=tcR2MAB7azOLF955-ACHJU6v7aJxxpDXVdSIMQTbHEg,1584
|
|
@@ -151,7 +151,7 @@ PySDM_examples/utils/kinematic_2d/gui.py,sha256=w1Bd0nVqGqMGqUE8b321mmIHDwQIdnSn
|
|
|
151
151
|
PySDM_examples/utils/kinematic_2d/gui_controller.py,sha256=AsP78e9bcGSP81kfDet_5fxpthlHsjDyJxHknvN2EgI,4283
|
|
152
152
|
PySDM_examples/utils/kinematic_2d/gui_settings.py,sha256=eGYd6nf6RNuZqkbRKetmjVddbA3l0iohH8s0KQu7FsM,14457
|
|
153
153
|
PySDM_examples/utils/kinematic_2d/gui_viewer.py,sha256=i1dAK811XBzGKPvch-07wCOL8eoQNWbYOEczg3lrj2M,13162
|
|
154
|
-
PySDM_examples/utils/kinematic_2d/make_default_product_collection.py,sha256=
|
|
154
|
+
PySDM_examples/utils/kinematic_2d/make_default_product_collection.py,sha256=qO-ea0GhZiMx81CHhSffHMQyHjpQ9kH9S7yLkmwFSJg,4685
|
|
155
155
|
PySDM_examples/utils/kinematic_2d/mpdata_2d.py,sha256=jFhRg71H0PmSQ33s4eGfrgDRw3UFqnAgmuHDDTXaVv0,4441
|
|
156
156
|
PySDM_examples/utils/kinematic_2d/plots.py,sha256=fzeluxlLF9VbSMmcu2wvd9WPl3ApIuA0jouwOh6rJHA,7001
|
|
157
157
|
PySDM_examples/utils/kinematic_2d/simulation.py,sha256=cuOE_W8teA4o2_PUvyJGVPzFswcZWjCNbR3CVBA5sn8,10359
|
|
@@ -159,7 +159,7 @@ PySDM_examples/utils/kinematic_2d/storage.py,sha256=NaGoujCRLubSEbhLA0QZDaSkATpJ
|
|
|
159
159
|
PySDM_examples/utils/widgets/__init__.py,sha256=U67WZ2YDcXSocMraI7pzcMxCfcxzXNqehDzoG6ogsh4,519
|
|
160
160
|
PySDM_examples/utils/widgets/freezer.py,sha256=tFlZWShXUzA2X0cxgeE44N1g9kD33q3KQWZBqkgBP0A,407
|
|
161
161
|
PySDM_examples/utils/widgets/progbar_updater.py,sha256=3uhG32QkAiSM3dTV7DoROJl7fAUNA6ZsJEIKSg3tdmk,267
|
|
162
|
-
pysdm_examples-2.
|
|
163
|
-
pysdm_examples-2.
|
|
164
|
-
pysdm_examples-2.
|
|
165
|
-
pysdm_examples-2.
|
|
162
|
+
pysdm_examples-2.129.dist-info/METADATA,sha256=VkmwBz11UA1mptRQx83kx-vPOfVIgYKArf38ql7SYW4,12977
|
|
163
|
+
pysdm_examples-2.129.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
164
|
+
pysdm_examples-2.129.dist-info/top_level.txt,sha256=axw2inuuYKPWkQhzBYtkZJTPDlo5LrpGLOA0iSAf9v0,15
|
|
165
|
+
pysdm_examples-2.129.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|