// knot32f.fe // 3,2 torus knot with soap film fully touching boundary parameter maj_r = 2 parameter min_r = 0.5 parameter height = 1 boundary 1 parameter 1 convex x1: cos(2*p1)*(maj_r + min_r*cos(3*p1)) x2: sin(2*p1)*(maj_r + min_r*cos(3*p1)) x3: height*min_r*sin(3*p1) vertices 1 -pi/12 boundary 1 fixed 2 pi/12 boundary 1 fixed 3 3*pi/12 boundary 1 4 5*pi/12 boundary 1 5 7*pi/12 boundary 1 fixed 6 9*pi/12 boundary 1 fixed 7 11*pi/12 boundary 1 8 13*pi/12 boundary 1 9 15*pi/12 boundary 1 fixed 10 17*pi/12 boundary 1 fixed 11 19*pi/12 boundary 1 12 21*pi/12 boundary 1 edges 1 1 2 boundary 1 fixed 2 2 3 boundary 1 fixed 3 3 4 boundary 1 4 4 5 boundary 1 fixed 5 5 6 boundary 1 fixed 6 6 7 boundary 1 fixed 7 7 8 boundary 1 8 8 9 boundary 1 fixed 9 9 10 boundary 1 fixed 10 10 11 boundary 1 fixed 11 11 12 boundary 1 12 12 1 boundary 1 fixed 13 1 7 14 2 8 15 3 9 16 4 10 17 5 11 18 6 12 19 8 3 // triple line 20 4 11 // triple line 21 12 7 // triple line faces 1 7 19 3 20 11 21 // center 2 4 17 -20 3 5 18 -11 -17 4 6 -21 -18 5 12 13 -21 6 1 14 -7 -13 7 2 -19 -14 8 8 -15 -19 9 15 9 -16 -3 10 10 -20 16 read hessian_normal // Fix vertices on wire except those where wire leaves film. fixer := { fix vertex where on_boundary 1 and id !=3 and id !=6 } // Typical evolution gogo := { g 20; U; r; g 20; V;V;V;V; u; g 20; r; g 20; V; V; g 20; r; g 20; V; V; fix vertex where on_boundary 1; k 0; // so can use Hessian fix edge where on_boundary 1; hessian; hessian; }