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.
#include "axi.h"
#include "compressible/two-phase.h"
#include "compressible/Mie-Gruneisen.h"
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)
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 ] |