next up previous
Next: An Example: The Shapes Up: "SURFACE EVOLVER" AS Previous: Introduction

Brief Description of Surface Evolver

Evolver comes with a manual which describes the use and technical details of the code in great depth[4]. A short (and incomplete) description is presented here to put the following examples in context. An example follows which may clarify some of this description.

Evolver is a vertex-edge-facet element model of surfaces. Surfaces can be associated with bodies, but there are no volume elements. Energy is calculated by associating quantities, often vector quantities, to subsets of the facets, edges and vertices. The simplest contribution to the energy is from isotropic surface tension; in this case energy depends only on the area associated with a facet.

Volume elements do not exist, but volumes and volume energy are included by an integration technique which utilizes the divergence theorem as discussed below.

Facets always have three edges; any facets which are input to Evolver which have four or more edges get divided into coplanar triangles. Edges are directed quantities: they have a head and a tail vertex. Edges are assembled onto facets so that their direction obeys the right-hand-rule for the facet outward normal.

There are different types of constraints. The first are spatial constraints given as mathematical surfaces or boundaries to which vertices, edges or facets can be restricted. A second type of constraint acts in the same manner as a Lagrangian multiplyer. For instance, the volume of a body may be fixed. A body is the interior of the union of all its facets and regions bounded by edges on surface constraints (the example below will clarify this).

For facets which are supposed to change shape and orientation, fixing them to a spatial constraint is a bad idea (but still allowed as a last resort) since the vertices such facets will have gradients which typically lie normal to the constraint surface. Since they must be constantly projected back to the surface, those vertices tend not to move and become a bottleneck to further minimization. In order to avoid this, it is possible to associate line integrals with edges on constraints so as to account for the energy and volume associated with those surfaces so the need for placing facets there is obviated.

Once a model has been assembled, Evolver iterates towards a minimum in energy (plus possible Lagrange multiplyer terms) by methods which can be selected by the user. The default method simultaneously moves each vertex in the direction of gradient energy associated with the vertex coordinates (i.e., in the direction of the force on the vertex). Alternatively, one can use variants of conjugate gradient schemes or higher order methods or seeking minima. The mesh can be refined at any time, the most effortless scheme is to simply divide each triangle into four by placing a vertex in the middle of each edge by typing the single-letter command r.

The use of Evolver may be a daunting at first, but it really is not very complicated. One of the best things about Evolver (and this is a direct result of the thoughtfulness of its author) is that it is so flexible. It is flexible because Evolver is really a programming language and like all languages its utility depends on the user. There are several standard methods of solution which frequently are found in Evolver codes. With the benefit that one can solve many different kinds of problems comes the compromise is that much of the burden for the construction of a working model resides with the user. It is often productive to start from a working model. The following example is both useful and instructive.


next up previous
Next: An Example: The Shapes Up: "SURFACE EVOLVER" AS Previous: Introduction

W. Craig Carter
Wed Feb 28 11:27:46 EST 1996