From 0b4159ed41db87b8d66383a3d5212fc670c94998 Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Keck <Jean-Baptiste.Keck@imag.fr>
Date: Tue, 14 Aug 2018 20:31:56 +0200
Subject: [PATCH] fixed all examples: VorticityField and default discretization

---
 examples/bubble/periodic_bubble.py            |  4 +--
 examples/bubble/periodic_bubble_levelset.py   |  4 +--
 .../periodic_bubble_levelset_penalization.py  |  4 +--
 examples/bubble/periodic_jet_levelset.py      |  4 +--
 .../particles_above_salt_periodic.py          |  4 +--
 .../particles_above_salt_symmetrized.py       |  6 ++--
 examples/shear_layer/shear_layer.py           |  4 +--
 examples/taylor_green/taylor_green.py         |  2 +-
 test_examples.sh                              | 32 +++++++++++++++++++
 9 files changed, 48 insertions(+), 16 deletions(-)
 create mode 100755 test_examples.sh

diff --git a/examples/bubble/periodic_bubble.py b/examples/bubble/periodic_bubble.py
index 6ae304e04..14ed5a839 100644
--- a/examples/bubble/periodic_bubble.py
+++ b/examples/bubble/periodic_bubble.py
@@ -111,7 +111,7 @@ def compute(args):
     # Define parameters and field (time, timestep, velocity, vorticity, enstrophy)
     t, dt = TimeParameters(dtype=args.dtype)
     velo  = VelocityField(domain=box, dtype=args.dtype)
-    vorti = VorticityField(domain=box, dtype=args.dtype)
+    vorti = VorticityField(velocity=velo)
     rho   = DensityField(domain=box, dtype=args.dtype) 
     mu    = ViscosityField(domain=box, dtype=args.dtype, mu=True)
 
@@ -394,7 +394,7 @@ if __name__=='__main__':
 
     parser = PeriodicBubbleArgParser()
 
