// dcell.fe

// Surface Evolver datafile for fundamental region for Schwartz' D minimal surface
// 1/24 of cube

// Programmer: Ken Brakke, brakke@susqu.edu, http://www.susqu.edu

/* Commands:
   gogo - typical evolution
   showcube - display cubic unit cell
   showfour - show four cubic unit cells
   showrhombic - show rhombic dodecahedron unit cell
   transforms off - show just single fundamental region
   setcolor - to color one side yellow, as in my web page.

   To turn off showing all the edges in the graphics display,
      hit the "e" key in the graphics window.
*/

symmetric_content
parameter fudge = 1/3

constraint 1 // top
formula: x + z = 2 
content:
c1: fudge*(y+1)
c2: fudge*(1-x)
c3: 0

constraint 2 // right side
formula: y - x = 0 

constraint 3 // left side
formula -x-y = 0

constraint 4 // front
formula: x - z = 0 


view_transform_generators 8
0,1,0,0    1,0,0,0   0,0,1,0   0,0,0,1  // a: x,y swap
0,-1,0,0  -1,0,0,0   0,0,1,0   0,0,0,1  // b: x+y=0 mirror
0,0,1,0    0,1,0,0   1,0,0,0   0,0,0,1  // c: x,z swap
swap_colors 1 0 0 2 , 0  1 0 0, 0 0  1 0, 0 0 0 1 // d: x translation by 2
swap_colors 1 0 0 0 , 0  1 0 2, 0 0  1 0, 0 0 0 1 // e: y translation by 2
swap_colors 1 0 0 0 , 0  1 0 0, 0 0  1 2, 0 0 0 1 // f: z translation by 2
swap_colors 1 0 0 0,  0 -1 0 0, 0 0 -1 2, 0 0 0 1 // g: C2 rotation about x axis
swap_colors -1 0 0 0, 0  1 0 0, 0 0 -1 2, 0 0 0 1 // h: C2 rotation about y axis

vertices
2    1  0 1  fixed
3   .5 .5 .5 constraints 2,4 
4   0 0 1  fixed
5   0 0 0  fixed bare // for tetrahedron outline
6   0 0 1  fixed bare
7   1 -1 1 fixed bare
8   1 1 1 fixed bare

edges
2   2 3 constraint 4
3   3 4 constraint 2
4   4 2 fixed
5   5 6 fixed bare no_refine // for tetrahedron display
6   5 7 fixed bare no_refine
7   5 8 fixed bare no_refine
8   6 7 fixed bare no_refine
9   6 8 fixed bare no_refine
10  7 8 fixed bare no_refine

facets
1   2 3 4 

bodies 
1  1 volume  1/12

read
hessian_normal

// command to show full cell in rhombic dodecahedron
showrhombic := { transform_expr "abcabcg"; transforms on; 
                 set edge color black;
                 set edge color clear where bare and original != 7 and
                     original != 6;
                 show_trans "R";
	      }
// command to show full cell in cube
showcube := { transform_expr "abcabc"; transforms on; 
              set edge color black;
              set edge color clear where bare and original != 9;
              show_trans "R";
	      }

// command to show four full cells
showfour := { transform_expr "efabcabc"; transforms on; 
              set edge color clear where bare;
              show_trans "R";
	      }

// command to show eight full cells
showeight := { transform_expr "defabcabc"; transforms on; 
              set edge color clear where bare;
              show_trans "R";
	      }

// Alternate unit cell, more suitable for 3D printing
// command to show full cell in cube
showcube_alt := { transform_expr "hgaca"; transforms on; 
                  set edge color black;
                  set edge color clear where bare;
                  show_trans "R";
	          }

// command to show four full cells
showfour_alt := { transform_expr "efhgaca"; transforms on; 
              set edge color clear where bare;
              show_trans "R";
	      }

// command to show eight full cells
showeight_alt := { transform_expr "defhgaca"; transforms on; 
              set edge color clear where bare;
              show_trans "R";
	      }

// Alternate unit cell, more suitable for 3D printing

setcolor := { set facet backcolor yellow }

// To show just one fundamental region, do "transforms off".
// To show tetrahedron outline again, do "show edges".

// A typical evolution
gogo := { g 5; r; g 5; r; g 5; r; g 10; r; g 10;  hessian; hessian;
        }

/* dcell commands:
   gogo - typical evolution
   showcube - display cubic unit cell
   showfour - show four cubic unit cells
   showeight - show eight cubic unit cells
   showrhombic - show rhombic dodecahedron unit cell
   transforms off - show just single fundamental region
   setcolor - to color one side yellow, as in my web page.
*/
