[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203

Stephane Popinet s.popinet at niwa.co.nz
Fri May 15 02:52:36 UTC 2009


The following commit has been merged in the upstream branch:
commit 69394f445d0e300ca63a7828070718be4d15f837
Author: Stephane Popinet <s.popinet at niwa.co.nz>
Date:   Thu Sep 15 14:12:49 2005 +1000

    New circular waves shallow-water test case
    
    darcs-hash:20050915041249-fbd8f-4cb8d1708e61d9c06baa61ca86505740f3b4ab9a.gz

diff --git a/test/euler/Makefile.am b/test/euler/Makefile.am
index 65c8c64..da7833c 100644
--- a/test/euler/Makefile.am
+++ b/test/euler/Makefile.am
@@ -1,14 +1,15 @@
 ## Process this file with automake to produce Makefile.in
 
 TESTDIRS = \
+	poisson \
+	circle \
 	reynolds \
 	periodic \
 	merging \
 	boundaries \
 	channel \
 	spurious \
-	poisson \
-	circle
+	waves
 
 EXTRA_DIST = \
 	template.tex \
diff --git a/test/euler/template.tex b/test/euler/template.tex
index 225796d..276e9a3 100644
--- a/test/euler/template.tex
+++ b/test/euler/template.tex
@@ -51,6 +51,10 @@ current stable branch of the version-controlled source code.
 
 \input{spurious/spurious.tex}
 
+\section{Shallow-water}
+
+\input{waves/waves.tex}
+
 \bibliographystyle{plain}
 \bibliography{tests}
 
diff --git a/test/euler/tests.bib b/test/euler/tests.bib
index ea9380d..ea5da9d 100644
--- a/test/euler/tests.bib
+++ b/test/euler/tests.bib
@@ -21,6 +21,13 @@
   local_url =    {almgren1.ps.gz}
 }
 
