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