From 99326552c0d1b516c073969a13c86304a6e12cc3 Mon Sep 17 00:00:00 2001
From: Bogdan Enache <enache2@illinois.edu>
Date: Sat, 1 Apr 2017 20:37:58 -0500
Subject: [PATCH] Cleaning up code to satisfy flake

---
 examples/wave/var-propagation-speed.py | 13 +---
 grudge/execution.py                    | 26 +++----
 grudge/models/wave.py                  | 93 ++++++--------------------
 3 files changed, 37 insertions(+), 95 deletions(-)

diff --git a/examples/wave/var-propagation-speed.py b/examples/wave/var-propagation-speed.py
index 24719059..cb5d3e9e 100644
--- a/examples/wave/var-propagation-speed.py
+++ b/examples/wave/var-propagation-speed.py
@@ -51,10 +51,9 @@ def main(write_output=True, order=4):
     sym_x = sym.nodes(mesh.dim)
     sym_source_center_dist = sym_x - source_center
     sym_t = sym.ScalarVariable("t")
-    c =    sym.If(sym.Comparison(
-                np.dot(sym_x, sym_x), "<", 0.2),
-                -0.1, -0.2)
-    #c = np.dot(sym_x,sym_x)
+    c = sym.If(sym.Comparison(
+                np.dot(sym_x, sym_x), "<", 0.15),
+                np.float32(-0.1), np.float32(-0.2))
 
     from grudge.models.wave import VariableCoefficientWeakWaveOperator
     from meshmode.mesh import BTAG_ALL, BTAG_NONE
@@ -75,15 +74,9 @@ def main(write_output=True, order=4):
     fields = join_fields(discr.zeros(queue),
             [discr.zeros(queue) for i in range(discr.dim)])
 
-    # FIXME
-    #dt = op.estimate_rk4_timestep(discr, fields=fields)
-
     op.check_bc_coverage(mesh)
 
-    # print(sym.pretty(op.sym_operator()))
     bound_op = bind(discr, op.sym_operator())
-    print(bound_op)
-    # 1/0
 
     def rhs(t, w):
         return bound_op(queue, t=t, w=w)