+ at Book{lamb,
+  author =	 {H. Lamb},
+  title = 	 {Hydrodynamics},
+  publisher = 	 {Dover},
+  year = 	 1932
+}
+
 @Article{minion96,
   author = 	 {M. L. Minion},
   title = 	 {A Projection Method for Locally Refined Grids},
@@ -62,3 +69,11 @@
   url =          {http://www-xdiv.lanl.gov/XHM/personnel/wjr/Web_papers/proj/proj.ps.Z},
   pages=         {81-85}
 }
+
+ at TechReport{rutgers-waves,
+  author = 	 {E. Curchitser},
+  title = 	 {Waves in a circular basin},
+  institution =  {Rutgers University},
+  year = 	 2005,
+  url =          {http://marine.rutgers.edu/po/index.php?model=test-problems&title=circle}
+}
diff --git a/test/euler/waves/correlation.ref b/test/euler/waves/correlation.ref
new file mode 100644
index 0000000..97b81c9
--- /dev/null
+++ b/test/euler/waves/correlation.ref
@@ -0,0 +1,3 @@
+5		2.7			0.9316
+6		0.6			0.9992
+7		0.4			1.001
diff --git a/test/euler/circle/star/solution.gfv b/test/euler/waves/solution.gfv
similarity index 78%
copy from test/euler/circle/star/solution.gfv
copy to test/euler/waves/solution.gfv
index b701aa1..589388d 100644
--- a/test/euler/circle/star/solution.gfv
+++ b/test/euler/waves/solution.gfv
@@ -8,15 +8,17 @@ View {
   lc = 0.001
   reactivity = 0.1
 }
-Boundaries {
-  r = 0 g = 0 b = 0
-  shading = Constant
-  maxlevel = -1
-}
-Solid {
+Squares {
   r = 0 g = 0 b = 0
   shading = Constant
   maxlevel = -1
+} {
+  n.x = 0 n.y = 0 n.z = 1
+  pos = 0
+} P {
+  amin = 1
+  amax = 1
+  cmap = Jet
 }
 Isoline {
   r = 0 g = 0 b = 0
@@ -30,5 +32,5 @@ Isoline {
   amax = 1
   cmap = Jet
 } {
-  n = 30
+  n = 16
 }
diff --git a/test/euler/waves/waves.gfs b/test/euler/waves/waves.gfs
new file mode 100644
index 0000000..ed13c62
--- /dev/null
+++ b/test/euler/waves/waves.gfs
@@ -0,0 +1,1590 @@
+# Title: Coastally-trapped waves
+#
+# Description:
+#
+# A simulation is initialised with an exact solution found by Lamb
+# \cite{lamb} for inertia-gravity waves in a circular, flat-bottomed
+# basin on an $f$-plane.
+#
+# The waves should rotate unchanged around the basin. This is a good
+# test of the shallow-water solver with Coriolis terms and non-trivial
+# coastlines.
+#
+# Figure \ref{solution} illustrates the solution obtained after three
+# wave periods.
+#
+# Following \cite{rutgers-waves}, Table \ref{correlation} presents the
+# phase error and the maximum correlation between the computed
+# solution and the exact solution. Note that these results are not
+# directly comparable to \cite{rutgers-waves}, because the timestep
+# used is much larger. The time-explicit codes tested in
+# \cite{rutgers-waves} have stronger stability requirements than
+# Gerris.
+#
+# \begin{figure}[htbp]
+# \begin{center}
+# \includegraphics[width=0.6\hsize]{solution.eps}
+# \end{center}
+# \caption{Surface-height after a rotation of 3 wave periods for a
+# resolution of 9.375 km.}
+# \label{solution}
+# \end{figure}
+#
+# \begin{table}[htbp]
+# \begin{center}
+# \input{correlation.tex}
+# \end{center}
+# \caption{Maximum correlation and phase error as functions of resolution.}
+# \label{correlation}
+# \end{table}
+#
+# Author: St\'ephane Popinet
+# Command: sh waves.sh waves.gfs
+# Version: 0.8.0
+# Required files: waves.sh solution.gfv correlation.ref
+# Generated files: correlation correlation.tex solution.eps
+#
+1 0 GfsOcean GfsBox GfsGEdge {} {
+  Time { end = 37.80501984 dtmax = 0.1 }
+  PhysicalParams { g = 5.87060327757e-3 }
+  Init {} {
+    P = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x);
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    U = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      @define Ik(k,r,D) (gsl_sf_bessel_Inu ((k) - 1., (r)/(D))/(D)\
+                          - (k)/(r)*gsl_sf_bessel_Inu ((k), (r)/(D)))
+      double theta = atan2(y,x);
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double sigma = 0.4986;
+      double A = 1./2555510.;
+      double ur = -A*D*D/5.87060327757e-3*sin (k*theta)*(sigma*Ik (k, r, D) - 
+        	                                               k/r*gsl_sf_bessel_Inu (k, r/D));
+      double vt =  A*D*D/5.87060327757e-3*cos (k*theta)*(Ik (k, r, D) - 
+       	                                               k*sigma/r*gsl_sf_bessel_Inu (k, r/D));
+      return ur*cos (theta) - vt*sin (theta);
+    }
+    V = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      @define Ik(k,r,D) (gsl_sf_bessel_Inu ((k) - 1., (r)/(D))/(D)\
+                          - (k)/(r)*gsl_sf_bessel_Inu ((k), (r)/(D)))
+      double theta = atan2(y,x);
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double sigma = 0.4986;
+      double A = 1./2555510.;
+      double ur = -A*D*D/5.87060327757e-3*sin (k*theta)*(sigma*Ik (k, r, D) - 
+        	                                               k/r*gsl_sf_bessel_Inu (k, r/D));
+      double vt =  A*D*D/5.87060327757e-3*cos (k*theta)*(Ik (k, r, D) - 
+        	                                               k*sigma/r*gsl_sf_bessel_Inu (k, r/D));
+      return ur*sin (theta) + vt*cos (theta);
+    }
+    H = 1
+  }
+  Refine LEVEL
+  GtsSurfaceFile basin.gts
+  AdvectionParams { scheme = none }
+  ApproxProjectionParams { tolerance = 1e-9 weighted = 0 }
+  SourceCoriolis {} 1.
+  EventScript { start = end } { echo -n "-30 " }
+  EventFilter { istep = 1 } U 4
+  EventFilter { istep = 1 } V 4
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -30*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-29 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -29*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-28 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -28*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-27 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -27*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-26 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -26*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-25 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -25*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-24 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -24*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-23 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -23*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-22 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -22*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-21 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -21*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-20 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -20*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-19 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -19*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-18 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -18*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-17 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -17*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-16 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -16*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-15 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -15*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-14 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -14*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-13 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -13*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-12 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -12*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-11 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -11*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-10 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -10*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-9 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -9*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-8 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -8*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-7 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -7*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-6 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -6*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-5 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -5*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-4 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -4*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-3 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -3*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-2 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -2*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "-1 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + -1*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "0 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 0*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "0.1 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 0.1*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "0.2 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 0.2*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "0.3 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 0.3*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "0.4 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 0.4*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "0.5 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 0.5*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "0.6 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 0.6*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "0.7 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 0.7*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "0.8 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 0.8*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "0.9 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 0.9*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "1 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 1*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "1.1 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 1.1*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "1.2 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 1.2*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "1.3 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 1.3*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "1.4 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 1.4*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "1.5 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 1.5*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "1.6 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 1.6*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "1.7 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 1.7*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "1.8 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 1.8*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "1.9 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 1.9*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "2 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 2*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "2.1 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 2.1*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "2.2 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 2.2*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "2.3 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 2.3*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "2.4 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 2.4*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "2.5 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 2.5*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "2.6 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 2.6*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "2.7 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 2.7*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "2.8 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 2.8*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "2.9 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 2.9*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "3 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 3*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "3.1 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 3.1*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "3.2 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 3.2*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "3.3 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 3.3*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "3.4 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 3.4*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "3.5 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 3.5*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "3.6 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 3.6*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "3.7 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 3.7*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "3.8 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 3.8*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "3.9 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 3.9*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "4 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 4*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "4.1 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 4.1*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "4.2 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 4.2*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "4.3 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 4.3*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "4.4 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 4.4*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "4.5 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 4.5*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "4.6 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 4.6*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "4.7 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 4.7*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "4.8 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 4.8*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "4.9 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 4.9*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "5 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 5*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "6 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 6*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "7 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 7*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "8 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 8*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "9 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 9*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "10 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 10*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "11 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 11*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "12 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 12*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "13 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 13*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "14 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 14*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "15 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 15*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "16 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 16*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "17 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 17*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "18 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 18*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "19 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 19*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "20 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 20*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "21 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 21*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "22 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 22*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "23 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 23*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "24 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 24*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "25 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 25*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "26 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 26*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "27 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 27*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "28 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 28*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "29 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 29*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  EventScript { start = end } { echo -n "30 " }
+  OutputCorrelation { start = end } stdout { v = P } {
+    s = {
+      @include <gsl/gsl_sf_bessel.h>
+      @link -lgsl -lgslcblas
+      double theta = atan2(y,x) + 30*M_PI/180.;
+      double r = sqrt (x*x + y*y);
+      double D = 8.83906519983e-2;
+      double k = 3.;
+      double A = 1./2555510.;
+      return A*cos (k*theta)*gsl_sf_bessel_Inu (k, r/D);
+    }
+    unbiased = 1
+  }
+  OutputSimulation { start = end } sim-LEVEL {}
+}
+GfsBox {}
diff --git a/test/euler/waves/waves.sh b/test/euler/waves/waves.sh
new file mode 100644
index 0000000..ddcabed
--- /dev/null
+++ b/test/euler/waves/waves.sh
@@ -0,0 +1,42 @@
+if ! $donotrun; then
+    rm -f correlation res-* sim-*
+    shapes -n 500 ellipse | transform -s 1.999 -i > basin.gts
+    for level in 5 6 7; do
+	if sed "s/LEVEL/$level/g" < $1 | gerris2D - | \
+	    awk '{ print $1 " " $5 }' > res-$level && \
+	    awk -v l=$level 'BEGIN { min1 = 0. } {
+         if ($2 > min1) {
+           theta = $1;
+           min1 = $2;
+         }
+       } END {
+           printf ("%d\t\t%g\t\t\t%g\n", l, theta, min1);
+       }' < res-$level >> correlation; then :
+	else
+	    exit 1
+	fi
+    done
+fi
+
+echo "Save solution.eps { format = EPS }" | gfsview-batch2D -S sim-7 solution.gfv
+
+awk 'BEGIN {
+  print "\\begin{tabular}{|c|c|c|}"
+  print "\\hline Level & Maximum $C$ & Angle of max $C$ \\\\ \\hline"
+}{
+  print $1 " & " $3 " & " $2 " \\\\"
+}END {
+  print "\\hline"
+  print "\\end{tabular}"
+}' < correlation > correlation.tex
+
+if cat <<EOF | python ; then :
+from check import *
+from sys import *
+if (Curve('correlation',1,2) - Curve('correlation.ref',1,2)).max() > 0. or\
+   (Curve('correlation.ref',1,3) - Curve('correlation',1,3)).max() > 0.:
+    exit(1)
+EOF
+else
+   exit 1
+fi

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list