From f8a69089b1a3f29e25897fc1ba53c11ea9569d0b Mon Sep 17 00:00:00 2001 From: Alexandru Fikl <alexfikl@gmail.com> Date: Tue, 25 Aug 2020 19:56:56 -0500 Subject: [PATCH] enable WADG if not all groups are affine --- grudge/execution.py | 4 +--- grudge/symbolic/mappers/__init__.py | 13 +++++-------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/grudge/execution.py b/grudge/execution.py index a651226f..59276ec0 100644 --- a/grudge/execution.py +++ b/grudge/execution.py @@ -755,9 +755,7 @@ def process_sym_operator(discrwb, sym_operator, post_bind_mapper=None, dumper=No )(sym_operator) dumper("before-global-to-reference", sym_operator) - sym_operator = mappers.GlobalToReferenceMapper( - discrwb.ambient_dim, - dim=discrwb.dim)(sym_operator) + sym_operator = mappers.GlobalToReferenceMapper(discrwb)(sym_operator) dumper("before-distributed", sym_operator) diff --git a/grudge/symbolic/mappers/__init__.py b/grudge/symbolic/mappers/__init__.py index e8a63c1c..ebc771f9 100644 --- a/grudge/symbolic/mappers/__init__.py +++ b/grudge/symbolic/mappers/__init__.py @@ -587,18 +587,15 @@ class GlobalToReferenceMapper(CSECachingMapperMixin, IdentityMapper): reference elements, together with explicit multiplication by geometric factors. """ - def __init__(self, ambient_dim, dim=None): + def __init__(self, discrwb): CSECachingMapperMixin.__init__(self) IdentityMapper.__init__(self) - if dim is None: - dim = ambient_dim + self.ambient_dim = discrwb.ambient_dim + self.dim = discrwb.dim - self.ambient_dim = ambient_dim - self.dim = dim - - # NOTE: only use WADG on surfaces at the moment - self.use_wadg = self.ambient_dim == (self.dim + 1) + volume_discr = discrwb.discr_from_dd(sym.DD_VOLUME) + self.use_wadg = not all(grp.is_affine for grp in volume_discr.groups) map_common_subexpression_uncached = \ IdentityMapper.map_common_subexpression -- GitLab