# 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