# Surface Evolver Newsletter no. 12

Back to top of Surface Evolver documentation.

                        Surface Evolver Newsletter Number 12
                                  July 19, 1995

                       Editor: Ken Brakke, brakke@geom.umn.edu

    Contents
      Version 1.99 ready
      New features

    Version 1.99 ready.
      Surface Evolver version 1.99 is now available from geom.umn.edu
      in /pub/software/evolver/evolver.tar.Z.  There are also new DOS and
      Mac versions.  The DOS version is in evolver.zip.
      The Mac version is in Evolver.sea.Hqx.  This was compiled for
      use with a math coprocessor and will not run on a Power Mac.
      There is a non-coprocessor version in Evolver.no68881.sea.Hqx
      which will run on the Power Mac I have access to, although it has
      been reported to crash others. Any ambitious volunteers to figure
      this out will be welcomed.

      For those of you into Hessians and eigenvalues, there is a little
      tutorial in eigentut.txt.  This is a plain text file, about 10 pages.

    New features.

      Storage used by element structures has been cut down by only
      allocating storage for features actually used.

      The limit on the number of constraints has been raised to 128,
      and can easily go much higher if somebody needs it.

      Body "volume" technically should be a read-only value, the
      actual computed volume.  "target" should be used for setting
      the volume constraint, as in "set body[1] target 2.34",
      although "set body[1] volume 2.34" will still work, although
      with a warning.

      "volconst" has been added as a read-write body attribute.
      This is a constant added to the calculated volume.  Also
      applies to named quantities.

      The command "convert_to_quantities" will do an automatic
      conversion of old-style energies to new-style named quantities.
      This has the same effect as the -q command line option, but
      can be done from the Evolver command prompt.  Useful when
      "hessian" complains about not being able to do a type of energy.
      A few energies don't convert yet.  It is my intention that
      this will be the default in the near future, probably in
      version 2.00.

      "edgeswap" command will force an equiangulation-type switch
      on designated edges, as in "edgeswap edge[23]" or
      "edgeswap edge where color == red".  "edgeswap edge" will
      swap all edges, if you like to see weird surfaces.

      A "variable_parameter" is a parameter whose value will be varied
      during optimization.  Just use "variable_parameter" instead of
      "parameter" in the top of the datafile.  Be aware that energy
      derivatives with respect to variable parameters are done
      numerically, not symbolically.  Won't work with Hessian yet.

      For the torus mode, torus translations have been automatically
      added as view_transform_generators after any appearing in the
      datafile.  So multiple copies of the fundamental domain can
      been seen with
          transform_expr "abc"

      Command P can now take a number after it, so "P 8" starts geomview
      without having to bring up the "P" menu.

      "saddle" and "hessian_seek" commands takes maximum stepsize,
      e.g. "saddle 0.5".

      "move" command will continue in direction of previous motion,
      whether from gradient or hessian.  Takes stepsize, e.g. "move 0.5".
      Negative move is not a perfect undo.

      Toggles print previous value along with new value.

      Can now make saddle or hessian_seek minimize squared gradient
      instead of energy.  Use hessian_menu toggle G.

      There is now a "bottominfo" command that prints out the bottom
      part of a dumpfile.  Useful for generating new datafiles from old.

      You can redefine single-letter commands with " x :::= command".
      Restore with "x :::= ".  Redefs undone at start of surface.
      Redef not retroactive to single letter commands used in
      definition of commands. Letter redefed at execution, not parsing.
      Redefed letter used in command will revert to standard meaning
      when letter unredefed. Meant for analogous replacements,
      like special r.  "r :::= { hooke_length := hooke_length/2; r}"
      will work right first time, but not second. Use single quotes
      around letter to get old meaning, i.e. 'r'.
      Should only use to disable commands.

      hessian_menu has option Z to do subspace iteration for multiple
      eigenvectors (same as "ritz" command), and you can pick
      eigenvectors for motion with option X.

      Read-only variable "last_eigenvalue" stores eigenvalue found
      in saddle command, or first eigenvalue found by ritz.
      Read-only variable "last_hessian_scale" stores stepsize used
      by most recent saddle or hessian_seek command.

      Compilation option -DSDIM=3 will hard-wire space dimension 3 into
      the code, permitting more compiler optimization.  But such
      an Evolver cannot handle any other space dimension.

      The eigenprobe command has an alternate form, eigenprobe(value,iters),
      that will do shifted inverse power iteration to find the eigenvalue
      nearest the given value. iters is the limit on the number of iterations.
      The eigenvalue is stored in last_eigenvalue, and the eigenvector
      can be used via the "move" command.

Back to top of Surface Evolver documentation.