Using Surface Evolver to model elastic sheets

Tutorial Files

pringle.fe
Solving for a minimal surface within a pringle-shaped boundary.
triangle1.fe
The first example with linear elasticity. The triangle starts off as isosceles, but with a form_factor for a right triangle. Does not include the additional code to handle refinement.
triangle2.fe
Updates triangle1 to include ref_coords for each vertex as well as the code to correctly set the form_factors when refined.
3peaks.fe
A sample file that I actually used. Significantly more complicated than the previous files, it includes both bending and stretching energies and a mirror symmetry plane.

Useful (?) Scripts

These are scripts that I have written to simplify my life. Perhaps they will help you.

sewrap.py
A wrapper around the evolver prompt that adds line editing capabilities. Probably only works on systems with GNU readline. It's pretty simplistic, so occasionally it gets confused.
outputsurf.cmd
A surface evolver command that outputs the current surface to a data file, in the form of a list of vertex locations and a list of facets. First, load the command with read "outputsurf.cmd", then write to file filename with outputsurf >> filename.
createtriangulation.py, createmirrortriangulation.py
Creates the triangulation for a long, thin strip. Expects an integer aspect ratio as an argument and prints to stdout. createmirrortriangulation includes a mirror symmetry plane down the middle of the strip.
surface.py
Contains the EvolveSurf class, which handles importing the data file produced by outputsurf into Python. Contains plotting functions which require...
plot3D.py
Functions for plotting triangulations with matplotlib in Python. Despite the name, is only 2D at the moment. If you have a matplotlib >= 0.99, uncomment the imports and comment out the raise NotImplementedError to get 3D plotting.