From 4bd6d3b0361bb192fafd21fb75afbea1347c6d95 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Wed, 26 May 2021 17:24:42 -0500 Subject: [PATCH] Freeze geometric quantities before memoizing/thaw upon return --- grudge/geometry/metrics.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/grudge/geometry/metrics.py b/grudge/geometry/metrics.py index 3f9c971e..fe0030dd 100644 --- a/grudge/geometry/metrics.py +++ b/grudge/geometry/metrics.py @@ -59,7 +59,7 @@ THE SOFTWARE. import numpy as np from grudge import DiscretizationCollection -from arraycontext import thaw, ArrayContext +from arraycontext import thaw, freeze, ArrayContext from meshmode.dof_array import DOFArray from grudge.dof_desc import ( @@ -403,8 +403,8 @@ def inverse_surface_metric_derivative( actx, dcoll, xyz_axis, d, dd=dd ) for d in range(dim) ) - return imd - return _inv_surf_metric_deriv() + return freeze(imd, actx) + return thaw(_inv_surf_metric_deriv(), actx) def _signed_face_ones( @@ -498,10 +498,10 @@ def area_element( "area_elements_adim%s_gdim%s" % (dcoll.ambient_dim, dim))) def _area_elements(): - return actx.np.sqrt( - pseudoscalar(actx, dcoll, dd=dd).norm_squared() - ) - return _area_elements() + return freeze(actx.np.sqrt( + pseudoscalar(actx, dcoll, dd=dd).norm_squared()), actx) + + return thaw(_area_elements(), actx) # }}} -- GitLab