Mesh generation - survey

By Albert Hines.


COMPARISON OF FINITE ELEMENT MESHING SOFTWARE PACKAGES

This document reflects the best information that I can gather to date on the 
most recent versions of some popular meshers as of 2-10-99. Other programs 
exist and may be better or worse than those listed here. These scores reflect 
only my experience with a few commercial packages. They are not exhaustive in 
any respect. But, they are the result of careful and expensive investigation. 

These meshes were used for heat transfer and fluid flow predominantly, NOT 
STRESS ANALYSIS. The desired analysis is the crucial factor in determining 
whether or not a particular meshing package will achieve the mesh quality and 
refinement required for a simulation. (e.g. mesh quality is almost a non-issue 
for heat transfer, but not for stress) The geometries that I have considered 
are aerospace turbine engine components: double curved, hollow, thin walled, 
3-D structures. Bulky, constant thickness, or spindly geometries will behave 
differently, e.g. engine blocks, pressure vessels, oil rigs ... 

I have attempted to be a bit more objective here than with previous releases. 
I use whenever possible, actual data in place of my "feelings". These data are 
obtained using CLOSE TO DEFAULT meshing parameters. By "close to default" I 
mean that some values must be specified. Also default values may not give a 
comparable result (e.g. FEMAP's default is 1.5x ratio on tetra size increase
from the surface. This produces WAY fewer nodes/elements than anyone else. So
I use the 1.0x to conform to other vendors' defaults, giving a node count that 
is more meaningful to compare with competitors'.) I use here the BEST mesh (in
my estimation) that I can obtain quickly after trying several different option
combinations that are all "near default". This is always a big issue with the 
technical support crowd. They inform me "Yeah, but you should use the super-
double-secret parameter xfix=0.38 to achieve a better mesh," or something 
to that effect. I am approaching this from a plain-dumb-user-like-me point of 
view. I give it a surface mesh and here's what it gives me. 

Many of these packages offer much more than meshing: assignment of boundary /
initial conditions, material property libraries, plotting, solvers, just to 
name a few. The price tag normally includes more than just meshing. Although 
I consider meshing to be over-priced in general, these other functions must
be taken into account when comparing the values. I have not done that in this 
survey.

Please direct any ideas / feedback to my personal e-mail:
ahines@novagate.com

   -------------------------------------------------------------

The data tabulated below is derived from a single geometry with two surface 
meshes: somewhat coarse and somewhat dense. The part is a thin, highly 
double-curved solid with several complex perforations. An identical triangular 
surface mesh was input to all meshers. Quality was analyzed on all resulting 
meshes with MeshCAST. Hardware was a Silicon Graphics Power Challenge L with 
8 processors and 2.5 gigabytes of RAM. However, all jobs were run on a single 
processor with the other processors being heavily utilized. ALGOR, however,
was run on an HP-735 with 256 mB RAM and an otherwise un-utilized cpu.

"#nodes/elements" refers to the number of nodes and tetrahedral element 
in the solid mesh. Clearly this number is adjustable through many parameters. 
THIS IS FOR NEAR DEFAULT SETTINGS!

"cpu" column refers actually to the WALL CLOCK TIME from issuing the "go mesh 
it" command until control was restored to the user (which IS NORMALLY MUCH 
LONGER than when it said it was finished meshing). 

"min.ang" refers to the minimum dihedral (solid) angle in the entire mesh. 
"max.ang" gives the corresponding maximum. MAXIMUM DIHEDRAL IS OFTEN THE
MOST CRITICAL QUALITY CRITERION.

"Amin/Amax" are minimum and maximum aspect ratio, another important
measure of quality.

Order listed reflects my personal "best-to-worst" opinion.

/*****************************************************************************/
      Versions tested: 
      ---------------
      ALGOR (Nov. 1997)
      FEMAP V5.0
      Hypermesh: v3.0
      Meshcast: v1.6.0 (concurrent to ProCAST v3.1.2)
      P3: v8.0
      ---------------

 MESH #1 - higher density
 ------------------------
  MESHER     #nodes/elements  cpu*      min.ang*/MAX.ANG*  Amin*/Amax*
  _____________________________________________________________________ 
  PATRAN     104552/555978    8.8 min.     71.4 / 161.9    1.02 / 7.3
  HYPERMESH   57696/268079    4.5 min.     72.0 / 164.8    1.01 / 9.8
  FEMAP       94776/496859    7.5 min.     71.4 / 166.6    1.02 / 8.5
  MESHCAST   112415/601470   12.2 min.     71.4 / 179.9    1.02 / 8.3
  ALGOR - core dump after 6 hours.
  _____________________________________________________________________


 MESH #2 - lower density
 ------------------------
  MESHER     #nodes/elements  cpu*      min.ang*/MAX.ANG*   Amin*/Amax*
  _____________________________________________________________________ 
  HYPERMESH   12359/ 47563   0.6 min.     72.8 / 160.9    1.05 / 12.1
  PATRAN      20562/ 98065   1.3 min.     72.0 / 161.3    1.06 /  7.2
  FEMAP       11455/ 42469   1.1 min.     73.9 / 164.0    1.08 / 11.5
  MESHCAST    19607/ 91406   1.5 min.     72.0 / 179.3    1.04 / 19.6
  ALGOR - core dump after 5 hours.
  _____________________________________________________________________

