src/test/rest1.c

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    // lake at rest with emerged island
    #include "saint-venant.h"
    
    int main()
    {
      origin (-0.5, -0.5);
      init_grid (32);
      run();
    }
    
    event init (i = 0)
    {
      refine (level == 5 && x < 0.1 && y < 0.1);
    
      double a = 0.3, b = 100.;
      foreach() {
        zb[] = a*exp(-b*(x*x + y*y));
        h[] = max (0.1 - zb[], 0.);
      }
    }
    
    event logfile (i = 1)
    {
      norm n = normf (u.x);
      fprintf (stderr, "# %.10f %.10f %.10f\n", n.avg, n.rms, n.max);
      printf ("x y h zb u.x u.y eta\n");
      foreach ()
        printf ("%g %g %g %g %.3g %.3g %.3g\n", x, y, h[], zb[], 
    	    u.x[] < 1e-10 ? 0. : u.x[], 
    	    u.y[] < 1e-10 ? 0. : u.y[], 
    	    h[] > dry ? h[] + zb[] - 0.1 : nodata);
    }