src/test/bore.c

    Undular bores for the Green-Naghdi equations

    This test case was proposed by Le Métayer et al, 2010 (section 6.2). This is a dam break problem described by the (dispersive) Green-Naghdi equations (rather than the non-dispersive Saint-Venant equations).

    #include "grid/bitree.h"
    #include "green-naghdi.h"

    The domain is 600 metres long, centered on the origin. The acceleration of gravity is set to 10 m/s2. The problem is solved in one dimension with 2048 grid points.

    int main()
    {
      X0 = -300.;
      L0 = 600.;
      G = 10.;
      N = 2048;
      run();
    }

    The initial conditions are zero velocity and a jump in fluid depth at the origin (i.e. dam break conditions).

    event init (i = 0)
    {
      foreach() {
        h[] = x < 0. ? 1.8 : 1.;
        u.x[] = 0.;
      }
    }
    
    event output (t = 48) {
      foreach()
        fprintf (stdout, "%g %g %g\n", x, h[], u.x[]);
      fprintf (stdout, "\n");
    }

    At t = 48 seconds, the depth and velocity profiles are given below. They are compared with the numerical solution of the same problem obtained with the Saint-Venant solver (bore1.c).

    The solution consists of localized undular bores superposed onto the Saint-Venant solution. This demonstrates the robustness of the numerical scheme.

    set xlabel 'x'
    set ylabel 'z'
    set key top left
    plot '../bore1/out' w l t 'Saint-Venant', 'out' w l t 'Green-Naghdi'
    Fluid depth profile at t = 48 seconds. (script)

    Fluid depth profile at t = 48 seconds. (script)

    set xlabel 'x'
    set ylabel 'u'
    plot '../bore1/out' u 1:3 w l t 'Saint-Venant', 'out' u 1:3 w l t 'Green-Naghdi'
    Velocity profile at t = 48 seconds. (script)

    Velocity profile at t = 48 seconds. (script)