Skip to content

Commit 9279726

Browse files
committed
I like list comprehensions.
1 parent e3c7328 commit 9279726

File tree

3 files changed

+68
-52
lines changed

3 files changed

+68
-52
lines changed

pySDC/projects/PinTSimE/battery_2capacitors_model.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,17 @@ def plot_voltages(description, problem, sweeper, recomputed, use_switch_estimato
7979
f.close()
8080

8181
# convert filtered statistics to list of iterations count, sorted by process
82-
cL = np.array([me[1][0] for me in get_sorted(stats, type='u', recomputed=False, sortby='time')])
83-
vC1 = np.array([me[1][1] for me in get_sorted(stats, type='u', recomputed=False, sortby='time')])
84-
vC2 = np.array([me[1][2] for me in get_sorted(stats, type='u', recomputed=False, sortby='time')])
82+
cL = np.array([me[1][0] for me in get_sorted(stats, type='u', recomputed=recomputed)])
83+
vC1 = np.array([me[1][1] for me in get_sorted(stats, type='u', recomputed=recomputed)])
84+
vC2 = np.array([me[1][2] for me in get_sorted(stats, type='u', recomputed=recomputed)])
8585

86-
times = np.array([me[0] for me in get_sorted(stats, type='u', recomputed=False, sortby='time')])
86+
t = np.array([me[0] for me in get_sorted(stats, type='u', recomputed=recomputed)])
8787

8888
setup_mpl()
8989
fig, ax = plt_helper.plt.subplots(1, 1, figsize=(4.5, 3))
90-
ax.plot(times, cL, label='$i_L$')
91-
ax.plot(times, vC1, label='$v_{C_1}$')
92-
ax.plot(times, vC2, label='$v_{C_2}$')
90+
ax.plot(t, cL, label='$i_L$')
91+
ax.plot(t, vC1, label='$v_{C_1}$')
92+
ax.plot(t, vC2, label='$v_{C_2}$')
9393

9494
if use_switch_estimator:
9595
switches = get_recomputed(stats, type='switch', sortby='time')

pySDC/projects/PinTSimE/battery_model.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -257,16 +257,16 @@ def plot_voltages(description, problem, sweeper, recomputed, use_switch_estimato
257257
f.close()
258258

259259
# convert filtered statistics to list of iterations count, sorted by process
260-
cL = np.array([me[1][0] for me in get_sorted(stats, type='u', recomputed=False, sortby='time')])
261-
vC = np.array([me[1][1] for me in get_sorted(stats, type='u', recomputed=False, sortby='time')])
260+
cL = np.array([me[1][0] for me in get_sorted(stats, type='u', recomputed=recomputed)])
261+
vC = np.array([me[1][1] for me in get_sorted(stats, type='u', recomputed=recomputed)])
262262

263-
times = np.array([me[0] for me in get_sorted(stats, type='u', recomputed=recomputed)])
263+
t = np.array([me[0] for me in get_sorted(stats, type='u', recomputed=recomputed)])
264264

265265
setup_mpl()
266266
fig, ax = plt_helper.plt.subplots(1, 1, figsize=(3, 3))
267267
ax.set_title('Simulation of {} using {}'.format(problem, sweeper), fontsize=10)
268-
ax.plot(times, cL, label=r'$i_L$')
269-
ax.plot(times, vC, label=r'$v_C$')
268+
ax.plot(t, cL, label=r'$i_L$')
269+
ax.plot(t, vC, label=r'$v_C$')
270270

271271
if use_switch_estimator:
272272
switches = get_recomputed(stats, type='switch', sortby='time')

pySDC/projects/PinTSimE/estimation_check.py

Lines changed: 56 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -284,38 +284,54 @@ def differences_around_switch(
284284
t_switch_SE_adapt = [v[1] for v in switches_SE_adapt]
285285
t_switch_SE_adapt = t_switch_SE_adapt[-1]
286286

287-
vC_SE = [me[1][1] for me in get_sorted(stats_SE, type='u', recomputed=False, sortby='time')]
288-
vC_adapt = [me[1][1] for me in get_sorted(stats_adapt, type='u', recomputed=False, sortby='time')]
289-
vC_SE_adapt = [me[1][1] for me in get_sorted(stats_SE_adapt, type='u', recomputed=False, sortby='time')]
290-
vC = [me[1][1] for me in get_sorted(stats, type='u', recomputed=False, sortby='time')]
287+
vC_SE = [me[1][1] for me in get_sorted(stats_SE, type='u', recomputed=False)]
288+
vC_adapt = [me[1][1] for me in get_sorted(stats_adapt, type='u', recomputed=False)]
289+
vC_SE_adapt = [me[1][1] for me in get_sorted(stats_SE_adapt, type='u', recomputed=False)]
290+
vC = [me[1][1] for me in get_sorted(stats, type='u', recomputed=False)]
291291

292292
diff_SE, diff = vC_SE - V_ref[0], vC - V_ref[0]
293-
times_SE = [me[0] for me in get_sorted(stats_SE, type='u', recomputed=False, sortby='time')]
294-
times = [me[0] for me in get_sorted(stats, type='u', recomputed=False, sortby='time')]
293+
times_SE = [me[0] for me in get_sorted(stats_SE, type='u', recomputed=False)]
294+
times = [me[0] for me in get_sorted(stats, type='u', recomputed=False)]
295295

296296
diff_adapt, diff_SE_adapt = vC_adapt - V_ref[0], vC_SE_adapt - V_ref[0]
297-
times_adapt = [me[0] for me in get_sorted(stats_adapt, type='u', recomputed=False, sortby='time')]
298-
times_SE_adapt = [me[0] for me in get_sorted(stats_SE_adapt, type='u', recomputed=False, sortby='time')]
297+
times_adapt = [me[0] for me in get_sorted(stats_adapt, type='u', recomputed=False)]
298+
times_SE_adapt = [me[0] for me in get_sorted(stats_SE_adapt, type='u', recomputed=False)]
299299

300-
for m in range(len(times_SE)):
301-
if np.round(times_SE[m], 15) == np.round(t_switch, 15):
302-
diffs_true_at.append(diff_SE[m])
300+
diffs_true_at.append(
301+
[diff_SE[m] for m in range(len(times_SE)) if np.isclose(times_SE[m], t_switch, atol=1e-15)]
302+
)
303303

304-
for m in range(1, len(times)):
305-
if times[m - 1] <= t_switch <= times[m]:
306-
diffs_false_before.append(diff[m - 1])
307-
diffs_false_after.append(diff[m])
304+
diffs_false_before.append([diff[m - 1] for m in range(1, len(times)) if times[m - 1] <= t_switch <= times[m]])
305+
diffs_false_after.append([diff[m] for m in range(1, len(times)) if times[m - 1] <= t_switch <= times[m]])
308306

309-
for m in range(len(times_SE_adapt)):
310-
if np.round(times_SE_adapt[m], 13) == np.round(t_switch_SE_adapt, 13):
311-
diffs_true_at_adapt.append(diff_SE_adapt[m])
312-
diffs_true_before_adapt.append(diff_SE_adapt[m - 1])
313-
diffs_true_after_adapt.append(diff_SE_adapt[m + 1])
307+
diffs_true_at_adapt.append(
308+
[
309+
diff_SE_adapt[m]
310+
for m in range(len(times_SE_adapt))
311+
if np.isclose(times_SE_adapt[m], t_switch_SE_adapt, atol=1e-13)
312+
]
313+
)
314+
diffs_true_before_adapt.append(
315+
[
316+
diff_SE_adapt[m - 1]
317+
for m in range(len(times_SE_adapt))
318+
if np.isclose(times_SE_adapt[m], t_switch_SE_adapt, atol=1e-13)
319+
]
320+
)
321+
diffs_true_after_adapt.append(
322+
[
323+
diff_SE_adapt[m + 1]
324+
for m in range(len(times_SE_adapt))
325+
if np.isclose(times_SE_adapt[m], t_switch_SE_adapt, atol=1e-13)
326+
]
327+
)
314328

315-
for m in range(len(times_adapt)):
316-
if times_adapt[m - 1] <= t_switch <= times_adapt[m]:
317-
diffs_false_before_adapt.append(diff_adapt[m - 1])
318-
diffs_false_after_adapt.append(diff_adapt[m])
329+
diffs_false_before_adapt.append(
330+
[diff_adapt[m - 1] for m in range(len(times_adapt)) if times_adapt[m - 1] <= t_switch <= times_adapt[m]]
331+
)
332+
diffs_false_after_adapt.append(
333+
[diff_adapt[m] for m in range(len(times_adapt)) if times_adapt[m - 1] <= t_switch <= times_adapt[m]]
334+
)
319335

320336
setup_mpl()
321337
fig_around, ax_around = plt_helper.plt.subplots(1, 3, figsize=(9, 3), sharex='col', sharey='row')
@@ -431,24 +447,24 @@ def differences_over_time(dt_list, problem, sweeper, V_ref, cwd='./'):
431447
t_switch_SE_adapt = [v[1] for v in switches_SE_adapt]
432448
t_switch_SE_adapt = t_switch_SE_adapt[-1]
433449

434-
dt_adapt = np.array(get_sorted(stats_adapt, type='dt', recomputed=False, sortby='time'))
435-
dt_SE_adapt = np.array(get_sorted(stats_SE_adapt, type='dt', recomputed=False, sortby='time'))
450+
dt_adapt = np.array(get_sorted(stats_adapt, type='dt', recomputed=False))
451+
dt_SE_adapt = np.array(get_sorted(stats_SE_adapt, type='dt', recomputed=False))
436452

437-
restart_adapt = np.array(get_sorted(stats_adapt, type='restart', recomputed=None, sortby='time'))
438-
restart_SE_adapt = np.array(get_sorted(stats_SE_adapt, type='restart', recomputed=None, sortby='time'))
453+
restart_adapt = np.array(get_sorted(stats_adapt, type='restart', recomputed=None))
454+
restart_SE_adapt = np.array(get_sorted(stats_SE_adapt, type='restart', recomputed=None))
439455

440-
vC_SE = [me[1][1] for me in get_sorted(stats_SE, type='u', recomputed=False, sortby='time')]
441-
vC_adapt = [me[1][1] for me in get_sorted(stats_adapt, type='u', recomputed=False, sortby='time')]
442-
vC_SE_adapt = [me[1][1] for me in get_sorted(stats_SE_adapt, type='u', recomputed=False, sortby='time')]
443-
vC = [me[1][1] for me in get_sorted(stats, type='u', recomputed=False, sortby='time')]
456+
vC_SE = [me[1][1] for me in get_sorted(stats_SE, type='u', recomputed=False)]
457+
vC_adapt = [me[1][1] for me in get_sorted(stats_adapt, type='u', recomputed=False)]
458+
vC_SE_adapt = [me[1][1] for me in get_sorted(stats_SE_adapt, type='u', recomputed=False)]
459+
vC = [me[1][1] for me in get_sorted(stats, type='u', recomputed=False)]
444460

445461
diff_SE, diff = vC_SE - V_ref[0], vC - V_ref[0]
446-
times_SE = [me[0] for me in get_sorted(stats_SE, type='u', recomputed=False, sortby='time')]
447-
times = [me[0] for me in get_sorted(stats, type='u', recomputed=False, sortby='time')]
462+
times_SE = [me[0] for me in get_sorted(stats_SE, type='u', recomputed=False)]
463+
times = [me[0] for me in get_sorted(stats, type='u', recomputed=False)]
448464

449465
diff_adapt, diff_SE_adapt = vC_adapt - V_ref[0], vC_SE_adapt - V_ref[0]
450-
times_adapt = [me[0] for me in get_sorted(stats_adapt, type='u', recomputed=False, sortby='time')]
451-
times_SE_adapt = [me[0] for me in get_sorted(stats_SE_adapt, type='u', recomputed=False, sortby='time')]
466+
times_adapt = [me[0] for me in get_sorted(stats_adapt, type='u', recomputed=False)]
467+
times_SE_adapt = [me[0] for me in get_sorted(stats_SE_adapt, type='u', recomputed=False)]
452468

453469
if len(dt_list) > 1:
454470
ax_diffs[0, count_ax].set_title(r'$\Delta t$=%s' % dt_item)
@@ -572,10 +588,10 @@ def iterations_over_time(dt_list, maxiter, problem, sweeper, cwd='./'):
572588
f4.close()
573589

574590
# consider iterations before restarts to see what happens
575-
iter_counts_SE_val = get_sorted(stats_SE, type='niter', sortby='time')
576-
iter_counts_SE_adapt_val = get_sorted(stats_SE_adapt, type='niter', sortby='time')
577-
iter_counts_adapt_val = get_sorted(stats_adapt, type='niter', sortby='time')
578-
iter_counts_val = get_sorted(stats, type='niter', sortby='time')
591+
iter_counts_SE_val = get_sorted(stats_SE, type='niter')
592+
iter_counts_SE_adapt_val = get_sorted(stats_SE_adapt, type='niter')
593+
iter_counts_adapt_val = get_sorted(stats_adapt, type='niter')
594+
iter_counts_val = get_sorted(stats, type='niter')
579595

580596
iters_time_SE.append([v[1] for v in iter_counts_SE_val])
581597
iters_time_SE_adapt.append([v[1] for v in iter_counts_SE_adapt_val])

0 commit comments

Comments
 (0)