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.