PUMI GEOM is a geometric model interface that supports the ability to interrogate solid models for topological adjacency and geometric shape information.
The computer modeling of a physical problem can be seen as a series of idealizations, each of which introduces errors into the solution as compared to the solution of the initial problem. Since these idealizations are introduced to make solving the problem tractable (due to constraints on either problem size and/or solution time), it is necessary to understand their effect on the solution obtained and to have procedures to reduce the errors to an acceptable level with respect to the reason the analysis is being performed. Understanding of the effects of idealizations requires a more complete definition of the problem than is typically used in the numerical analysis procedures. In particular it is necessary to have a complete geometric description of the original domain and have the rest of the problem information defined in terms of that geometry.
The geometric model representation used by GMI is a boundary representation based on the Radial Edge Data Structure. In this representation the model is a hierarchy of topological entities called regions, shells, faces, loops, edges and vertices. This representation is general and is capable of representing non-manifold models that are common in engineering analyses. The use of a boundary representation is convenient for the association of problem attributes (e.g., loads, material properties and boundary conditions) and mesh generation control information since the entities defining the model are explicitly represented. The classes used to represent the geometric model support operations to find the various model entities that make up a model and to find which model entities are adjacent to a given entity. Other operations relating to performing geometric queries are also supported. The details of these operations are not important in the current context. Much more important is the fact that there are associations between the ModelEntity class and both the Attribute and MeshEntity classes.
In addition to geometry, the definition of a mathematical problem requires other information that describes such things as material properties, loads and boundary conditions. This information is described in terms of tensor valued attributes that may vary in both space and time. Attribute information is organized into a directed acyclic graph (DAG). There are three basic types of nodes in the graph. The leaf nodes of the graph are information nodes. These nodes hold the actual attribute information (e.g. an information node might define a vector with a certain variation in space and time). Above the information nodes are two types of grouping nodes. The first of these is called a group which is simply used to represent the grouping of information nodes. The other grouping node is called a case. The case node has important semantics, it represents a point in the graph where all the information below it makes a meaningful whole with respect to some operation. Tensor valued attributes are only meaningful when applied to a geometric model entity. The process of applying attributes to a geometric model is called association. During this process the graph is traversed, starting from a case node, and when the information nodes are encountered at the leaves of the graph, attribute objects are created. These attributes (represented by the Attribute class) are a particular instance of the information represented in the attribute graph. One reason for the distinction between the information nodes and attributes is that the interpretation of the information node can depend on the path in the graph traversed to get to that node. Thus one information node may give rise to multiple attributes with different values.
All domain discretizations must provide the functionality of expressing the domain (be it space, or space and time) in terms of entities of the appropriate type for the analysis. No matter what the type of domain discretization there is certain information that must be able to be obtained: the entities that make up the discretization, their relation to the original geometric description of the domain, and their neighboring entities.
At this point the majority of work that has been done is finite element based, thus the most developed domain discretization is that of a mesh. A hierarchy of regions, faces, edges and vertices, similar to that used for a geometric model, makes up the mesh. In addition, each mesh entity maintains a relation, called the classification of the mesh entity, to the model entity that it was created to partially represent. The inverse of this relation, the mesh entities classified on a model entity, can also be retrieved. This representation of the mesh is very useful for mesh adaptivity, since with this information, as the mesh is refined its approximation to the domain of the geometric model is improved. Knowing the relation between the mesh and the geometric model allows an understanding of how the solution relates back to the original problem description as well as how the original problem relates to the mesh, e.g. what mesh entities a boundary condition applies to.