/*****************************************************************************/

I cannot give a definitive comparison of surface meshing, only impressions. 
Surface meshing is a highly user dependent art. Unfortunately, I cannot be an 
expert user for all these packages. The numbers below reflects the time for me 
to climb the learning curve for knowing generally where all the buttons are,
what they do, and how well they work. For overall scores DO NOT blindly sum 
every column! Individuals will weight the rows differently according to their
needs.


            SOFTWARE(2):             PATRAN MESHCAST HYPERMESH ALGOR FEMAP
 
-----------------------------------------------------------------------------
  GENERAL 
      Surface Meshing                    3       8       3       5      
      Robustness (a)                     7       7       5       1     7
      Flexibility (b)                    6       6       6       4     6
      Vendor meshing (c)                         8       6       8     
      Ease of use (d)                    6       7       8       4     7
      Mesh editing (e)                   6       6       9       3     7
      Error reporting (f)                4       3       8       3     5
      CAD I/O (g)                        5       4       5       3     6       
      Technical support                  7       8       6       3     ?
      Ease of install/maintenance        7       9       5       8     8
      "Bug-free-ness"                    6       5       7       ?     6
      COST (h)                          HIGH    HIGH    HIGH    HIGH  
HIGH
 
-----------------------------------------------------------------------------

NOTES
-----
(a)  Should mesh the first time with given parameters. This refers to
tetrahedra only. 

(b)  Includes things like a finely meshed boundary with coarsely meshed
interior, ignoring features smaller than a given size, multiple element
layers through thin sections, multiple meshing algorithms, etc. Refers
predominantly to tetrahedral meshing. 

(c)  For many other geometries, I could not successfully mesh the part, so 
I sent the geometry to the software vendor. In other cases, I sent it 
specifically to evaluate the software run under the developer's care. Score 
reflects willingness, speed, size, and quality of the mesh received. Lack
of a score means I have not asked the vendor to mesh anything.

(d)  I am partial to a Mac-like interface, which I consider to be the computer
world 'reference standard'. Program should require minimal training and
manuals. All options should be available on the menus (no hidden or cryptic 
commands). This is not just personal preference, but time and dollars in 
training. As a side note, Algor scores low not because the interface is so
bad, but because when I do what seems obvious (after taking training classes
and studying the manual), it doesn't work.

(e)  Ease and effectiveness of changing a mesh locally without having to 
remesh the entire geometry or making local refinements without have to reduce
global element size. Again Algor ranks lows because mesh repair in Algor is
strictly in the domain of the expert, though for them it may be flexible.

(f)  If an operation fails, being the picky sort that I am, I do not except
"bus error, core dumped" as acceptable error reporting. Although Hypermesh
sometimes crashes, it somehow manages to save the session before exiting.
Bravo! It also, if the mesher fails it highlights the problem area. The score
also takes into account that insignificant warnings common to every element 
should only give one message, not one for every element (FEMAP take heed!).

(g)  Notice the "O" in I/O. Most packages are now including I/O as a NO-COST
FEATURE (PATRAN take heed). Thatt's a good thing.

(h)  My corporation pays for these packages. But in all honesty, a tet mesher
is nowadays a commodity. I think the price of a mesher should be in the
$500-$2000 price range depending on the other features. 

   -----------------------------------------------------------------

GENERAL IMPRESSIONS / CONCLUSIONS AND OTHER WHIMS

PATRAN
:)  Recent version generally give the best quality tetrahedra to date. It has
    many options. It is fast and robust. If sufficient system resources are 
    available, it does a great job. A vast improvement over version 6. It has 
    hooks to many commercial solvers.

