From a43187df2c029dbf329fccb4c71765d29b9f7044 Mon Sep 17 00:00:00 2001
From: "[6~" <inform@tiker.net>
Date: Fri, 22 May 2020 00:07:19 -0500
Subject: [PATCH] Get eager wave example to be dim-independent

---
 examples/wave/wave-eager.py | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/examples/wave/wave-eager.py b/examples/wave/wave-eager.py
index 7daf2b85..f80ff2c7 100644
--- a/examples/wave/wave-eager.py
+++ b/examples/wave/wave-eager.py
@@ -118,8 +118,8 @@ def bump(discr, queue, t=0):
 
     nodes = discr.nodes().with_queue(queue)
     center_dist = join_fields([
-        nodes[0] - source_center[0],
-        nodes[1] - source_center[1],
+        nodes[i] - source_center[i]
+        for i in range(discr.dim)
         ])
 
     return (
@@ -143,8 +143,14 @@ def main():
 
     order = 3
 
-    # no deep meaning here, just a fudge factor
-    dt = 0.75/(nel_1d*order**2)
+    if dim == 2:
+        # no deep meaning here, just a fudge factor
+        dt = 0.75/(nel_1d*order**2)
+    elif dim == 3:
+        # no deep meaning here, just a fudge factor
+        dt = 0.45/(nel_1d*order**2)
+    else:
+        raise ValueError("don't have a stable time step guesstimate")
 
     print("%d elements" % mesh.nelements)
 
@@ -155,7 +161,7 @@ def main():
             [discr.zeros(queue) for i in range(discr.dim)]
             )
 
-    vis = make_visualizer(discr, discr.order+3)
+    vis = make_visualizer(discr, discr.order+3 if dim == 2 else discr.order)
 
     def rhs(t, w):
         return wave_operator(discr, c=1, w=w)
-- 
GitLab