Skip to content

Commit 9f2c88e

Browse files
authored
switching from "n" to "multiplicity" for attribute key (#1123)
1 parent cea9df6 commit 9f2c88e

File tree

72 files changed

+352
-285
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+352
-285
lines changed

.github/workflows/joss_paper.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,14 @@ jobs:
2222
python-version: 3.9
2323
- run: pip install -e .[tests]
2424
- run: pip install pytest-codeblocks pytest
25+
2526
- run: python -c "import pytest_codeblocks; code=pytest_codeblocks.extract_from_file('paper/paperv1.md'); f=open('paperv1.py', 'w'); f.writelines(block.code for block in code); f.close()"
27+
- run: echo "$(echo 'warnings.simplefilter("ignore", category=DeprecationWarning)'; cat paperv1.py)" > paperv1.py
28+
- run: echo "$(echo 'import warnings'; cat paperv1.py)" > paperv1.py
2629
- run: python -We paperv1.py
30+
2731
- run: python -c "import pytest_codeblocks; code=pytest_codeblocks.extract_from_file('paper/paper.md'); f=open('paper.py', 'w'); f.writelines(block.code for block in code); f.close()"
32+
- run: echo "$(echo 'warnings.simplefilter("ignore", category=DeprecationWarning)'; cat paper.py)" > paper.py
2833
- run: echo "$(echo 'warnings.simplefilter("ignore", category=NumbaExperimentalFeatureWarning)'; cat paper.py)" > paper.py
2934
- run: echo "$(echo 'import warnings'; cat paper.py)" > paper.py
3035
- run: echo "$(echo 'from numba.core.errors import NumbaExperimentalFeatureWarning'; cat paper.py)" > paper.py

PySDM/attributes/impl/mapper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
from PySDM.physics.surface_tension import Constant
3939

4040
attributes = {
41-
"n": lambda _, __: Multiplicities,
41+
"multiplicity": lambda _, __: Multiplicities,
4242
"volume": lambda _, __: Volume,
4343
"dry volume organic": lambda dynamics, formulae: (
4444
make_dummy_attribute_factory("dry volume organic")

PySDM/attributes/physics/multiplicities.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ class Multiplicities(BaseAttribute):
1212
MAX_VALUE = np.iinfo(TYPE).max
1313

1414
def __init__(self, builder):
15-
super().__init__(builder, name="n", dtype=Multiplicities.TYPE)
15+
super().__init__(builder, name="multiplicity", dtype=Multiplicities.TYPE)

PySDM/backends/impl_numba/methods/collisions_methods.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,7 @@ def scale_prob_for_adaptive_sdm_gamma(
610610
self,
611611
*,
612612
prob,
613-
n,
613+
multiplicity,
614614
cell_id,
615615
dt_left,
616616
dt,
@@ -621,9 +621,9 @@ def scale_prob_for_adaptive_sdm_gamma(
621621
):
622622
return self.__scale_prob_for_adaptive_sdm_gamma_body(
623623
prob.data,
624-
n.idx.data,
625-
len(n),
626-
n.data,
624+
multiplicity.idx.data,
625+
len(multiplicity),
626+
multiplicity.data,
627627
cell_id.data,
628628
dt_left.data,
629629
dt,

PySDM/backends/impl_numba/methods/condensation_methods.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def condensation(
2323
cell_start_arg,
2424
v,
2525
v_cr,
26-
n,
26+
multiplicity,
2727
vdry,
2828
idx,
2929
rhod,
@@ -52,7 +52,7 @@ def condensation(
5252
cell_start_arg=cell_start_arg.data,
5353
v=v.data,
5454
v_cr=v_cr.data,
55-
n=n.data,
55+
multiplicity=multiplicity.data,
5656
vdry=vdry.data,
5757
idx=idx.data,
5858
rhod=rhod.data,
@@ -86,7 +86,7 @@ def _condensation(
8686
cell_start_arg,
8787
v,
8888
v_cr,
89-
n,
89+
multiplicity,
9090
vdry,
9191
idx,
9292
rhod,
@@ -137,7 +137,7 @@ def _condensation(
137137
) = solver(
138138
v,
139139
v_cr,
140-
n,
140+
multiplicity,
141141
vdry,
142142
idx[cell_start:cell_end],
143143
kappa,
@@ -254,7 +254,7 @@ def make_step_impl(
254254
def step_impl( # pylint: disable=too-many-arguments,too-many-locals
255255
v,
256256
v_cr,
257-
n,
257+
multiplicity,
258258
vdry,
259259
cell_idx,
260260
kappa,
@@ -272,7 +272,7 @@ def step_impl( # pylint: disable=too-many-arguments,too-many-locals
272272
fake,
273273
):
274274
timestep /= n_substeps
275-
ml_old = calculate_ml_old(v, n, cell_idx)
275+
ml_old = calculate_ml_old(v, multiplicity, cell_idx)
276276
count_activating, count_deactivating, count_ripening = 0, 0, 0
277277
RH_max = 0
278278
success = True
@@ -304,7 +304,7 @@ def step_impl( # pylint: disable=too-many-arguments,too-many-locals
304304
RH,
305305
v,
306306
v_cr,
307-
n,
307+
multiplicity,
308308
vdry,
309309
cell_idx,
310310
kappa,
@@ -398,7 +398,7 @@ def calculate_ml_new( # pylint: disable=too-many-arguments,too-many-statements,
398398
RH,
399399
v,
400400
v_cr,
401-
n,
401+
multiplicity,
402402
vdry,
403403
cell_idx,
404404
kappa,
@@ -510,14 +510,14 @@ def calculate_ml_new( # pylint: disable=too-many-arguments,too-many-statements,
510510
x_new = x_old
511511

512512
v_new = volume_of_x(x_new)
513-
result += n[drop] * v_new * const.rho_w
513+
result += multiplicity[drop] * v_new * const.rho_w
514514
if not fake:
515515
if v_new > v_cr[drop] and v_new > v[drop]:
516-
n_activated_and_growing += n[drop]
516+
n_activated_and_growing += multiplicity[drop]
517517
if v_new > v_cr[drop] > v[drop]:
518-
n_activating += n[drop]
518+
n_activating += multiplicity[drop]
519519
if v_new < v_cr[drop] < v[drop]:
520-
n_deactivating += n[drop]
520+
n_deactivating += multiplicity[drop]
521521
v[drop] = v_new
522522
n_ripening = n_activated_and_growing if n_deactivating > 0 else 0
523523
return result, success, n_activating, n_deactivating, n_ripening
@@ -658,7 +658,7 @@ def make_condensation_solver_impl(
658658
def solve( # pylint: disable=too-many-arguments
659659
v,
660660
v_cr,
661-
n,
661+
multiplicity,
662662
vdry,
663663
cell_idx,
664664
kappa,
@@ -678,7 +678,7 @@ def solve( # pylint: disable=too-many-arguments
678678
args = (
679679
v,
680680
v_cr,
681-
n,
681+
multiplicity,
682682
vdry,
683683
cell_idx,
684684
kappa,

PySDM/backends/impl_numba/test_helpers/scipy_ode_condensation_solver.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def _condensation(
3636
cell_start_arg=particulator.attributes.cell_start.data,
3737
v=particulator.attributes["volume"].data,
3838
v_cr=None,
39-
n=particulator.attributes["n"].data,
39+
multiplicity=particulator.attributes["multiplicity"].data,
4040
vdry=particulator.attributes["dry volume"].data,
4141
idx=particulator.attributes._ParticleAttributes__idx.data,
4242
rhod=particulator.environment["rhod"].data,
@@ -170,7 +170,7 @@ def _odesys( # pylint: disable=too-many-arguments,too-many-locals
170170
def solve( # pylint: disable=too-many-arguments,too-many-locals
171171
v,
172172
_,
173-
n,
173+
multiplicity,
174174
vdry,
175175
cell_idx,
176176
kappa,
@@ -191,12 +191,12 @@ def solve( # pylint: disable=too-many-arguments,too-many-locals
191191
y0 = np.empty(n_sd_in_cell + idx_x)
192192
y0[idx_thd] = thd
193193
y0[idx_x:] = x(v[cell_idx])
194-
qt = qv + _ql(n[cell_idx], y0[idx_x:], m_d_mean)
194+
qt = qv + _ql(multiplicity[cell_idx], y0[idx_x:], m_d_mean)
195195
args = (
196196
kappa[cell_idx],
197197
f_org[cell_idx],
198198
vdry[cell_idx],
199-
n[cell_idx],
199+
multiplicity[cell_idx],
200200
dthd_dt,
201201
dqv_dt,
202202
drhod_dt,
@@ -228,7 +228,7 @@ def solve( # pylint: disable=too-many-arguments,too-many-locals
228228
m_new = 0
229229
for i in range(n_sd_in_cell):
230230
v_new = volume(y1[idx_x + i])
231-
m_new += n[cell_idx[i]] * v_new * rho_w
231+
m_new += multiplicity[cell_idx[i]] * v_new * rho_w
232232
v[cell_idx[i]] = v_new
233233

234234
return integ.success, qt - m_new / m_d_mean, y1[idx_thd], 1, 1, 1, 1, np.nan

PySDM/backends/impl_thrust_rtc/methods/collisions_methods.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ def __init__(self):
228228
param_names=(
229229
"prob",
230230
"idx",
231-
"n",
231+
"multiplicity",
232232
"cell_id",
233233
"dt",
234234
"is_first_in_pair",
@@ -245,7 +245,7 @@ def __init__(self):
245245
if (skip_pair) {{
246246
return;
247247
}}
248-
auto prop = (int64_t)(n[j] / n[k]);
248+
auto prop = (int64_t)(multiplicity[j] / multiplicity[k]);
249249
auto dt_optimal = dt * prop / prob[i];
250250
auto cid = cell_id[j];
251251
static_assert(sizeof(dt_todo[0]) == sizeof(unsigned int), "");
@@ -680,7 +680,7 @@ def scale_prob_for_adaptive_sdm_gamma(
680680
self,
681681
*,
682682
prob,
683-
n,
683+
multiplicity,
684684
cell_id,
685685
dt_left,
686686
dt,
@@ -698,22 +698,22 @@ def scale_prob_for_adaptive_sdm_gamma(
698698
n=len(dt_left), args=(dt_todo, dt_left.data, d_dt_max)
699699
)
700700
self.__scale_prob_for_adaptive_sdm_gamma_body_2.launch_n(
701-
n=len(n) // 2,
701+
n=len(multiplicity) // 2,
702702
args=(
703703
prob.data,
704-
n.idx.data,
705-
n.data,
704+
multiplicity.idx.data,
705+
multiplicity.data,
706706
cell_id.data,
707707
d_dt,
708708
is_first_in_pair.indicator.data,
709709
dt_todo,
710710
),
711711
)
712712
self.__scale_prob_for_adaptive_sdm_gamma_body_3.launch_n(
713-
n=len(n) // 2,
713+
n=len(multiplicity) // 2,
714714
args=(
715715
prob.data,
716-
n.idx.data,
716+
multiplicity.idx.data,
717717
cell_id.data,
718718
d_dt,
719719
is_first_in_pair.indicator.data,

PySDM/backends/impl_thrust_rtc/methods/condensation_methods.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ def __init__(self):
3636
const = self.formulae.constants
3737

3838
self.__calculate_m_l = trtc.For(
39-
("ml", "v", "n", "cell_id"),
39+
("ml", "v", "multiplicity", "cell_id"),
4040
"i",
4141
f"""
42-
atomicAdd((real_type*) &ml[cell_id[i]], n[i] * v[i] * {const.rho_w});
42+
atomicAdd((real_type*) &ml[cell_id[i]], multiplicity[i] * v[i] * {const.rho_w});
4343
""".replace(
4444
"real_type", self._get_c_type()
4545
),
@@ -312,9 +312,11 @@ def args(arg):
312312
),
313313
)
314314

315-
def calculate_m_l(self, ml, v, n, cell_id):
315+
def calculate_m_l(self, ml, v, multiplicity, cell_id):
316316
ml[:] = 0
317-
self.__calculate_m_l.launch_n(len(n), (ml.data, v.data, n.data, cell_id.data))
317+
self.__calculate_m_l.launch_n(
318+
len(multiplicity), (ml.data, v.data, multiplicity.data, cell_id.data)
319+
)
318320

319321
# pylint: disable=unused-argument,too-many-locals
320322
@nice_thrust(**NICE_THRUST_FLAGS)
@@ -326,7 +328,7 @@ def condensation(
326328
cell_start_arg,
327329
v,
328330
v_cr,
329-
n,
331+
multiplicity,
330332
vdry,
331333
idx,
332334
rhod,
@@ -377,7 +379,7 @@ def condensation(
377379
),
378380
)
379381
timestep /= n_substeps
380-
self.calculate_m_l(self.ml_old, v, n, cell_id)
382+
self.calculate_m_l(self.ml_old, v, multiplicity, cell_id)
381383

382384
for _ in range(n_substeps):
383385
self.__pre.launch_n(
@@ -395,7 +397,7 @@ def condensation(
395397
),
396398
)
397399
self.__update_volume.launch_n(
398-
len(n),
400+
len(multiplicity),
399401
(
400402
v.data,
401403
vdry.data,
@@ -409,7 +411,7 @@ def condensation(
409411
cell_id.data,
410412
),
411413
)
412-
self.calculate_m_l(self.ml_new, v, n, cell_id)
414+
self.calculate_m_l(self.ml_new, v, multiplicity, cell_id)
413415
self.__post.launch_n(
414416
n_cell,
415417
(

PySDM/backends/impl_thrust_rtc/methods/displacement_methods.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,15 @@ def __init__(self):
6969
"cell_origin",
7070
"position_in_cell",
7171
"volume",
72-
"n",
72+
"multiplicity",
7373
"rainfall",
7474
),
7575
"i",
7676
"""
7777
auto origin = cell_origin[n_sd * (n_dims-1) + idx[i]];
7878
auto pic = position_in_cell[n_sd * (n_dims-1) + idx[i]];
7979
if (origin + pic < 0) {
80-
atomicAdd((real_type*) &rainfall[0], n[idx[i]] * volume[idx[i]]);
80+
atomicAdd((real_type*) &rainfall[0], multiplicity[idx[i]] * volume[idx[i]]);
8181
idx[i] = n_sd;
8282
healthy[0] = 0;
8383
}
@@ -129,7 +129,7 @@ def flag_precipitated( # pylint: disable=unused-argument
129129
trtc.Fill(rainfall, self._get_floating_point(0))
130130
self.__flag_precipitated_body.launch_n(
131131
length,
132-
[
132+
(
133133
idx.data,
134134
n_sd,
135135
n_dims,
@@ -139,7 +139,7 @@ def flag_precipitated( # pylint: disable=unused-argument
139139
volume.data,
140140
multiplicity.data,
141141
rainfall,
142-
],
142+
),
143143
)
144144
return rainfall.to_host()[0]
145145

0 commit comments

Comments
 (0)