src/test/gaussianaxi.c

    Propagation of an acoustic disturbance in a tube

    This test is the axisymmetric variant of the results presented in Section 4.1 in Fuster and Popinet, 2018. We quantify the dissipation properties of the all-Mach solver in the acoustic limit by simulating the propagation of a gaussian pulse of small amplitude. The results can be compared with the results obtained with a classical Riemann solver.

    #include "grid/multigrid.h"

    We use the two-phase flow formulation.

    Parameters of the problem.

    double tend = 3.;
    
    int main()
    {

    We make everything dimensionless but this should be improved.

      size (20. [0]);
      DT = HUGE [0];
      
      X0 = -L0/2.;

    The EOS for an adiabatic perfect gas is defined by its polytropic coefficient \Gamma = \gamma = 1.4.

      gamma1 = 1.4;

    We perform a convergence study.

      N = 128;
      for (CFLac = 0.01; CFLac <= 100; CFLac *= 5)
        run();
    }
    
    event init (i = 0)
    {   
      double cson = sqrt(gamma1);
      foreach() {
        f[] = 1.;
        p[] = (1. + 1.e-3*exp(-x*x));
        frho1[] = (1. + (p[] - 1.)/sq(cson));
        q.x[] = 0.;
        q.y[] = 0.;
        fE1[] = p[]/(gamma1 - 1.) + 0.5*sq(q.x[])/frho1[];
      }
    }
    
    event endprint (t = tend)
    {  
      foreach ()
        if (y < Delta) {
          double xref = fabs(x) - tend*sqrt(gamma1);
          fprintf (stderr, "%g %g %g \n", CFLac, xref, (p[] - 1.)/1.e-3);
        }
      fprintf (stderr, "\n");
    }
    set xrange[-3:3]
    set cblabel 'log10(CFL)'
    p "log" u 2:3:(log10($1)) not w lp pt 7 palette, 0.5*exp(-x*x) not w l lw 2 lc 0
    Pressure profile (script)

    Pressure profile (script)

    References

    [fuster2018]

    Daniel Fuster and Stéphane Popinet. An all-Mach method for the simulation of bubble dynamics problems in the presence of surface tension. Journal of Computational Physics, 374:752–768, December 2018. [ DOI | http | .pdf ]