It has long been known that achieving accurate and efficient numerical solutions to PDE-based applications depends essentially on mesh quality. To improve the meshes generated as part of the TSTT project, we are developing a mesh quality improvement toolkit called MESQUITE. The primary aim of this project is to provide a freely available, comprehensive software package that would accommodate a number of different mesh element types, quality metrics, and state-of-the-art topology modification and node point movement algorithms. Although we designed MESQUITE from the ground up in FY02, this toolkit is based on the mesh quality improvement algorithms and software developed previously at SNL and ANL. At the end of the first year, MESQUITE development is well underway. We have assembled a team of five TSTT researchers including Michael Brewer (SNL), Lori Freitag (SNL), Thomas Leurent (ANL), Patrick Knupp (SNL), and Darryl Melander (SNL). A primary accomplishment in FY02 was the creation of the MESQUITE design; it is general purpose and easily extensible to support new research in mesh quality improvement. The use of classes such as MeshQualityMetric, ObjectiveFunction, VertexMover, and InstructionQueue help us achieve an object-oriented, flexible design. Embedded within the various classes are member functions where the computationally intensive calculations take place. These member functions avoid objects, use pointers, arrays, and other low-level data structures to ensure that the computations are as efficient as possible.
Based on this design we have written version 0.5 of MESQUITE in C++. This version implements the major MESQUITE classes, various metrics and objective function templates, and several numerical optimization methods. In particular, MESQUITE currently does mesh untangling, element shape improvement, and Laplacian smoothing on local mesh patches consisting of either triangular, tetrahedral, quadrilateral, or hexahedral unstructured meshes. The prototype has a number of state-of-the-art algorithms for optimization-based node point movement including steepest descent, conjugate gradient, and active set solvers. In addition, considerable attention was given to the development of a flat mesh data structure for the internal representation of unstructured mesh data that is both highly efficient and convenient. To obtain our mesh data from the application, we use the TSTT common mesh interface specification, and are currently working to support two tools that have completed implementation of the TSTT interface, namely AOMD (RPI) and MDB (SNL).