Surface Evolver Newsletter no. 22

Back to top of Surface Evolver documentation.

                         Surface Evolver Newsletter 22
                               August, 2013
                     by Ken Brakke, brakke@susqu.edu

Surface Evolver version 2.70 available is now available at
http://www.susqu.edu/brakke/evolver.

You should see Newsletter 21 for version 2.50 (June, 2012), which I think 
I forgot to send out, for a lot of nifty features.

Not a whole lot of new features in this version, mostly bug fixes,
but there are some of interest:

 String arrays
   Global arrays can have type "string" now (but not element array attributes).

 Window titles
   Added console_title string variable for user control of command window title.
   Very useful when simultaneously running several instances of the same
   datafile.  Likewise, there are graphics_title, graphics_title2, and 
   graphis_title3 for the main graphics window and the second and third
   graphics window.

 no_transform
   There is now a "no_transform" attribute for edges and faces to exempt them 
   from view transforms.  Useful for putting in a single set of coordinate
   axes that doesn't get transformed, etc.

 no_dump 
   Added "no_dump" attribute for global variables; syntax
      variablename.no_dump on
      variablename.no_dump off
   (from command prompt, not in top of datafile)
   This prevents variables from being included in the top part of a
   dump datafile; they are included in the bottom part instead.  The
   purpose is so that "addload" from a previous dump datafile does
   not overwrite key variables.

 constraint properties
   Added vertex attribute constraint[n].normal, to get the normal vector
   of a level-set constraint at a vertex, for example
     define cnormal real[3];
     cnormal = vertex[1].constraint[wallcon].normal;
   Also some ways to query the nature of a level-set constraint,
        is_constraint[n].fixed
        is_constraint[n].nonnegative
        is_constraint[n].nonpositive
   which return 1 if the property is true of constraint n.

 sq_torsion
   Added sq_torsion named method, for the integral of the squared
   torsion of a curve of edges.

 predicted memory usage
   For faster loading from big dump files, the top of the datafile can
   tell Evolver how much memory to initially allocate for various data
   structures with "predicted" numbers, for example
      vertices_predicted      2149
      edges_predicted         7941
      facets_predicted        5881
      facetedges_predicted   17641
      bodies_predicted          89
      quantities_predicted            0
      method_instances_predicted      0
   Also useful to prevent memory fragmentation when you know your surface
   is going to get large. 

 float128
   For high precision, Linux users can compile a float128 version of
   Evolver, which uses the quadmath library.  The LONGDOUBLE high-precision
   version of Evolver which has long existed turns out to only use 80 bit
   floats on Intel chips, even though it allocates 128 bits of memory.
   The float128 version gives 33 digit precision, but runs 10 times slower.

 force_edgeswap
   Added force_edgeswap toggle to override equiangulation prohibitios.
   Makes the "u" or "equiangulate" or "edgeswap" commands skip certain 
   tests and do the swap anyway.  The skipped tests are: (1) the two 
   vertices of the flipped edge are distinct, (2) creating two facets
   with the same vertices.  Meant only for rare cases when you really know
   what you are doing. 

End of Newsletter 22