Using the Hilbert iterator
set key off
set size square
set cbrange [-0.5:2.5]
plot 'out' w l palette
#include "quadtree_Hilbert.h"
#include "navier-stokes/centered.h"
double H_indexing (scalar H, bool leaves);
#define RAD (sqrt(sq(x) + sq(y)))
#define ST (x/RAD)
u.t[top] = dirichlet (0);
const face vector nu[] = {0.001, 0.001};
int main() {
mu = nu;
L0 = 20;
X0 = Y0 = -L0/2.;
N = 256;
run();
}
event init (t = 0) {
double k = 3.83170597;
scalar psi[];
foreach()
psi[] = ((RAD > 1)*((1/RAD))*ST +
(RAD < 1)*((-2*j1(k*RAD)*ST/(k*j0(k))) + (RAD*ST)));
boundary({psi});
foreach() {
u.x[] = -(psi[0, 1] - psi[0, -1])/(2*Delta);
u.y[] = (psi[1] - psi[-1])/(2*Delta);
}
}
event adapt (i++)
adapt_wavelet ((scalar*){u}, (double[]){0.05, 0.05}, 8);
event movie (t += 0.1){
scalar omega[];
vorticity (u, omega);
output_ppm (omega, file = "movie.mp4", n = 400);
foreach()
omega[] = pid();
output_ppm (omega, file = "movieP.mp4",
n = 400, min = 0, max = npe());
}
event stop (t = 20) {
for (int piz = 0; piz < npe(); piz++) {
if (pid() == piz)
foreach()
printf ("%g %g %d\n", x, y, pid());
fflush (stdout);
#if _MPI
MPI_Barrier (MPI_COMM_WORLD);
#endif
}
}