Using various quality measures to characterize tets as type: sliver, wedge,
cap or needle elements.
 
    
   
     
       | 
 | Equilateral 
 | Sliver - Characterize by small minimum dihedral 
angle and large maximum dihedral angle but not a large solid angle. 
 | Cap - Characterize by large maximum solid
angle. 
 | Needle - Characterize by small min/max edge 
length ratio but not small minimum dihedral angle. 
 | Wedge -Characterize by small minimum dihedral 
angle and small min/max edge length ratio 
 | 
     
       | 
 |   
 |   
 |   
 |   
 |   
 | 
     
       | Coordinates 
 | 0 0 00 1 1
 1 0 1
 1 1 0
 |  1  0  0.1-1  0  0.1
 0  1 -0.1
 0 -1 -0.1
 | 1   0   01   1   0
 0   0   0
 0.75 0.25 0.1
 |  .1 -.1  0.1  .1  0
 -.1   0  0
 0   0  1
 |  1   0    0-1   0    0
 0   1    0.1
 0   1   -0.1
 | 
     
       | Aspect Ratio 
 | 1.0 
 | 0.2927E+00 
 | 0.7448E-01 
 | 0.3429E+00 
 | 0.2617E+00 
 | 
     
       | Min Dihedral Angle 
 | 7.05288E+01 
 | 1.59424E+01 
 | 1.57932E+01 
 | 5.33585E+01 
 | 1.14212E+01 
 | 
     
       | Max Dihedral Angle 
 | 7.05288E+01 
 | 1.57380E+02 
 | 1.49550E+02 
 | 8.74394E+01 
 | 90.0 
 | 
     
       | Min Solid Angle 
 | 3.15863E+01 
 | 9.26487E+00 
 | 2.87535E+00 
 | 1.13741E+00 
 | 3.35189E+00 
 | 
     
       | Max Solid Angle 
 | 3.15863E+01 
 | 9.26487E+00 
 | 2.60111E+02 
 | 5.56182E+01 
 | 8.19307E+01 
 | 
     
       | Min/Max Edge Length Ratio 
 | 1.0 
 | 7.14143E-01 
 | 2.59808E-01 
 | 1.98030E-01 
 | 0.1 
 | 
   
   
 
 
 Example: LaGriT input file to identify sliver, cap, needle and wedge type 
elements.
 
 
*--* ex_id_tet_types
*--* Header Begin
*--* LAGriT Example Identify Sliver, Cap, Needle, Wedge
* Carl Gable
* gable -at- lanl -dot- gov
*
*
*--* Create a random point distribution
*--* Connect them into a tet mesh
*--*
*--*----------------------------------------------------
*--* Header End
*--* ex_id_tet_types
*--*
cmo / create / cmo1 / / / tet
surface / outer / reflect / box / 0,0,0 / 1,1,1
region / r1 /  le outer  /
mregion / m1 /  le outer  /
createpts / random / xyz / 0.1 / 0,0,0 / 1,1,1
setpts
connect
dump / gmv / output_tets.gmv
*
* Compute the various tet quality measures
*
* Minimum Dihedral Angle, (degree)
cmo / addatt / cmo1 / ang_mind / ang_mind
* Minimum Dihedral Angle, (radian)
cmo / addatt / cmo1 / ang_minr / ang_minr
* Maximum Dihedral Angle, (degree)
cmo / addatt / cmo1 / ang_maxd / ang_maxd
* Maximum Dihedral Angle, (radian)
cmo / addatt / cmo1 / ang_maxr / ang_maxr
* Minimum Solid Angle, (degree)
cmo / addatt / cmo1 / ang_mind_solid / s_mind
* Minimum Solid Angle, (radian)
cmo / addatt / cmo1 / ang_minr_solid / s_minr
* Maximum Solid Angle, (degree)
cmo / addatt / cmo1 / ang_maxd_solid / s_maxd
* Maximum Solid Angle, (radian)
cmo / addatt / cmo1 / ang_maxr_solid / s_maxr
* Aspect Ratio
quality / aspect / y
* ( minimum edge lenght ) / ( maximum edge length )
quality / edge_ratio / y
* Edge lenght minimum
quality / edge_min / y
* Edge length maximum
quality / edge_max / y
*
* Identify Slivers
*
* Define adjustable parameters to determine cut-off values.
*
define / MIN_DIHEDRAL  /  10.0
define / MAX_DIHEDRAL  / 170.0
define / MAX_SOLID_ANG_BIG / 170.0
define / MAX_SOLID_ANG_SMALL / 10.0
define / EDGE_RATIO    /   0.1
*
eltset / e_dih_small / ang_mind / le / MIN_DIHEDRAL
eltset / e_dih_big   / ang_maxd / ge / MAX_DIHEDRAL
eltset / e_solid_big / s_maxd   / le / MAX_SOLID_ANG_SMALL
eltset / e_tmp       / inter / e_dih_small e_dih_big
eltset / e_sliver    / inter / &
         e_tmp e_solid_big
*
* Identify Cap elements
*
eltset / e_cap / s_maxd / ge / MAX_SOLID_ANG_BIG
*
* Identify Needle elements
*
eltset / e_edge_ratio / eratio   / le / EDGE_RATIO
eltset / e_dih_small  / ang_mind / le / MIN_DIHEDRAL
eltset / e_needle / not / e_edge_ratio e_dih_small
*
* Identify Wedge elements
*
eltset / e_wedge / inter / e_edge_ratio e_dih_small
*
* Set up some attributes to tag the elements.
*
cmo/addatt/cmo1/if_sliv/vint/scalar/nelements/-def-/-def-/-def-/1
cmo/addatt/cmo1/if_cap/vint/scalar/nelements/-def-/-def-/-def-/1
cmo/addatt/cmo1/if_ned/vint/scalar/nelements/-def-/-def-/-def-/1
cmo/addatt/cmo1/if_wed/vint/scalar/nelements/-def-/-def-/-def-/1
cmo/setatt/cmo1/if_sliv/eltset get e_sliver/ 2
cmo/setatt/cmo1/if_cap /eltset get e_cap   / 2
cmo/setatt/cmo1/if_ned /eltset get e_needle/ 2
cmo/setatt/cmo1/if_wed /eltset get e_wedge / 2
dump / gmv / tet_types.gmv / cmo1
* begin compare here
cmo / status
cmo / printatt /  / -all- / minmax
quality
finish
 
   
     
       | Tetrahedral mesh 
 | Tet Mesh, Sliver Elements 
 | Tet Mesh, Cap Elements 
 | Tet Mesh, Needle Elements 
 | Tet Mesh, Wedge Elements 
 | 
     
       |   
 |   
 |   
 |   
 |   
 |