- Isotropic mesh adaption. The biggest user-visible change
since the previous release is support for isotropic mesh adaptation.
Internally, GRUMMP has had this functionality for a while, but by
user request, it's now accessible through the command line interface.
Basically, length scale information can be supplied for some or all
vertices in a separate file, and meshopt2d / meshopt3d will modify
the input mesh to match that length scale. If no length scale is provided,
meshopt2d/3d behave as they always have.
- Length scale improvements. Fixed a problem with length scale
calculations that sometimes caused a vertex to identify a bdry patch
that was just -behind- the vertex (and therefore not visible) as one
of its nearby patches. The 3D tire incinerator example was the geometry
that showed this problem the most distinctly.
- Improved initial tetrahedralization. More incremental improvement
to initial tetrahedralization, most notably in merging co-planar input
facets and better handling of small angles between input edges. The
latter also has the effect of reducing output mesh size noticeably
for many input files with small angles between edges.
- Added support for merging co-planar boundary patches in 3D. For input
files that have large numbers of co-planar triangles, this boundary
optimization can be a tremendous help in creating the initial volume
mesh. All vertices are guaranteed to be in the volume mesh, but there
are no guarantees about the surface triangles. (Command line option:
-m for merge bdry patches.)
- Fixed a bug in handling surface recovery for multi-region bdry files
in 3D. This bug often resulted in failures near the end of initial
- Support for free vertices in input files for 3D meshes. That is, a
vertex can be pre-defined to have a particular location -without-
being connected to the surface mesh. (The point must lie on or inside
the domain, obviously.) Because of differences in the way that 2D
and 3D input is handled, this capability is tricky to implement in
2D. However, a currently-underway re-write of all boundary input handling
should enable this in 2D before much longer.
- Reordering of mesh entities before output to improve bandwidth
and cache performance for solvers reading these meshes. Vertices are
reordered using the reverse Cuthill-McKee algorithm. Faces and cells
are reordered according to the sum of the indices of their vertices.
- Support for long arcs: circular arcs longer than 180 degrees.
An arc is still CCW and < 180 degrees.
A longarc is CCW and > 180 degrees between
the same two points.
- Fixed a minor edge swapping bug that often resulted in a
neglecting a few swaps.
- Internal changes to support the Terascale Simulation Tools
and Technologies (TSTT) mesh interface. This is a language- and data-structure
neutral interface to meshing tools. For more information, including
links to the TSTT interface definition, see http://www.tstt-scidac.org.
- Fixed a GNU/Linux shared library creation bug. Added support for shared
libraries under AIX (finally!).
- Made changes for GCC 3.x compatibility (mostly tightening up use of
std::) and to improve portability (mostly getting rid of uses of the
GNU extension that allows dynamic arrays to be declared as name[run-time
- Removed some experimental and obsolete files from the distribution.