Surface Evolver Newsletter no. 8

Back to top of Surface Evolver documentation.


                      Surface Evolver Newsletter Number 8
                              June 23, 1994

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

Contents:

X-geomview
Version 1.95 
Bibliography

X-geomview:

The Geometry Center has created an X-windows version of geomview, which
Evolver has long used as its display program on Silicon Graphics systems.
Beware, though, that X-geomview has to emulate all 3D graphics in software,
as X-windows is a 2D system.  Hence X-geomview is slower, and does not use
any built-in 3D graphics hardware a machine may have.  It is also still
under development, and may have a few bugs and porting problems.
X-geomview is available by anonymous ftp from geom.umn.edu in 
/pub/software/geomview.  There are precompiled binaries in 
geomview-next.tar and geomview-sun.x11-beta.tar.Z, and source in
geomview-src.x11-beta.tar.Z for other systems.

Version 1.95 is now available for ftp.  Still haven't been able to get
the Macintosh version updated since last summer.  Any desperate mac
users should let me know if I should spend time trying to do that.

Version 1.95 features:

The Tutorial chapter of the manual has two new examples: a toroidal
liquid ring on a spinning rod, and a column of liquid solder between
two offset pads.  The datafiles are ringblob.fe and column.fe.

Conjugate gradient option: A toggle command "ribiere" has been added
that makes the conjugate gradient method use the Polak-Ribiere version
instead of Fletcher-Reeves. (The toggle doesn't turn on conjugate gradient.)
Polak-Ribiere seems to recover much better from stalling.  If you have
to stop and restart conjugate gradient often, try "ribiere".  It handles
the catenoid example in the manual very well.  Pending further experience,
I will make Polak-Ribiere the default in future versions.  Let me know if
you have any problems with it.

Conjugate gradient blowups: Sometimes conjugate gradient wants to move
so far and fast that it loses contact with volume constraints.  Before,
Evolver did only one or two Newton method projections back to volume
constraints each iteration; now it will do up to 10.  Ordinary iteration
does only one projection still, but you can get the extra projections
with the "post_project" toggle.  If convergence fails after 10 iterations,
you will get a warning message, repeated iterations will stop, and the
variable "iteration_counter" will be negative.

Extra attributes: It is now possible to dynamically define extra attributes 
for elements, which may be single values or vectors.  The definition syntax is
 DEFINE elementtype ATTRIBUTE name REAL|INTEGER [dim]
where  elementtype is  vertex, edge, facet, or body,  name is an identifier 
of your choice, and  dim is an optional expression
for the vector dimension.  There is no practical distinction between real
and integer types at the moment, since everything is stored internally
as reals.  But there may be more datatypes added in the future. Examples:
  define edge attribute charlie real 
  define vertex attribute newx real[3] 
The same definition syntax works in the top section of the datafile as
well as from the command prompt.  Use in the same way as built-in 
attributes like color.  The named quantity method hooke2_energy uses
an extra attribute hooke_size as the equilibrium length for each
individual edge.

General quantities: Named quantities for basic geometric integrals
are now available that work in both the linear and quadratic model,
and in the hessian command for optimization.  The basic methods are:
vertex_scalar_integral: Function value at a vertex.
edge_tension or edge_length: Length of edge.
edge_scalar_integral: Integral of a scalar function over arclength.
edge_vector_integral: Integral of a vectorfield over an edge.
edge_general_integral: Integral of a scalar function of position and 
    tangent over an edge.
facet_tension or facet_area: Area of facet.
facet_scalar_integral: Integral of a scalar function over facet area.
facet_vector_integral: Integral of a vectorfield over a facet.
facet_general_integral: Integral of a scalar function of position and 
    normal vector over  a facet.
See the manual for a full list, and further details.

Quadratic model: More has been added for the quadratic model, in particular
various named quantity methods (see above).  Also the midv attribute for
an edge gets the midpoint of an edge in the quadratic model.  Beware that
some old-fashioned things don't work in quadratic model, since they will
be replaced eventually with the named quantity methods internally.
Prominent among these are string length (use edge_length quantity) and
volume in the torus model (use facet_volume quantity).   Further, the
edge midpoints are recorded in dump files as the third vertex for an
edge, so quadratic models can be reloaded.

PostScript labels: PostScript output now has an option to print element
numbers, for easy cross-referencing with datafiles.  Edge orientation is
indicated by the labels being slightly displaced toward the edge head,
and face labels are signed according to which side you are seeing.
By responding with 'i' or 'o' at the labels prompt, you can get either
current id numbers or original id numbers.

Square mean curvature: Some extreme shapes caused problems for effective_area
and normal_curvature versions of square mean curvature, in detecting a
coherent local orientation for a surface.  There is now an "assume_oriented"
toggle which lets Evolver assume facets are defined with consistent local
orientation, so it doesn't have to figure it out itself.

The size of PostScript output box has been corrected to 8x8 inches,
as was claimed in the PS file header.  Had been 7.6x7.6 inches.

Minneview removed:  Minneview, the precursor of geomview, has been
removed. The Makefile doesn't need -DNO_MV anymore.

The "quietgo" toggle will suppress normal output from the 'g' command.

New math functions: tanh, asinh, acosh, atanh.

New read-only variable: "iteration_counter" is the index of the 
current iteration loop (printed in the first column of 'g' output).

Named quantity methods for squared curvature: sq_mean_curvature,
  eff_area_sq_mean_curvature, normal_sq_mean_curvature.
  All work with prescribed curvature h_zero.

Under-relaxation: Optimizing scale iteration finds the energy minimum
in the direction of motion.  You can set the variable "scale_scale",
which multiplies the optimum scale factor to get the actual motion,
to explore the effects of under- or over-relaxation.  Under-relaxation
might be good for reducing short wavelength oscillations.


Bibliography.

S.J. Townsend and C.S. Nichols, "The Geometry of Grain Disappearance in Thin
Polycrystalline Films" to appear in volume 343 of the Materials Research
Society Symposium Proceedings Series, 1994.



Back to top of Surface Evolver documentation.