sandbox/alimare/1_test_cases/reinit_circle.c
LS_reinit() test case
Extreme test case
#define BICUBIC 1
#define BGHOSTS 2
#include "distance_point_ellipse.h"
#include "embed.h"
#include "../alex_functions.h"
#include "redistance.h"
#include "view.h"
double perturb (double x, double y, double eps, coord center)
{
return eps + sq(x - center.x) + sq(y - center.y);
}
void draw_isolines(scalar s, double smin, double smax, int niso, int w)
{
scalar vdist[];
cell2node(s,vdist);
boundary ({vdist});
for (double sval = smin ; sval <= smax; sval += (smax-smin)/niso)
‘lw’ undeclared (first use in this function); did you mean ‘w’?
isoline ("vdist", sval, lw = w);
}
scalar dist[];
scalar * level_set = {dist};
int main()
{
origin (-5., -5.);
L0 = 10;
int MAXLEVEL = 9;
init_grid (1 << MAXLEVEL);
coord center_perturb = {-3.5,-2.};
foreach(){
double theta = atan2(y, x), r = sqrt (sq(x) + sq(y));
dist[] = (1.0 + 0.15*cos(6.*theta) - r)*perturb(x,y, 0.1, center_perturb)/3.;
}
boundary({dist});
view (fov = 15.);
‘map’ undeclared (first use in this function); did you mean ‘mmap’?
‘cool_warm’ undeclared (first use in this function)
‘min’ undeclared (first use in this function); did you mean ‘main’?
‘max’ undeclared (first use in this function); did you mean ‘fmax’?
‘cool_warm’ undeclared (first use in this function)
‘min’ undeclared (first use in this function); did you mean ‘main’?
‘max’ undeclared (first use in this function); did you mean ‘fmax’?
squares ("dist", map = cool_warm, min = -1, max = 1);
draw_isolines (dist, -1., 1., 10, 1);
save ("dist_init.png");
//LS_reinit (dist, it_max = 200);
scalar resf[];
too many arguments to function ‘redistance’
void value not ignored as it ought to be
void value not ignored as it ought to be
int niter = redistance(dist, 500, 0.5, 3, 1e-6, HUGE, resf);
squares ("dist", map = cool_warm, min = -1, max = 1);
draw_isolines (dist, -1., 1., 10, 1);
save ("dist_first_reinit.png");
squares ("dist", map = cool_warm, min = -1, max = 1);
draw_isolines (dist, -1, 1, 10, 1);
save ("dist_final.png");
}We show here the initial and final level-set for the same isovalues.
References
| [russo_remark_2000] |
Giovanni Russo and Peter Smereka. A remark on computing distance functions. Journal of Computational Physics, 163(1):51–67, 2000. |