-    parser.set_defaults(impl='cl', ndim=2, npts=(257,),
+    parser.set_defaults(impl='cl', ndim=2, npts=(256,),
                         box_origin=(0.0,), box_length=(1.0,), 
                         tstart=0.0, tend=0.51, 
                         dt=1e-5, cfl=0.5, lcfl=0.125,
diff --git a/examples/bubble/periodic_bubble_levelset.py b/examples/bubble/periodic_bubble_levelset.py
index 6ddcae08c..062747feb 100644
--- a/examples/bubble/periodic_bubble_levelset.py
+++ b/examples/bubble/periodic_bubble_levelset.py
@@ -99,7 +99,7 @@ def compute(args):
     # Define parameters and field (time, timestep, velocity, vorticity, enstrophy)
     t, dt = TimeParameters(dtype=args.dtype)
     velo  = VelocityField(domain=box, dtype=args.dtype)
-    vorti = VorticityField(domain=box, dtype=args.dtype)
+    vorti = VorticityField(velocity=velo)
     phi   = LevelSetField(domain=box, dtype=args.dtype)
     rho   = DensityField(domain=box, dtype=args.dtype) 
     mu    = ViscosityField(domain=box, dtype=args.dtype, mu=True)
@@ -394,7 +394,7 @@ if __name__=='__main__':
 
     parser = PeriodicBubbleArgParser()
 
-    parser.set_defaults(impl='cl', ndim=2, npts=(257,),
+    parser.set_defaults(impl='cl', ndim=2, npts=(256,),
                         box_origin=(0.0,), box_length=(1.0,), 
                         tstart=0.0, tend=0.51, 
                         dt=1e-6, cfl=0.5, lcfl=0.125,
diff --git a/examples/bubble/periodic_bubble_levelset_penalization.py b/examples/bubble/periodic_bubble_levelset_penalization.py
index 1c6e8b72d..13edae9d3 100644
--- a/examples/bubble/periodic_bubble_levelset_penalization.py
+++ b/examples/bubble/periodic_bubble_levelset_penalization.py
@@ -107,7 +107,7 @@ def compute(args):
     # Define parameters and field (time, timestep, velocity, vorticity, enstrophy)
     t, dt   = TimeParameters(dtype=args.dtype)
     velo    = VelocityField(domain=box, dtype=args.dtype)
-    vorti   = VorticityField(domain=box, dtype=args.dtype)
+    vorti   = VorticityField(velocity=velo)
     phi     = LevelSetField(domain=box, dtype=args.dtype)
     _lambda = PenalizationField(domain=box, dtype=args.dtype)
     rho     = DensityField(domain=box, dtype=args.dtype) 
@@ -433,7 +433,7 @@ if __name__=='__main__':
 
     parser = PeriodicBubbleArgParser()
 
-    parser.set_defaults(impl='cl', ndim=2, npts=(244,),
+    parser.set_defaults(impl='cl', ndim=2, npts=(256,),
                         box_origin=(0.0,), box_length=(1.0,), 
                         tstart=0.0, tend=1.75, 
                         dt=1e-6, cfl=0.5, lcfl=0.125,
diff --git a/examples/bubble/periodic_jet_levelset.py b/examples/bubble/periodic_jet_levelset.py
index 2d1653b75..c923e5a88 100644
--- a/examples/bubble/periodic_jet_levelset.py
+++ b/examples/bubble/periodic_jet_levelset.py
@@ -93,7 +93,7 @@ def compute(args):
     # Define parameters and field (time, timestep, velocity, vorticity, enstrophy)
     t, dt = TimeParameters(dtype=args.dtype)
     velo  = VelocityField(domain=box, dtype=args.dtype)
-    vorti = VorticityField(domain=box, dtype=args.dtype)
+    vorti = VorticityField(velocity=velo)
     phi   = LevelSetField(domain=box, dtype=args.dtype)
     rho   = DensityField(domain=box, dtype=args.dtype) 
 
@@ -339,7 +339,7 @@ if __name__=='__main__':
 
     parser = PeriodicJetArgParser()
 
-    parser.set_defaults(impl='cl', ndim=2, npts=(129,),
+    parser.set_defaults(impl='cl', ndim=2, npts=(128,),
                         box_origin=(0.0,), box_length=(1.0,), 
                         tstart=0.0, tend=0.66, 
                         dt=1e-5, cfl=0.5, lcfl=0.125,
diff --git a/examples/particles_above_salt/particles_above_salt_periodic.py b/examples/particles_above_salt/particles_above_salt_periodic.py
index f1d3b3422..d9075ad73 100644
--- a/examples/particles_above_salt/particles_above_salt_periodic.py
+++ b/examples/particles_above_salt/particles_above_salt_periodic.py
@@ -118,7 +118,7 @@ def compute(args):
     # Define parameters and field (time, timestep, velocity, vorticity, enstrophy)
     t, dt = TimeParameters(dtype=args.dtype)
     velo  = VelocityField(domain=box, dtype=args.dtype)
-    vorti = VorticityField(domain=box, dtype=args.dtype)
+    vorti = VorticityField(velocity=velo)
     _lambda = PenalizationField(domain=box, dtype=args.dtype)
     C     = Field(domain=box, name='C', dtype=args.dtype)
     S     = Field(domain=box, name='S', dtype=args.dtype)
@@ -365,7 +365,7 @@ if __name__=='__main__':
 
     parser = ParticleAboveSaltArgParser()
 
-    parser.set_defaults(impl='cl', ndim=2, npts=(65,),
+    parser.set_defaults(impl='cl', ndim=2, npts=(64,),
                         box_origin=(0.0,), box_length=(1.0,), 
                         tstart=0.0, tend=500.0, 
                         dt=1e-6, cfl=0.5, lcfl=0.125,
diff --git a/examples/particles_above_salt/particles_above_salt_symmetrized.py b/examples/particles_above_salt/particles_above_salt_symmetrized.py
index 53afffa57..f12160052 100644
--- a/examples/particles_above_salt/particles_above_salt_symmetrized.py
+++ b/examples/particles_above_salt/particles_above_salt_symmetrized.py
@@ -77,7 +77,7 @@ def compute(args):
 
     # Define the domain
     dim = args.ndim
-    npts = (3073,513)
+    npts = (3072,512)
     Xo = (0,0)
     Xn = (2400,750)
     box = Box(origin=Xo, length=np.subtract(Xn,Xo))
@@ -113,7 +113,7 @@ def compute(args):
     # Define parameters and field (time, timestep, velocity, vorticity, enstrophy)
     t, dt = TimeParameters(dtype=args.dtype)
     velo  = VelocityField(domain=box, dtype=args.dtype)
-    vorti = VorticityField(domain=box, dtype=args.dtype)
+    vorti = VorticityField(velocity=velo)
     C     = Field(domain=box, name='C', dtype=args.dtype)
     S     = Field(domain=box, name='S', dtype=args.dtype)
     
@@ -352,7 +352,7 @@ if __name__=='__main__':
 
     parser = ParticleAboveSaltArgParser()
 
-    parser.set_defaults(impl='cl', ndim=2, npts=(65,),
+    parser.set_defaults(impl='cl', ndim=2, npts=(64,),
                         box_origin=(0.0,), box_length=(1.0,), 
                         tstart=0.0, tend=500.0, 
                         dt=1e-6, cfl=0.5, lcfl=0.125,
diff --git a/examples/shear_layer/shear_layer.py b/examples/shear_layer/shear_layer.py
index aae070005..3a847be71 100644
--- a/examples/shear_layer/shear_layer.py
+++ b/examples/shear_layer/shear_layer.py
@@ -77,7 +77,7 @@ def compute(args):
     # Define parameters and field (time, timestep, viscosity, velocity, vorticity)
     t, dt = TimeParameters(dtype=args.dtype)
     velo  = VelocityField(domain=box, dtype=args.dtype)
-    vorti = VorticityField(domain=box, dtype=args.dtype)
+    vorti = VorticityField(velocity=velo)
     nu    = ViscosityParameter(initial_value=args.nu, const=True, dtype=args.dtype)
     
     ### Build the directional operators
@@ -277,7 +277,7 @@ if __name__=='__main__':
 
     parser = ShearLayerArgParser()
 
-    parser.set_defaults(impl='cl', ndim=2, npts=(257,),
+    parser.set_defaults(impl='cl', ndim=2, npts=(256,),
                         box_origin=(0.0,), box_length=(1.0,), 
                         tstart=0.0, tend=1.25, 
                         dt=1e-4, cfl=0.5, lcfl=0.125,
diff --git a/examples/taylor_green/taylor_green.py b/examples/taylor_green/taylor_green.py
index 21115b59d..29dc40502 100644
--- a/examples/taylor_green/taylor_green.py
+++ b/examples/taylor_green/taylor_green.py
@@ -372,7 +372,7 @@ if __name__=='__main__':
 
     parser = TaylorGreenArgParser()
 
-    parser.set_defaults(impl='cl', ndim=3, npts=(65,),
+    parser.set_defaults(impl='cl', ndim=3, npts=(64,),
                         box_origin=(0.0,), box_length=(2*pi,), 
                         tstart=0.0, tend=20.01, 
                         dt=1e-5, 
diff --git a/test_examples.sh b/test_examples.sh
new file mode 100755
index 000000000..c4abfbb60
--- /dev/null
+++ b/test_examples.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+set -e
+
+if [ -z "$HYSOP_ROOT" ]; then
+    HYSOP_ROOT=$(pwd)
+    echo "Warning: HYSOP_ROOT has not been set."
+    echo "Setting HYSOP_ROOT to '$HYSOP_ROOT'"
+fi
+
+export HYSOP_VERBOSE=1
+export HYSOP_DEBUG=0
+export HYSOP_PROFILE=0
+export HYSOP_KERNEL_DEBUG=0
+python -c 'import hysop; print hysop'
+
+EXAMPLE_DIR="$HYSOP_ROOT/examples"
+EXAMPLE_OPTIONS='-cp default -maxit 2'
+python "$EXAMPLE_DIR/analytic/analytic.py" $EXAMPLE_OPTIONS
+python "$EXAMPLE_DIR/scalar_diffusion/scalar_diffusion.py" $EXAMPLE_OPTIONS
+python "$EXAMPLE_DIR/scalar_advection/scalar_advection.py" $EXAMPLE_OPTIONS
+python "$EXAMPLE_DIR/shear_layer/shear_layer.py" $EXAMPLE_OPTIONS
+python "$EXAMPLE_DIR/taylor_green/taylor_green.py" -impl python $EXAMPLE_OPTIONS
+python "$EXAMPLE_DIR/taylor_green/taylor_green.py" -impl opencl $EXAMPLE_OPTIONS
+python -c "from hysop.f2hysop import scales2py as scales" && python "$EXAMPLE_DIR/taylor_green/taylor_green.py" -impl fortran $EXAMPLE_OPTIONS
+python "$EXAMPLE_DIR/bubble/periodic_bubble.py" $EXAMPLE_OPTIONS
+python "$EXAMPLE_DIR/bubble/periodic_bubble_levelset.py" $EXAMPLE_OPTIONS
+python "$EXAMPLE_DIR/bubble/periodic_bubble_levelset_penalization.py" $EXAMPLE_OPTIONS
+python "$EXAMPLE_DIR/bubble/periodic_jet_levelset.py" $EXAMPLE_OPTIONS
+python "$EXAMPLE_DIR/particles_above_salt/particles_above_salt_periodic.py" $EXAMPLE_OPTIONS
+python "$EXAMPLE_DIR/particles_above_salt/particles_above_salt_symmetrized.py" $EXAMPLE_OPTIONS
+
+exit 0
-- 
GitLab