CGM

CGM: A geometry interface for mesh generation, analysis and other applications. Geometry modeling has recently emerged as a commodity capability. Several geometry modeling engines are available which provide largely the same capability, and most high-end CAD systems provide access to their geometry through APIs. However, subtle differences exist between these modelers, both at the syntax level and in the underlying topological models. A modeler-independent interface to geometry bridges these differences, allowing applications to be developed in a true modeler-independent manner. The Common Geometry Module, or CGM, provides such an interface to geometry. At the most basic level, CGM translates geometry function calls to access geometry in its native format. To smooth over topological differences between modelers, and to allow modeler-independent modification of topology, CGM maintains its own topology datastructure. CGM also provides functionality not found in most modelers, like support for non-manifold topology, and alternative representations, including facet-based and `virtual’ geometry. CGM is designed to be extensible, allowing applications to derive application-specific capabilities from topological entities defined in CGM. The CUBIT Mesh Generation Toolkit has been modified to work directly with CGM. CGM is also designed to simplify the implementation of other solid model-based or alternative representations of geometry. Ports to Solid Works and Pro/Engineer are underway. CGM is also being used as the foundation for parallel mesh generation, and is being used for geometry support in several advanced finite element analysis codes.