// cat.fe

// Evolver data for catenoid.

PARAMETER  RMAX = 1.5088795   // minimum radius for height
PARAMETER  ZMAX = 1.0

boundary 1 parameters 1     //  upper ring
x1:  RMAX * cos(p1)
x2:  RMAX * sin(p1)
x3:  ZMAX


boundary 2 parameters 1    //   lower ring
x1:  RMAX * cos(p1)
x2:  RMAX * sin(p1)
x3:  -ZMAX


vertices   // given in terms of boundary parameter
1    0.00  boundary 1   fixed
2    pi/3  boundary 1   fixed
3  2*pi/3  boundary 1   fixed
4    pi    boundary 1   fixed
5  4*pi/3  boundary 1   fixed
6  5*pi/3  boundary 1   fixed
7    0.00  boundary 2   fixed
8    pi/3  boundary 2   fixed
9  2*pi/3  boundary 2   fixed
10   pi    boundary 2   fixed
11 4*pi/3  boundary 2   fixed
12 5*pi/3  boundary 2   fixed

edges
1    1  2  boundary 1   fixed
2    2  3  boundary 1   fixed
3    3  4  boundary 1   fixed
4    4  5  boundary 1   fixed
5    5  6  boundary 1   fixed
6    6  1  boundary 1   fixed
7    7  8  boundary 2   fixed
8    8  9  boundary 2   fixed
9    9  10 boundary 2   fixed
10   10 11 boundary 2   fixed
11   11 12 boundary 2   fixed
12   12 7  boundary 2   fixed
13   1  7
14   2  8
15   3  9
16   4  10
17   5  11
18   6  12

faces
1   1 14 -7 -13
2   2 15 -8 -14
3   3 16 -9 -15
4   4 17 -10 -16
5   5 18 -11 -17
6   6 13 -12 -18

read

//   First evolution in Manual example 3, with collapsing neck.
gogo1 := { r; u; g 120; t .05; o; g 5; }

// Second evolution in Manual example 3, showing slowness of 
// evolution at saddle point.
gogo2 := { u; rmax := 1.0 ; zmax := .55*rmax; recalc;
           r; g 50; // looks pretty stable...
	   g 300;   // but was only a saddle point.
	 }

// Third evolution of example 3, with conjugate gradient.
gogo3 := { u; rmax := 1.0 ; zmax := .55*rmax; recalc;
           U; // turn on conjugate gradient
	   r; g 80;
         }

// Same, but with Fletcher-Reeves version of conjugate gradient.
gogo4 := { u; rmax := 1.0 ; zmax := .55*rmax; recalc;
           ribiere off; U; // turn on conjugate gradient
	   r; g 80; // hangs up with small scale factor
	   U 2;  // turn off and on to re-initialize
	   g 30;
         }

// Using the "saddle" command.
gogo5 := { u; rmax := 1.0 ; zmax := .55*rmax; recalc;
           r; g 50; // looks pretty stable...
	   saddle;
	   U; g 50;
	 }
