sandbox/bugs/leaking.c
Leaking boundaries
This is based on the shock test.
#include "saint-venant.h"
int LEVEL = 5;
We define a new boundary for the cylinder.
bid cylinder;
int main() {
size (5.);
G = 9.81;
origin (-L0/2., -L0/2.);
// gradient = zero;
init_grid (1 << LEVEL);
run();
}
We impose height and velocity on the left boundary.
The geometry is defined by masking and the initial step function is imposed.
If this is replaced by “convex” boundaries there seems to be no problem.
mask (sq(x + 0.5) + sq(y) < sq(0.5) ? cylinder : none);
foreach() {
h[] = (x <= -1 ? H0 : 1.);
u.x[] = (x <= -1 ? U0 : 0.);
}
}
event logfile (i++; t <= 0.3) {
stats s = statsf (h);
fprintf (ferr, "%g %d %g %g %.8f\n", t, i, s.min, s.max, s.sum);
}
The mass is not conserved as it should.
plot 'log' u 1:5 w l