From f8f2061ee06c415ad3033e1a5bec5e944ea2bf9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=BChle=2C=20Laura=20Christine=20=28lakue103=29?= <laura.kuehle@uni-duesseldorf.de> Date: Fri, 28 Oct 2022 08:56:01 +0200 Subject: [PATCH] Vectorized '_set_cell_slope()' in MinMod. --- scripts/tcd/Limiter.py | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/scripts/tcd/Limiter.py b/scripts/tcd/Limiter.py index ab2be32..0997198 100644 --- a/scripts/tcd/Limiter.py +++ b/scripts/tcd/Limiter.py @@ -191,24 +191,11 @@ class MinMod(Limiter): Slope of the given cell. """ - slope = [] - for current_cell in range(len(projection[0])): - new_entry = sum( - projection[degree][current_cell] * (degree+0.5)**0.5 - for degree in range(1, len(projection))) - slope.append(new_entry) + root_vector = np.array([np.sqrt(degree+0.5) + for degree in range(len(projection))]) + slope = root_vector[1:] @ projection[1:] return slope[cell] - # # print(np.array(slope).shape) - # # print(slope) - # root_vector = np.array([np.sqrt(degree+0.5) - # for degree in range(len(projection))]) - # test = root_vector[1:] @ projection[1:] - # # print(test.shape) - # # print(np.isclose(test, slope, rtol=1e-16)) - # - # return test[cell] - class ModifiedMinMod(MinMod): """Class for modified minmod limiting function. -- GitLab