5.5 Mesh Quality Assessment
Quality Describe {Hex  Hexahedral  Tet  Tetrahedral  Face  Quad  Quadrilateral  Tri  Triangular}
5.5.1 Automatic Mesh Quality Assessment
Cubit performs an automatic calculation of mesh quality which warns users when a particular meshing scheme or other meshing operation has created a mesh whose quality may be inadequate. These warnings are supplied in case the user forgets to manually check the mesh quality.
Cubit automatically calculates the SHEAR quality of hexahedral and quadrilateral elements and the SHAPE quality of tetrahedral and triangular elements. The SHEAR metric measures element skew and ranges between zero and one with a value of zero signifying a nonconvex element, and a value of one being a perfect, rightangled element. The SHAPE metric also ranges between zero and one with a value of zero signifying a degenerate or inverted element and a value of one signifying a perfect, equilateral element. The quality of the mesh is then defined to be the minimum value of the shear metric for hexahedral and quadrilateral elements and the shape metric for tetrahedral and triangular elements, with the minimum taken over the elements in the mesh.
Set Quality Threshold <double=0.2>
Set Print Quality { WARNINGErrorOff }
5.5.2 Coincident Node Check
The ability to check for coincident nodes in the model is available in Cubit. It uses an efficient octal hash tree to make the comparisons.
To check for coincident nodes
On the Command Panel, click on Mesh.
Click on Volume, Surface, Curve, Vertex or Group.
Click on the Quality action button.
Select Coincidence Check from the dropdown menu.
Select Coincident Nodes from the Type of Coincidence Check menu.
Enter the appropriate settings.
Click Apply.
Quality Check Coincident Node [ In ] [GroupBodyVolumeSurfaceCurveVertex <id_range> ] [ Merge [Delete] ] [ HIGHLIGHTDraw [color <number>]] [List] [Into Group [namesid] ]
If the model being operated on is from an imported universal file (i.e., no geometry exists in the model), you can merge the coincident nodes with the merge option. In this case delete allows you to delete the extra nodes (recommended). If you do not delete them they are placed into an output group.
set Node Coincident Tolerance [<value>]
5.5.3 Controlling Mesh Quality
If the quality of a model after meshing isn’t acceptable, there are two options available to improve that quality. The user can ask for more smoothing, or delete the mesh and start over. There are some commands that the user can invoke before meshing the model which can help to improve mesh quality. Some of them are discussed here.
5.5.3.1 Skew Control
The philosophy behind the skew control algorithm is one of subdividing surfaces into blocky, foursided areas which can be easily mapped. The goal of this subdivideandconquer routine is to lessen the skew that a mesh exhibits on submapped regions. By controlling the skew on these surfaces, the mesh of the underlying volume will also demonstrate less skew.
To control skew or delete skew control
On the Command Panel, click on Mesh and then Surface.
Click on the Control Skew action button.
Select Control Skew or Delete Control Skew from the dropdown menu.
Enter the appropriate value for Surface ID(s). This can also be done using the Pick Widget function.
Click Apply.
Control Skew Surface <surface_id_range> [Individual]
Delete Skew Control Surface {surface_list} [Propagate]
The user also has the ability to delete the changes that the skew control algorithm has made. This is done by using the delete skew control command.
When the user requests the deletion of the skew control changes on a given surface, every curve on that surface will have the skew control changes deleted, even if a given curve is shared with another surface on which skew control was performed. If the user wishes to propagate the deletion of skew control to all surfaces which are affected by one (or more) particular surfaces, the keyword propagate should be used.
5.5.3.2 Propagate Curve Bias
When a bias mesh scheme is applied to a curve, this sometimes creates skewing of the surface mesh that is attached. Sometimes the user will want to ensure that the same bias is applied to curves on attached surfaces so that this skewing is minimized.
To propagate curve bias
On the Command Panel, click on Mesh and then Curve.
Click on the Mesh action button.
Enter the appropriate value for Select Curves. This can also be done using the Pick Widget function.
Select Bias from the first dropdown menu.
Select Propagate Curve Bias from the second dropdown menu.
Select Volume, Surface or Group from the third dropdown menu and enter the appropriate settings.
Click Apply and then Mesh.
Propagate Curve Bias [SurfaceVolumeBodyGroup <id_list>]
5.5.3.3 Adjust Boundary
To adjust a boundary
On the Command Panel, click on Mesh and then Surface.
Click on the Adjust Boundaries action button.
Enter the appropriate value for Surface ID(s). This can also be done using the Pick Widget function.
Enter the appropriate value for Angle.
Click Apply.
Adjust Boundary {SurfaceGroup} <id_range> [Angle <double>]
5.5.4 Metrics for Edge Elements
The metrics used for edge elements in Cubit are summarized in the following table:








5.5.4.1 Quality Metric Definitions:
Length: Distance between beginning and ending nodes of an edge
5.5.4.2 Comments on Algebraic Quality Measures
The quality command for edge length only accepts edge elements as input; it does not accept geometry as input.
The length metric is currently only available for edge elements. Edge elements are created by default when curves and surfaces are meshed. Edge elements are not created for interior volume elements.
5.5.5 Finding Intersecting Mesh
Find Mesh Intersection {BlockBodySurfaceVolume} <id_list> [with {BlockBodySurfaceVolume} <id_list>] [low <value=0.0001>] [high <value>] [exhaustive] [worst <num_worst>] [draw] [log] [group<’name’>]
5.5.5.1 Finding Intersecting 2D Mesh
5.5.5.2 Facetted Representation
Detecting mesh intersections between surfaces works entirely off of the mesh, converting the mesh into triangular facets. (The facetted representation is what you see in a shaded view in the graphics). For example, a quad is split into two triangles. Higher order 2D elements are split into multiple triangles.
5.5.5.3 Drawing Mesh Intersection
Draw Surface <id> <id> mesh intersection [add] [include_volume]
5.5.5.4 Finding Intersecting 3D Mesh
With 3dimensional entities mesh element intersections can be located by specifying entities: blocks, bodies, or volumes. If intersections are found the intersecting elements are put into a group named ’mesh_intersect’ unless the user has specified another name using the group <’name’> option. Data is printed to the terminal detailing the intersections. The largest intersection value is reported for each pair of intersecting entities (blocks, volumes, or bodies). This value is the fraction of an element’s volume (which element belongs to the entity in the first column) that intersects elements belonging to the entity in the second column. See Figure 356 below. The information printed in columns from left to right is:
the entities that have intersecting mesh
the other entities with which that entity’s mesh intersects
the highest intersection value of an element belonging to the entity in column one
the id of that element
the number of elements of the entity in column one intersecting other elements of the entity in column two
The low and high options set how much cumulative intersection should be detected. A low value of 0.1 would ignore elements that do not intersect more than 10% of their volume. Similarly, a high value of 0.5 would discard elements that intersect more than 50% of their volume. Both low and high can be used simultaneously. The default for the low value is 0.0001
The exhaustive option examines all elements for intersection. The default is to only examine elements with nodes on the boundary of the specified entities, anticipating that the intersections will occur mostly at boundaries.
The worst parameter limits the printout to the ’n’ worst entities with elements of the highest intersections. The intersection fraction reported here is the cumulative intersection an element has with elements of all other entities in the check.
The draw option draws the intersecting elements using a color spectrum, red corresponding to high intersection and green to low. The color is according to cumulative intersection, as described in the worst option.
If the log option is specified, the output from the command will also be sent to a file named "mesh_intersection01.txt", with the number used in the file name incremented as needed. This becomes useful when you have hundreds of volumes with intersections.
Note:
The shape of higherorder mesh elements is considered when computing intersection.
3D mesh intersection detection works on free mesh, as long as it has been placed into blocks.
An intersection fraction greater than 100% is possible, when multiple elements in different entities intersect an element by more than its volume
5.5.6 Metrics for Hexahedral Elements
The metrics used for hexahedral elements in CUBIT are summarized in the following table:










































































































































































5.5.6.1 Hexahedral Quality Definitions
With a few exceptions, as noted below, Cubit supports quality metric calculations for linear hexahedral elements only. When calculating quality metrics, that only support linear elements, for a higher order hexahedral element, Cubit will only use the corner nodes of the element.
aspect ratio: Maximum edge length ratios at hex center.
skew: Maximum cos A where A is the angle between edges at hex center.
taper: Maximum ratio of lengths derived from opposite edges.
element volume: For linear hexes, the jacobian at hex center. For higherorder hexes, the hex is subdivided into subtets, the volumes of which are summed.
stretch: Sqrt(3) * minimum edge length / maximum diagonal length.
diagonal ratio: Minimum diagonal length / maximum diagonal length.
dimension: Prontospecific characteristic length for stable timestep calculation. Char_length = Volume / 2 grad Volume.
condition no. Maximum condition number of the Jacobian matrix at 8 corners.
jacobian: Minimum pointwise volume of local map at 8 corners at center of hex. Cubit also supports Jacobian calculations for hex27 elements.
scaled jacobian: For linear elements the minimum Jacobian divided by the lengths of the 3 edge vectors.
shear: 3/Mean Ratio of Jacobian Skew Matrix
shape: 3/Mean Ratio of weighted Jacobian Matrix
relative size: Min(J, 1/J), where J is the determinant of weighted Jacobian matrix
shear & size: Product of Shear and Size Metrics
shape & size: Product of Shape and Size Metrics
timestep: The approximate maximum timestep that can be used with this element in explicit transient dynamics analysis. This critical timestep is a function of both element geometry and material properties. To compute this metric on hexes, the hexes must be contained in a element block that has a material associated to it, where the material has poisson’s ratio, elastic modulus, and density defined.
distortion: {min(J)/actual volume}*parent volume, parent volume = 8 for hex. Cubit also supports Distortion calculations for hex20 elements.
mass increase ratio: This metric stems from the global target time step and the element time step. The density required to fulfill the target time step (via mass scaling) divided by the block density is termed the mass increase ratio. Because the density within each element is constant, a ratio in the element density is equivalent to a ratio in the element mass. This metric calculates the requisite density for each element to attain the prescribed target time step. If that density is greater than the defined density, the metric yields a value greater than one. This desired global time step is set by the user with the command:
[Set] Target Timestep <value>
As stated, this metric computes the element based timestep metric and consequently element blocks must be defined with material properties of Young’s modulus, Poisson’s ratio, and a target timestep must be set. If this metric is computed in the context of a block (’quality block 1 mass increase ratio’) an accompanying printout of the mass increase per block is given.
5.5.6.2 References for Hexahedral Quality Measures
FIMESH code
Unknown
P. Knupp, Algebraic Mesh Quality Metrics for Unstructured
Initial Meshes, to appear in Finite Elements for Design
and Analysis.Flanagan, D.P. and Belytschko, T., 1984, "Eigenvalues and Stable Time Steps for the Uniform Hexahedron and Quadrilateral," Journal of Applied Mechanics, Vol. 51, pp.3540.
SDRC/IDEAS Simulation: Finite Element Modeling  User’s Guide
5.5.7 Mesh Quality Example Output
Figure 2. Histogram output from command "Quality Surface 24 Draw Histogram"
Figure 360: Graphical output of quality metric for command "Quality Surface 24 Skew Draw Mesh"