src/test/fractions2.c
Fractions in marginal cases
This checks that straight interfaces falling exactly on grid lines give the correct fractions.
#include "fractions.h"
int main() {
The origin is set at the center of the domain.
origin (- 0.5, - 0.5);
init_grid (4);
Four fractions are defined:
- f_x corresponding to the Level Set function x;
- f_y corresponding to the Level Set function y;
- f_{-x} corresponding to the Level Set function -x;
- f_{-y} corresponding to the Level Set function -y.
All four should correspond to an half space.
scalar fx[], f_x[], fy[], f_y[];
fraction (fx, x);
fraction (fy, y);
fraction (f_x, -x);
fraction (f_y, -y);
The cell grid and values of the fractions are saved.
output_cells (stdout);
foreach()
fprintf (stderr, "%g %g %g %g %g %g \n", x, y, fx[], fy[], f_x[], f_y[]);
}
Ouputs
set term @SVG size 100,100
unset key
unset border
unset tics
plot 'out' w l, 'log' u 1:2:3 with labels
Reconstruction of \phi(x, y) = x (script)
set term @SVG size 100,100
unset key
plot 'out' w l, 'log' u 1:2:4 with labels
Reconstruction of \phi(x, y) = y (script)
set term @SVG size 100,100
unset key
plot 'out' w l, 'log' u 1:2:5 with labels
Reconstruction of \phi(x, y) = -x (script)
set term @SVG size 100,100
unset key
plot 'out' w l, 'log' u 1:2:6 with labels
Reconstruction of \phi(x, y) = -y (script)