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.