From 6dae890941bbfcadc93be03e3004e479495b972b Mon Sep 17 00:00:00 2001
From: Ellis <eshoag@illinois.edu>
Date: Fri, 20 Oct 2017 12:56:48 -0500
Subject: [PATCH] working

---
 grudge/execution.py                 |  3 ++-
 grudge/symbolic/mappers/__init__.py |  3 ++-
 grudge/symbolic/operators.py        | 14 ++++++++------
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/grudge/execution.py b/grudge/execution.py
index ceb413a..402bb6b 100644
--- a/grudge/execution.py
+++ b/grudge/execution.py
@@ -532,6 +532,7 @@ def process_sym_operator(sym_operator, post_bind_mapper=None,
         dumper("before-empty-flux-killer", sym_operator)
         sym_operator = mappers.EmptyFluxKiller(mesh)(sym_operator)
 
+
     dumper("before-cfold", sym_operator)
     sym_operator = mappers.CommutativeConstantFoldingMapper()(sym_operator)
 
@@ -560,7 +561,7 @@ def process_sym_operator(sym_operator, post_bind_mapper=None,
     sym_operator = mappers.GlobalToReferenceMapper(mesh.ambient_dim)(sym_operator)
 
     dumper("before-distributed", sym_operator)
-    sys_operator = mappers.DistributedMapper()(sym_operator)
+    sym_operator = mappers.DistributedMapper()(sym_operator)
 
     # Ordering restriction:
     #
diff --git a/grudge/symbolic/mappers/__init__.py b/grudge/symbolic/mappers/__init__.py
index 94bf973..323cc4a 100644
--- a/grudge/symbolic/mappers/__init__.py
+++ b/grudge/symbolic/mappers/__init__.py
@@ -340,7 +340,8 @@ class DistributedMapper(CSECachingMapperMixin, IdentityMapper):
 
     def map_operator_binding(self, expr):
         if isinstance(expr.op, op.OppositeInteriorFaceSwap):
-            return op.OppositeRankFaceSwap()(self.rec(expr.field))
+            return (op.OppositeInteriorFaceSwap()(self.rec(expr.field))
+                    + op.OppositeRankFaceSwap()(self.rec(expr.field)))
         else:
             return IdentityMapper.map_operator_binding(self, expr)
 
diff --git a/grudge/symbolic/operators.py b/grudge/symbolic/operators.py
index 23ca69b..05a23ad 100644
--- a/grudge/symbolic/operators.py
+++ b/grudge/symbolic/operators.py
@@ -383,16 +383,18 @@ class OppositeRankFaceSwap(Operator):
     def __init__(self, dd_in=None, dd_out=None):
         sym = _sym()
 
-        from meshmode.mesh import BTAG_PARTITION
+        # from meshmode.mesh import BTAG_PARTITION
         if dd_in is None:
-            dd_in = sym.DOFDesc(BTAG_PARTITION, None)
+            # FIXME: What is FRESTR_INTERIOR_FACES?
+            dd_in = sym.DOFDesc(sym.FRESTR_INTERIOR_FACES)
+            # dd_in = sym.DOFDesc(sym.BTAG_PARTITION)
         if dd_out is None:
             dd_out = dd_in
 
-        if dd_in.domain_tag is not BTAG_PARTITION:
-            raise ValueError("dd_in must be a rank boundary faces domain")
-        if dd_out != dd_in:
-            raise ValueError("dd_out and dd_in must be identical")
+        # if dd_in.domain_tag is not BTAG_PARTITION:
+        #     raise ValueError("dd_in must be a rank boundary faces domain")
+        # if dd_out != dd_in:
+        #     raise ValueError("dd_out and dd_in must be identical")
 
         super(OppositeRankFaceSwap, self).__init__(dd_in, dd_out)
 
-- 
GitLab