# Surface Evolver Documentation

Back to top of Surface Evolver documentation. Index.

# Surface Evolver Tutorial

To get started using the Surface Evolver, read the Basic Concepts section for a quick introduction, then try the examples. Many more examples can be found at the Evolver Examples Web Page

- Basic concepts
- Cube example
- Mound example
- Catenoid example
- Torus model example (Kelvin's foam)
- Spinning ring example
- Liquid column example

# Basic Concepts

The basic geometric elements used to represent a surface are vertices, edges, facets, and bodies. Vertices are points in space. Edges are straight line segments joining pairs of vertices. Facets are flat triangles bounded by three edges. A surface is a union of facets. (Actually, there is no separate surface entity in the program; all facets belong to one logical surface.) A body is defined by giving its bounding facets.

The term "surface", when used to refer to the entity upon which the Evolver operates, refers to all the geometric elements plus auxiliary data such as constraints, boundaries, and forces.

There are no limitations on how many edges may share a vertex nor on how many facets may share an edge. Thus arbitrary topologies are possible, including the triple junctions of surfaces characteristic of soap films.

Edges and facets are oriented for bookkeeping purposes, but there are no restrictions on the orientation of neighboring facets. Unoriented surfaces are thus possible.

A surface is deemed to have a total energy, arising from surface tension, gravitational energy, and possibly other sources. It is this energy which the Evolver minimizes.

No particular units of measurement are used. The program only deals with numerical values. If you wish to relate the program values to the real world, then all values should be within one consistent system, such as cgs or mks.

The initial surface is specified in a text file (hereafter referred to as the datafile) that may be created with any standard text editor. (The `.fe` extension I always use for datafiles stands for facet-edge, which refers to the internal data structure used to represent the surface. You may use any name you wish for a datafile.)

The basic operation of the Evolver is to read in a datafile and take commands from the user. The main command prompt is

         Enter command:

The most common commands are one letter (case is significant for these), sometimes with a numerical parameter. The most frequently used commands are:

         g n     do n iterations  ('g' is for 'go')
         r       refine the triangulation of surface
         P       graphics output (option 8 for geomview, option 3 for PostScript)
         s       show surface on screen (Evolver's own simple graphics)
         q       quit

There is also a more elaborate command language (in which case is not significant). Commands must be followed with the ENTER key; Evolver only reads complete lines.

An iteration is one evolution step. The motion for the step is calculated as follows: First, the force on each vertex is calculated from the gradient of the total energy of the surface as a function of the position of that vertex. The force gives the direction of motion. Second, the force is made to conform to whatever constraints are applicable. Third, the actual motion is found by multiplying the force by a global scale factor.

Next: Cube example.
Back to top of tutorial.
Back to top of Evolver documentation. Index.