From e90514e08be53e277838b6f7a45cd7e4135398ed Mon Sep 17 00:00:00 2001 From: Ellis <eshoag@illinois.edu> Date: Thu, 18 Jan 2018 12:31:10 -0600 Subject: [PATCH] Small fixes --- grudge/symbolic/mappers/__init__.py | 34 +++++------------------------ grudge/symbolic/operators.py | 2 +- 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/grudge/symbolic/mappers/__init__.py b/grudge/symbolic/mappers/__init__.py index d2ef5c6..a0d16d4 100644 --- a/grudge/symbolic/mappers/__init__.py +++ b/grudge/symbolic/mappers/__init__.py @@ -355,37 +355,10 @@ class DistributedMapper(CSECachingMapperMixin, IdentityMapper): distributed_work += op.InterpolationOperator(dd_in=btag_part, dd_out=expr.op.dd_out)(mapped_field) return expr + distributed_work - # if isinstance(expr.op, op.RefFaceMassOperator): - # return expr.op(RankCommunicationMapper(self.connected_parts)(expr.field)) else: return IdentityMapper.map_operator_binding(self, expr) -# class RankCommunicationMapper(CSECachingMapperMixin, IdentityMapper): -# map_common_subexpression_uncached = IdentityMapper.map_common_subexpression -# -# def __init__(self, connected_parts): -# self.connected_parts = connected_parts -# -# def map_operator_binding(self, expr): -# from meshmode.mesh import BTAG_PARTITION -# from meshmode.discretization.connection import (FACE_RESTR_ALL, -# FACE_RESTR_INTERIOR) -# if (isinstance(expr.op, op.InterpolationOperator) -# and expr.op.dd_in.domain_tag is FACE_RESTR_INTERIOR -# and expr.op.dd_out.domain_tag is FACE_RESTR_ALL): -# distributed_work = 0 -# for i_remote_part in self.connected_parts: -# mapped_field = RankGeometryChanger(i_remote_part)(expr.field) -# btag_part = BTAG_PARTITION(i_remote_part) -# distributed_work += op.InterpolationOperator(dd_in=btag_part, -# dd_out=expr.op.dd_out)(mapped_field) -# return expr + distributed_work -# -# else: -# return IdentityMapper.map_operator_binding(self, expr) - - class RankGeometryChanger(CSECachingMapperMixin, IdentityMapper): map_common_subexpression_uncached = IdentityMapper.map_common_subexpression @@ -402,8 +375,11 @@ class RankGeometryChanger(CSECachingMapperMixin, IdentityMapper): % (str(expr), self.prev_dd, self.new_dd)) def map_operator_binding(self, expr): - if isinstance(expr.op, op.OppositeInteriorFaceSwap): - return op.OppositePartitionFaceSwap(dd_in=self.new_dd)( + if (isinstance(expr.op, op.OppositeInteriorFaceSwap) + and expr.op.dd_in == self.prev_dd + and expr.op.dd_out == self.prev_dd): + return op.OppositePartitionFaceSwap(dd_in=self.new_dd, + dd_out=self.new_dd)( self.rec(expr.field)) elif (isinstance(expr.op, op.InterpolationOperator) and expr.op.dd_out == self.prev_dd): diff --git a/grudge/symbolic/operators.py b/grudge/symbolic/operators.py index 7dc2866..739e7b6 100644 --- a/grudge/symbolic/operators.py +++ b/grudge/symbolic/operators.py @@ -396,7 +396,7 @@ class OppositePartitionFaceSwap(Operator): if self.dd_out != self.dd_in: raise ValueError("dd_out and dd_in must be identical") - self.i_remote_part = dd_in.domain_tag.part_nr + self.i_remote_part = self.dd_in.domain_tag.part_nr mapper_method = intern("map_opposite_partition_face_swap") -- GitLab