// HNcusp.fe

// Evolver data file for Hildebrand-Neitsche cusp formed by skewed spiral
// looping around edge of half-plane.

// Adjustable structure constants are:
// 1.  First constant in boundary 1 x1 is half separation of endpoints.
// 2.  Second constant in boundary 1 x1 is skewness of spiral.
#define SEP  0.3
#define SKEW 1.0

boundary 1 parameters 1  //  the skewed spiral
x1:   SEP*p1 - SKEW*sin(p1)
x2:   cos(p1)
x3:   sin(p1)

boundary 2 parameters 1    //  the plane edge
x1:   p1
x2:   0.0
x3    0.0

constraint 1              //   the plane
formula:  x3

vertices
1    3.141592654   boundary 1   fixed
2   -0.4           boundary 2
3    0.4           boundary 2
4   -3.141592654   boundary 1   fixed
5   -1.5708        boundary 1   fixed
6    0.0           boundary 1   fixed
7    1.5708        boundary 1   fixed
8    1 0 0   fixed // for display of plane
9    1 -1.1 0   fixed
10  -1 -1.1 0   fixed
11  -1 0 0   fixed

edges
1   1 2   constraint 1
2   2 3   boundary   2
3   3 4   constraint 1 
4   4 5   boundary   1 fixed
5   5 6   boundary   1 fixed
6   6 7   boundary   1 fixed
7   7 1   boundary   1 fixed
8   2 7
9   3 6
10  3 5
11  8 9  fixed no_refine // for display of plane
12  9 10 fixed no_refine
13  10 11 fixed no_refine
14  11 8  fixed no_refine


faces
1    1 8 7
2    2 9 6 -8
3    10 5 -9
4    4 -10 3
5    11 12 13 14 color clear fixed no_refine // plane

read

hessian_normal

// typical evolution
gogo := { l 1; l 1; u; u; r; g 5; u; V;
          g 5; refine edge where on_constraint 1; 
          g 5; u; t .01;
          refine edge[3]; refine edge[228];
          r; g 10;  V; V; g 10; t .01;
          g 5; r; g 5; u; V; u; V; g 5; n .25; u; u; 
         V; g 5; U;  g 20; u; g 5; 
          hessian_seek; V; u;V; u; g 5;
          hessian_seek; hessian_seek;
         // n .25; u; u; g 5;
        }