:(  Surface mesher gave very disappointing results. It's extremely slow. Hard 
    to keep track of poorly or unmeshed surfaces for repair/remeshing. PATRAN 
    cannot do multiple materials with an interface easily, which is an absolute 
    necessity for me. Cannot easily select/manage elements by material. Takes a 
    huge amount of system resources (exhausted >3 Gigabytes of real and virtual 
    swap for an attempted mesh of around a million tetrahedra). 

    The UG/Parasolids interface functioned OK in previous versions, but would 
    not on my SGI. PATRAN hotline says "That's really weird. We've never seen 
    that before. Ours works great." They worked with me for over a month and 
    never resolved the problem on my machine. In all fairness, it probably 
    would NOT be a problem for most users.

MESHCAST
:)  Formerly my top rated mesher and still good. My first choice for editing  
    large bad quality CAD files and getting a water tight surface mesh which 
    can then be meshed or exported. Has amazingly small executable files. 
    Handles multi-materials better than any software I know of. Only software 
    tested that gives multi-layers through walls for permitting boundary layer 
    flow. Imports parasolid geometry cleanly. 

:(  Has had no notable improvements in several years. Prefers to bomb without 
    explanation rather than tell where errors are and give an opportunity to 
    fix them. Element quality is now poorest of all meshers tested, even though 
    the above quality checks were performed on meshcast.

HYPERMESH
:)  An indespensible tool for massaging a surface mesh, creating simple 2-D or 
    structured 3-D mesh, quick tet meshing, etc. The crescent wrench of meshing 
    in my book. Runs well on high end PC's and does nice post-processing. Is 
    now packaged with plotting and optimizing capability. Features nice CATIA 
    access and a few other packages nominally. Best in class for organizing 
    (NOT MESHING!) multiple materials.

:(  Not normally sufficient for taking a complex model from CAD to solid mesh, 
    though it's OK for simple models. Previous version gave the poorest element
    quality, but version 3.0 is improved over version 2.x for performance as 
    well as options and quality.

FEMAP
:)  I am new to FEMAP. Tetrahedral meshing is impressive. Many options. Runs
    well (supposedly) on PC. Accepts many CAD formats. Does pre/post processing.

:(  Unforgiving: no undo, no interrupt. Slowest graphics in class. The graphics
    window tends to go away (at least on the unix version) and although nothing 
    is visible, take minutes or hours apparently updating the nonexistent screen
    with no interrupts allowed! Although meshing is fast, it way over-reports 
    ELEMENTS/MINUTE, basing it on incorrect data. FEMAP is overly concerned with
    making the user specify complete material property data when it's not 
    desirable for meshing. 

ANSYS
:)  A fellow engineer once told me that he would recommend ANSYS just for the 
    awesome documentation in the manual that shows most of standard textbook 
    (e.g. Timoshenko ...) problems and how to model them numerically. Forte is
    stress analysis. 

:(  Meshing is stunningly awkward. On a supercomputer, ANSYS was able to read 
    in approximately 5 (five) elements per second, thus it is apparently not 
    intended for I/O with other vendors. 

ALGOR 
    Best advertising/marketing in class. Latest version (12) is dramatically
improved in the user interface. But I haven't been able to test it well yet 
because of a problem accessing external file formats. Previous versions have 
not had this problem. Should be easy to fix if tech support would call. My
previous versions offered the slowest mesher I have ever seen. Took hours 
instead of minutes, days instead of tens of minutes. Occasionally produced a 
tet mesh on simple geometry. I have never seen an "all hex mesh" even from 
technical support (except from trivial surface meshes), though they swear 
upon a Bible it's so. I have seen a mixed hex/pyramid/wedge/tetra mesh from 
them and tetrahedral meshes of complex geometries. Surface meshing was fair. 
I have met some very competent people working at ALGOR. I have had them mesh 
fairly complex parts, so long as they had only one material and didn't need 
any CAD repair. Technical support can be very defensive ("how dare you think 
our product dumped a core?"), leaning toward insulting ("how could an idiot 
like you suggest a bug in our flawless software?"). Have not tested their 
solvers, although rumor is they're OK on linear stress problems.

SDRC Masters Series (IDEAS)
   Haven't tried this in latest version either. We stopped using it after a 
squabble over licensing prevented us from upgrading one seat for less than 
$40,000. Probably quite good judging only from versions of several years ago, 
but I really can't give any data to that effect.

OCTREE
   Because of the lack of user interface, I have not tested OCTREE's latest
and greatest releases. At last check, they were fast, reliable, good quality,
and user impossible. OCTREE is available as a module in some meshing packages.

TRUEGRID
   Still never tried it due to the ludicrous price. My impression is that it
would take a while to build the first structured mesh of a part (~1 month).
Afterward, CAD changes would be solid meshed nearly instantly with the same
topology. This would have some VERY nice benefits in situations where cost
and initial set up time is not an issue. 

HEXAR
   Builds a finite different-type hex mesh on a part, massaging the surface
to stretch the mesh to the limits of the surface definition. Probably highly
orientation dependent, but gives good quality all hex meshes. Price is, well
if you have to ask, you don't really want it after all. Did I mention it only
runs on CRAY class supercomputers?


Robert Schneiders