Surface Evolver Newsletter no. 17

Back to top of Surface Evolver documentation.

                         Surface Evolver Newsletter 17
                              August 20, 2003

                     by Ken Brakke, brakke@susqu.edu


  Surface Evolver version 2.20 is now available at
  http://www.susqu.edu/facstaff/b/brakke/evolver/evolver.htm.
  This is the first full official new version release since
  version 2.14 in 1999.

  Since there have been various modifications and tweaks of internal
  algorithms, it would be wise to test the new version on your existing
  datafiles before trusting it fully.  Please let me know of any
  significant anomalies.


New features and changes:

  There are Macintosh versions for Mac OS 9 and Mac OSX.
  This will be the last Mac OS 9 version unless I hear demand from users. 

  Variables and element extra attributes can be multi-dimensional
  arrays.  The "print" command can print whole arrays or slices of arrays.

  Functions with arguments and return values and procedures with arguments
  have been added.

  A variable name can be declared local in a command block to restrict
  its scope to the block.  Prevents global namespace pollution. 
  
  Variables and procedures can be made "permanent" and survive loading
  of the next datafile.

  There is a simple man page for unix systems, evolver.1, which just
  describes the command line options.
 
  All versions can use OpenGL/GLUT graphics.  Can have a pull-down
  menu of graphics window commands, and multiple graphics windows with
  different camera angles.

  The "exec" command will interpret and execute a text string of Evolver
  commands.  Good for generating commands within a script.

  There is a FOR loop construct much like in C, but not quite the same.
  Example: for ( {inx:=1;rsum:=0;} ; inx < 10 ; inx += 1 ) rsum += inx^2;

  Warning messages generated early in loading a datafile can scroll off
  the screen, so if there were messages, a meesage is printed after
  loading is complete, and the user can reprint the messages with
  "print warning_messages".

  Wild cards are permitted in filenames both on the command line and in
  response to various Evolver prompts.  But be very cautious you do not
  get unexpected matches.  Useful when files have horribly long
  descriptive names and you get tired of typing them in.

  Constraints and boundaries can be designated by name as well as number,
  i.e. "constraint topwall" instead of "constraint 1". 

  "errprintf" command is like "printf" except it sends output to stderr; good
  for console output in scripts where standard output is being redirected
  to a file.
  
  "sparse_constraints" toggles a mode of projecting to constraints that
  takes advantage of sparsity in constraints.  Makes it practicable to
  do 100,000 bodies and more in reasonable time.  Default on.

  "augmented_hessian" toggles a mode of solving Hessian equations
  that takes advantage of sparsity in constraints.  You can now do
  hessian commands with 100,000 bodies and more in reasonable time.
  Default on.

  For fine control of facet colors, the simple color numbers are overridden if 
  the extra attribute frgb is defined: "define facet attribute frgb real[3]".
  Color component values should be in the range 0 to 1.

  The "pop" command can pop selected sets of vertices or edges.  Gives more
  control than the universal "o" and "O" popping commands.

  Special popping commands pop_edge_to_tri, pop_tri_to_edge, pop_quad_to_quad
  do topological changes common in foam evolution.

  Command sequences can be executed at the start of expressions by
  putting the commands in backquotes, followed by a comma.  Useful in
  constraint and boundary formulas and integrands.

  The width of individual edges in PostScript output can be controlled
  by defining the edge extra attribute ps_linewidth.

  The "equiangulate" command applies the equiangulation test and edge
  swap to selected edges, as opposed to the universal "u" command, or
  the non-testing "edgeswap" command.

  If you define it, a h_zero vertex attribute takes precedence over
  the global variable h_zero in various squared mean curvature calculations.

  Deleting edges and facets favors keeping triple edges (and higher
  valence edges) where there is a choice.

  The default length, area, and volume definitions can be substituted for
  by other named methods.  See length_method_name, area_method_name, 
  and volume_method_name in the documentation.


Back to top of Surface Evolver documentation.