From fd01fd9c2368dd20d466cc6349a2fb7e123c5825 Mon Sep 17 00:00:00 2001 From: Matthias Diener Date: Wed, 21 Jun 2023 14:06:07 -0500 Subject: [PATCH 1/3] _reshape_and_preserve_tags: support untaggable arrays --- meshmode/discretization/connection/direct.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meshmode/discretization/connection/direct.py b/meshmode/discretization/connection/direct.py index 9eb0fae8a..1620910e6 100644 --- a/meshmode/discretization/connection/direct.py +++ b/meshmode/discretization/connection/direct.py @@ -47,7 +47,10 @@ def _reshape_and_preserve_tags( actx: ArrayContext, ary: ArrayT, new_shape: Tuple[int, ...]) -> ArrayT: - return actx.tag(ary.tags, ary.reshape(new_shape)) + try: + return actx.tag(ary.tags, ary.reshape(new_shape)) + except AttributeError: + return ary.reshape(new_shape) # {{{ interpolation batch From 6c6313bf9cc831691e3c2215877bf08ba7665931 Mon Sep 17 00:00:00 2001 From: Matthias Diener Date: Wed, 21 Jun 2023 22:48:30 -0500 Subject: [PATCH 2/3] add comment --- meshmode/discretization/connection/direct.py | 1 + 1 file changed, 1 insertion(+) diff --git a/meshmode/discretization/connection/direct.py b/meshmode/discretization/connection/direct.py index 1620910e6..2a647eeaf 100644 --- a/meshmode/discretization/connection/direct.py +++ b/meshmode/discretization/connection/direct.py @@ -50,6 +50,7 @@ def _reshape_and_preserve_tags( try: return actx.tag(ary.tags, ary.reshape(new_shape)) except AttributeError: + # 'ary' might not have a 'tags' attribute (e.g., in case of an np.ndarray) return ary.reshape(new_shape) From 50f3134312cf7a0dfa3de785082ffbca62fbb960 Mon Sep 17 00:00:00 2001 From: Matthias Diener Date: Wed, 21 Jun 2023 23:16:47 -0500 Subject: [PATCH 3/3] only check for ary.tags --- meshmode/discretization/connection/direct.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/meshmode/discretization/connection/direct.py b/meshmode/discretization/connection/direct.py index 2a647eeaf..a84b2282b 100644 --- a/meshmode/discretization/connection/direct.py +++ b/meshmode/discretization/connection/direct.py @@ -48,10 +48,12 @@ def _reshape_and_preserve_tags( actx: ArrayContext, ary: ArrayT, new_shape: Tuple[int, ...]) -> ArrayT: try: - return actx.tag(ary.tags, ary.reshape(new_shape)) + tags = ary.tags except AttributeError: # 'ary' might not have a 'tags' attribute (e.g., in case of an np.ndarray) return ary.reshape(new_shape) + else: + return actx.tag(tags, ary.reshape(new_shape)) # {{{ interpolation batch