A tree on a tree
#include "grid/octree.h"
#include "treegen.h"
#include "view.h"
Branch * trees;
int maxlevel = 9;
int main() {
levels = 4;
srand (time(NULL));
trees = tree_skeleton();
L0 = 55.;
X0 = Z0 = -L0/2;
N = 64;
init_grid (N);
scalar cs[];
scalar J[]; //Index of closes branch
cs.prolongation = cs.refine = fraction_refine;
face vector fs[];
int it = maxlevel - depth(), j = 0;
while (j < it + 2) {
printf ("%d %ld\n", j++, grid->n);
tree_interface (trees, cs, fs);
boundary ({cs});
adapt_wavelet ({cs}, (double[]){0.01}, maxlevel);
}
tree_interface (trees, cs, fs, J); //for `fs` and `J`
foreach()
J[] = trees[(int)(J[] + 0.5)].R; //replace index with radius
boundary ({J});
for (double theta = 0; theta <= 2*pi; theta += 0.025) {
view (ty = -0.5, theta = theta);
draw_vof ("cs", "fs", color = "J", min = 0, max = trees[0].R);
cells();
save ("tree.mp4");
}
free (trees);
}