diff --git a/grudge/execution.py b/grudge/execution.py
index f78c345f..e3646b73 100644
--- a/grudge/execution.py
+++ b/grudge/execution.py
@@ -120,30 +120,32 @@ class ExecutionMapper(mappers.Evaluator,
         else_ = self.rec(expr.else_)
 
         import pymbolic.primitives as p
-
         var = p.Variable
 
-        i = var("i") #sym.Variable("i")
+        i = var("i")
         if isinstance(then,  pyopencl.array.Array):
-            sym_then = var("a")[i] #sym.Variable("a")[i]
+            sym_then = var("a")[i]
+        elif isinstance(then,  np.number):
+            sym_then = var("a")
         else:
-            sym_then = var("a") # sym.Variable("a")
-            then = np.float64(then)
+            raise TypeError(
+                "Expected parameter to be of type np.number or pyopencl.array.Array")
 
         if isinstance(else_,  pyopencl.array.Array):
-            sym_else = var("b")[i] # sym.Variable("b")[i]
+            sym_else = var("b")[i]
+        elif isinstance(then,  np.number):
+            sym_else = var("b")
         else:
-            sym_else = var("b") # sym.Variable("b")
-            else_ = np.float64(else_)
+            raise TypeError(
+                "Expected parameter to be of type np.number or pyopencl.array.Array")
 
         @memoize_in(self.bound_op, "map_if_knl")
         def knl():
             knl = lp.make_kernel(
-               "{[i]: 0<=i<n}",
+                "{[i]: 0<=i<n}",
                 [
-                    lp.Assignment(var("out")[i], p.If(var("crit")[i], sym_then, sym_else))
-
-                   #lp.Assignment(sym.Variable("out")[i], sym.If(sym.Variable("crit")[i], sym_then, sym_else))
+                    lp.Assignment(var("out")[i],
+                        p.If(var("crit")[i], sym_then, sym_else))
                 ])
             return lp.split_iname(knl, "i", 128, outer_tag="g.0", inner_tag="l.0")
 
diff --git a/grudge/models/wave.py b/grudge/models/wave.py
index 6ea1d923..01969125 100644
--- a/grudge/models/wave.py
+++ b/grudge/models/wave.py
@@ -28,7 +28,6 @@ THE SOFTWARE.
 
 import numpy as np
 from grudge.models import HyperbolicOperator
-from grudge.models.second_order import CentralSecondDerivative
 from meshmode.mesh import BTAG_ALL, BTAG_NONE
 from grudge import sym
 from pytools.obj_array import join_fields
@@ -180,6 +179,7 @@ class StrongWaveOperator(HyperbolicOperator):
     def max_eigenvalue(self, t, fields=None, discr=None):
         return abs(self.c)
 
+
 class WeakWaveOperator(HyperbolicOperator):
     """This operator discretizes the wave equation
     :math:`\\partial_t^2 u = c^2 \\Delta u`.
@@ -232,26 +232,14 @@ class WeakWaveOperator(HyperbolicOperator):
                 np.dot(v.avg, normal),
                 u.avg * normal)
 
-
         if self.flux_type == "central":
             return -self.c*flux_weak
         elif self.flux_type == "upwind":
             return -self.c*(flux_weak + self.sign*join_fields(
                     0.5*(u.int-u.ext),
                     0.5*(normal * np.dot(normal, v.int-v.ext))))
-            # see doc/notes/grudge-notes.tm
-            # THis is terrible
-            #flux_weak -= self.sign*join_fields(
-                    #0.5*(u.int-u.ext),
-                    #0.5*(normal * np.dot(normal, v.int-v.ext)))
-        #else:
-            #raise ValueError("invalid flux type '%s'" % self.flux_type)
-
-        #flux_strong = join_fields(
-                #np.dot(v.int, normal),
-                #u.int * normal) - flux_weak
-
-        #return self.c*flux_strong
+        else:
+            raise ValueError("invalid flux type '%s'" % self.flux_type)
 
     def sym_operator(self):
         d = self.ambient_dim
@@ -295,39 +283,22 @@ class WeakWaveOperator(HyperbolicOperator):
                 ), "rad_bc")
 
         # entire operator -----------------------------------------------------
-        nabla = sym.nabla(d)
-
         def flux(pair):
             return sym.interp(pair.dd, "all_faces")(self.flux(pair))
 
-
-        #result = (
-                #- join_fields(
-                    #-self.c*np.dot(nabla, v),
-                    #-self.c*(nabla*u)
-                    #)
-                #+
-                #sym.InverseMassOperator()(
-                    #sym.FaceMassOperator()(
-                        #flux(sym.int_tpair(w))
-                        #+ flux(sym.bv_tpair(self.dirichlet_tag, w, dir_bc))
-                        #+ flux(sym.bv_tpair(self.neumann_tag, w, neu_bc))
-                        #+ flux(sym.bv_tpair(self.radiation_tag, w, rad_bc))
-                        #)))
-
-        result = sym.InverseMassOperator()( 
+        result = sym.InverseMassOperator()(
                 join_fields(
                     -self.c*np.dot(sym.stiffness_t(self.ambient_dim), v),
                     -self.c*(sym.stiffness_t(self.ambient_dim)*u)
                     )
 
 
-                - sym.FaceMassOperator()( flux(sym.int_tpair(w)) 
+                - sym.FaceMassOperator()(flux(sym.int_tpair(w))
                     + flux(sym.bv_tpair(self.dirichlet_tag, w, dir_bc))
                     + flux(sym.bv_tpair(self.neumann_tag, w, neu_bc))
                     + flux(sym.bv_tpair(self.radiation_tag, w, rad_bc))
 
-                    ) )
+                    ))
 
         result[0] += self.source_f
 
@@ -381,7 +352,7 @@ class VariableCoefficientWeakWaveOperator(HyperbolicOperator):
 
         self.sign = sym.If(sym.Comparison(
                             self.c, ">", 0),
-                                            1, -1)
+                                            np.int32(1), np.int32(-1))
 
         self.dirichlet_tag = dirichlet_tag
         self.neumann_tag = neumann_tag
@@ -401,24 +372,15 @@ class VariableCoefficientWeakWaveOperator(HyperbolicOperator):
         flux_weak = join_fields(
                 np.dot(v.avg, normal),
                 u.avg * normal)
-        return -surf_c*flux_weak
-
 
         if self.flux_type == "central":
             return -surf_c*flux_weak
-        #elif self.flux_type == "upwind":
-            # see doc/notes/grudge-notes.tm
-            #flux_weak -= self.sign*join_fields(
-                    #0.5*(u.int-u.ext),
-                    #0.5*(normal * np.dot(normal, v.int-v.ext)))
-        #else:
-            #raise ValueError("invalid flux type '%s'" % self.flux_type)
-
-        #flux_strong = join_fields(
-                #np.dot(v.int, normal),
-                #u.int * normal) - flux_weak
-
-        #return self.c*flux_strong
+        elif self.flux_type == "upwind":
+            return -self.c*(flux_weak + self.sign*join_fields(
+                    0.5*(u.int-u.ext),
+                    0.5*(normal * np.dot(normal, v.int-v.ext))))
+        else:
+            raise ValueError("invalid flux type '%s'" % self.flux_type)
 
     def sym_operator(self):
         d = self.ambient_dim
@@ -457,44 +419,29 @@ class VariableCoefficientWeakWaveOperator(HyperbolicOperator):
         rad_v = sym.cse(sym.interp("vol", self.radiation_tag)(v))
 
         rad_bc = sym.cse(join_fields(
-                0.5*(rad_u - sym.interp("vol",self.radiation_tag)(self.sign)*np.dot(rad_normal, rad_v)),
-                0.5*rad_normal*(np.dot(rad_normal, rad_v) -sym.interp("vol",self.radiation_tag)(self.sign)*rad_u)
+                0.5*(rad_u - sym.interp("vol", self.radiation_tag)(self.sign)
+                    * np.dot(rad_normal, rad_v)),
+                0.5*rad_normal*(np.dot(rad_normal, rad_v)
+                    - sym.interp("vol", self.radiation_tag)(self.sign)*rad_u)
                 ), "rad_bc")
 
         # entire operator -----------------------------------------------------
-        nabla = sym.nabla(d)
-
         def flux(pair):
             return sym.interp(pair.dd, "all_faces")(self.flux(pair))
 
-
-        #result = sym.InverseMassOperator()( 
-                #join_fields(
-                    #-self.c*np.dot(sym.stiffness_t(self.ambient_dim), v),
-                    #-self.c*(sym.stiffness_t(self.ambient_dim)*u)
-                    #)
-
-
-                #- sym.FaceMassOperator()( flux(sym.int_tpair(w)) 
-                    #+ flux(sym.bv_tpair(self.dirichlet_tag, w, dir_bc))
-                    #+ flux(sym.bv_tpair(self.neumann_tag, w, neu_bc))
-                    #+ flux(sym.bv_tpair(self.radiation_tag, w, rad_bc))
-
-                    #)# )
-
-        result = sym.InverseMassOperator()( 
+        result = sym.InverseMassOperator()(
                 join_fields(
                     -self.c*np.dot(sym.stiffness_t(self.ambient_dim), v),
                     -self.c*(sym.stiffness_t(self.ambient_dim)*u)
                     )
 
 
-                - sym.FaceMassOperator()( flux(sym.int_tpair(w)) 
+                - sym.FaceMassOperator()(flux(sym.int_tpair(w))
                     + flux(sym.bv_tpair(self.dirichlet_tag, w, dir_bc))
                     + flux(sym.bv_tpair(self.neumann_tag, w, neu_bc))
                     + flux(sym.bv_tpair(self.radiation_tag, w, rad_bc))
 
-                    ) )
+                    ))
 
         result[0] += self.source_f
 
-- 
GitLab