Upgrades to QMG 1.1 and incompatibilities
The major upgrades to QMG 1.1, compared to QMG 1.0, are:
Some less major upgrades include:
QMG 1.1 can generate surface meshes as well as area and volume
meshes. See the mesh generation documentation.
QMG 1.1 supports some simplified data formats.
See the documentation on external interfaces.
The source code has been rewritten in a cleaner object-oriented fashion.
The quadtree/octree mesh generation
algorithms have been redesigned for better efficiency and memory
use. For instance, mesh generation results
for test case test5 running on a Sun Sparcstation
are in the following table. The same size upper bound (0.4)
was used. Note that
QMG1.1 improves on QMG1.0 in all measures of performance.
(This table uses the nonstandard
"table" HTML extension so your browser may have trouble with it.)
|Version || Running time || Worst aspect ratio
|| Number of tets|
|QMG 1.0 || 20 min ||1122||20167
|QMG 1.1 ||3.5 min || 270|| 11540
QMG 1.1 now runs under the Microsoft Windows NT operating system
as well as Unix. See the installation
QMG 1.1 now allows Tcl/Tk as a scripting language, as well as
QMG now renders its 3D graphics in VRML format.
See the gmviz and
QMG 1.1 is not upward compatible with QMG 1.0. Here are some
Breps and their faces may now be infinite.
Faces of breps are now tagged with points inside the brep to allow
the handling of infinite breps.
Internal boundaries of a face can be of any face of lower dimension.
Tolerances on geometric routines were formerly predefined
constants, but in QMG1.1 they are exposed to the user in
all routines where they occur.
The API has been expanded with many new routines. See
the reference manual.
Size functions are handled somewhat differently in QMG1.1. However,
any size function for QMG1.0 written in Matlab or Tcl should also
work in QMG1.1.
The Ascii format in QMG1.1 is not compatible with the Ascii format
in QMG1.0. However, there is a conversion
routine to read a brep or simplicial complex in
Simplices in QMG1.1 are now
oriented. If you read in a
non-oriented simplicial complex (for instance, a simplicial complex
generated by QMG1.0), then you should turn off the "checko" option
The set boolean operators behave differently.
A major difference is that the cleanup of internal boundaries no longer
takes place automatically and must be done with a call to
There are subtle differences
in the way intersections involving degeneracies are processed.
Colors are handled differently in QMG1.1. Colors are now
4-tuples of numbers, with the fourth
entry standing for opacity.
Some routines, such as gmmeshgen, have new calling sequences.
The unix standalone routines have a different calling sequence
because of the changes to the mesh generator.
The routine gmpolygon now returns polygons inscribed in the unit
circle rather than polygons circumscribing it.
Matlab QMG now uses environment variables QMG_ROOT and
QMG_DATA in conjunction with
startup.m to set its path. In QMG 1.0 the path was
set using the environment
This documentation is written by Stephen A. Vavasis and is
copyright (c) 1996 by Cornell University.
Permission to reproduce this documentation is granted provided this
notice remains attached. There is no warranty of any kind on
this software or its documentation. See the accompanying file
for a full statement of the copyright.
Back to the QMG 1.1 home page.
Stephen A. Vavasis, Computer Science Department, Cornell University,
Ithaca, NY 14853, firstname.lastname@example.org