sandbox/Antoonvh/antuono4.c
The steady 3D flow of Antuono
The test case is too simple as we get 5th-order convergence with our 4th-order accurate formulations.
set xr [4:128]
set logscale x 2
set logscale y
set xlabel 'N'
set ylabel 'Error'
plot 'out' u 1:2 t 'L_1', '' u 1:3 t 'Max', 1e4*x**(-5)
See also here
#include "grid/octree.h"
#include "nsf4t.h"
scalar * tracers = NULL;
foreach_dimension()
double Antuono_x (double x, double y, double z) {
double a = 4*sqrt(2)/(3*sqrt(3));
= {x, y ,z};
coord c return a*(sin(c.x - 5.*pi/6)*cos(c.y - pi/6)*sin(c.z) -
(c.z - 5.*pi/6)*sin(c.x - pi/6)*sin(c.y));
cos}
int main() {
foreach_dimension()
periodic (left);
= 2*pi;
L0 for (N = 8; N <= 64; N *= 2)
run();
}
event init (t = 0) {
= 1e-5;
TOLERANCE foreach_face()
.x[] = Gauss6_x(x, y, z, Delta, Antuono_x);
u}
event stop (t = 1) {
double e = 0, em = -1;
foreach_face() {
double el = fabs(u.x[] - Gauss6_x(x, y, z, Delta, Antuono_x));
+= dv()*el;
e if (el > em)
= el;
em }
printf ("%d %g %g\n", N, e, em);
return 1;
}