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