Robust Meshing for FEA with ANSYS

Meshing is one of the most important aspects of a simulation process and yet it can be one of the most frustrating and difficult to get right.  Whether you are using CAD based simulation tools or more powerful flagship simulation tools, there are different approaches to take when it comes to meshing complicated assemblies for structural or thermal analysis.

ANSYS has grown into the biggest simulation company globally by acquiring powerful technologies, but more importantly, integrating their capabilities into a single platform.  This is true for meshing as well.  Many of ANSYS’ acquisitions have come with several strong meshing capabilities and functionalities and ANSYS Workbench integrates all of that into what we call Workbench Meshing.  It is a single meshing tool that incorporates a variety of global and local mesh operations to ensure that the user not only gets a mesh, but gets a good quality mesh without needing to spend a lot of time in the prep process. We’ll take a look at a couple examples here.



This is a Tractor Axle assembly that has 58 parts including bolts, gaskets and flanges.  The primary pieces of the assembly also has several holes and other curved surfaces.  Taking this model into Workbench Meshing yielded a good mesh even with default settings. From here by simply adding a few sizing controls and mesh methods we quickly get a mesh that is excellent for structural analysis.

Tractor Axle Geometry

Tractor Axle Default Mesh

Tractor Axle Refined Mesh



The assembly below, which is a model from Grabcad of a riveting machine, was taken directly into Workbench Meshing and a mesh was created with no user input. As you can see the model has 5,282 parts of varying sizes, shapes and complexity.  Again without needing to make any adjustments, Workbench Meshing is able to mesh this entire geometry with 6.6 million elements in only a few minutes on a laptop.

Riveting Machine

Riveting Machine

Riveting Machine Default Mesh

Riveting Machine Default Mesh


The summary of the meshing cases are shown below:

Case # of Parts User Operations # of Elements # of Nodes Time [s]
Tractor Axle 58 0 415,735 723,849 34
Tractor Axle Refined 58 5 Body Sizings

2 Local Mesh Methods

930,406 1,609,703 43
Riveting Machine 5,282 0 2,481,275 6,670,385 790


Characteristics of a robust meshing utility are:

  • Easy to use with enough power under the hood
  • Able to handle complex geometry and/or large number of parts
  • Quick and easy user specified mesh operations
  • Fast meshing time

ANSYS Meshing checks all of these boxes completely.  It has a lot of power under the hood to handle large and/or complex geometry but makes it simple and easy for users to create a strong quality mesh for FEA analysis.

Here is the link to download the geometry used in this model

If you would like a more detailed step-by-step explanation of this process, check out the video below!

If you have any questions feel free to reach out to me at


Credit to Manoj Abraham from Grabcad for Riveting Machine Model. And no I didn’t choose this model just because he shared my name

Donny Don’t – Thin Sweep Meshing

It’s not a series of articles until there’s at least 3, so here’s the second article in my series of ‘what not to do’ in ANSYS…

Just in case you’re not familiar with thin sweep meshing, here’s an older article that goes over the basics.  Long story short, the thing sweep mesher allows you to use multiple source faces to generate a hex mesh.  It does this by essentially ‘destroying’ the backside topology.  Here’s a dummy board with imprints on the top and bottom surface:


If I use the automatic thin sweep mesher, I let the mesher pick which topology to use as the source mesh, and which topology to ‘destroy’.  A picture might make this easier to understand…


As you can see, the bottom (right picture) topology now lines up with the mesh, but when I look at the top (left picture) the topology does not line up with the mesh.  If I want to apply boundary conditions to the top of the board (left picture), I will get some very odd behavior:


I’ve fixed three sides of the board (why 3?  because I meant to do 4 but missed one and was too lazy to go back and re-run the analysis to explain for some of future deflection plots…sorry, that’s what you get in a free publication) and then applied a pressure to all of those faces.  When I look at the results:


Only one spot on the surface has been loaded.  If you go back to the mesh-with-lines picture, you’ll see that there is only a single element face fully contained in the outline of the red lines.  That is the face that gets loaded.  Looking at the input deck, we can see that the only surface effect element (how pressure loads are applied to the underlying solid) is on the one fully-contained element face:


If I go back and change my thin sweep to use the top surface topology, things make sense:


The top left image shows the thin sweep source definition.  Top right shows the new mesh where the top topology is kept.  Bottom left shows the same boundary conditions.  Bottom right shows the deformation contour.

The same problem occurs if you have contact between the top and bottom of a thin-meshed part.  I’ll switch the model above to a modal analysis and include parts on the top and bottom, with contact regions already imprinted.


I’ll leave the thin sweeping meshing control in place and fix three sides of the board (see previous laziness disclosure).  I hit solve and nothing happens:


Ah, the dreaded empty contact message.  I’ll set the variable to run just to see what’s going on.  Pro Tip:  If you don’t want to use that variable then you would have to write out the input deck, it will stop writing once it gets to the empty contact set.  Then go back and correlate the contact pair ID with the naming convection in the Connections branch.

The model solves and I get a bunch of 0-Hz (or near-0) modes, indicating rigid body motion:


Looking at some of those modes, I can see that the components on one side of my board are not connected:


The missing contacts are on the bottom of the board, where there are three surface mounted components (makes sense…I get 18 rigid body modes, or 6 modes per body).  The first ‘correct’ mode is in the bottom right image above, where it’s a flapping motion of a top-mounted component.

So…why don’t we get any contact defined on the bottom surface?  It’s because of the thin meshing.  The faces that were used to define the contact pair were ‘destroyed’ by the meshing:


Great…so what’s the take-away from this?  Thin sweep meshing is great, but if  you need to apply loads, constraints, define contact…basically interact with ANYTHING on both sides of the part, you may want to use a different meshing technique.  You’ve got several different options…

  1. Use the tet mesher.  Hey, 2001 called and wants its model size limits back.  The HPC capabilities of ANSYS make it pretty painless to create larger models and use additional cores and GPUs (if you have a solve-capable GPU).  I used to be worried if my model size was above 200k nodes when I first started using ANSYS…now I don’t flinch until it’s over 1.5M
    Look ma, no 0-Hz modes!
  2. Use the multi-zone mesher.  With each release the mutli-zone mesher has gotten better, but for most practical applications you need to manually specify the source faces and possibly define a smaller mesh size in order to handle all the surface blocking features.
    Look pa, no 0-Hz modes!Full disclosure…the multi-zone mesher did an adequate job but didn’t exactly capture all of the details of my contact patches.  It did well enough with a body sizing and manual source definition in order to ‘mostly’ bond each component to the board.
  3. Use the hex-dominant mesher.  Wow, that was hard for me to say.  I’m a bit of a meshing snob, and the hex dominant mesher was immature when it was released way back when.  There were a few instances when it was good, but for the most part, it typically created a good surface mesh and a nightmare volume mesh.  People have been telling me to give it another shot, and for the most part…they’re right.  It’s much, much better.  However, for this model, it has a hard time because of the aspect ratio.  I get the following message when I apply a hex dominant control:

  4. The warning is right…the mesh looks decent on the surface but upon further investigation I get some skewed tets/pyramids.  If I reduce the element size I can significantly reduce the amount of poorly formed elements:image
  5. That’s going on the refrigerator door tonight!
    And…no 0-Hz modes!
  • Lastly…go back to DesignModeler or SpaceClaim and slice/dice the model and use a multi-body part.image
    3 operations, ~2 minutes of work (I was eating at the same time)

    Modify the connection group to search/sort across parts


    That’s a purdy mesh!  (Note:  most of the lower-quality elements, .5 and under, are because there are 2-elements through thickness, reducing the element size or using a single element thru-thickness would fix that right up)

    And…no 0-Hz modes.

Phew…this was a long one.  Sorry about that.  Get me talking about meshing and look what happens.  Again, the take-away from all of this should be that the thin sweeper is a great tool.  Just be aware of its limitations and you’ll be able to avoid some of these ‘odd’ behaviors (it’s not all that odd when you understand what happens behind the scenes).

ANSYS Workbench Installations and RedHat 6.6 – Error and Workaround

penguin_shWe were recently alerted by a customer that there is apparently a conflict with ANSYS installations if Red Hat Enterprise Linux 6.6 (RHEL 6.6) is installed. We have confirmed this here at PADT. This effects several versions of ANSYS, including 15.0.7, 14.5, and 14.0. The primary problem seems to be with meshing in the Mechanical or Meshing window.

The windows errors encountered can be: “A software execution error occurred inside the mesher. The process suffered an unhandled exception or ran out of usable memory.” or “an inter-process communication error occurred while communicating with the MESHER module.”

The error message popup can look like this:


Note that the Platform Support page on the ANSYS website does not list RHEL 6.6 as supported. RHEL is only supported up through 6.5 for ANSYS 15.0. This is the link to that page on the ANSYS website:

That all being said, there is a workaround that should allow you to continue using ANSYS Workbench with RHEL 6.6 if you encounter the error. It involves renaming a directory in the installation path:

In this directory:


Rename the folder ‘X11’ to ‘Old-X11’

After that change, you should be able to successfully complete meshes, etc,. in ANSYS Workbench. Keep in mind that RHEL 6.6 is not officially supported by ANSYS, Inc. and their recommendation is always to stick with supported levels of operating systems. These are always listed in the ANSYS Help for the particular version you are running as well as at the link shown above.

Since the renamed directory is contained within the ANSYS installation files, it is believed that this will not affect anything else other than ANSYS. Use at your own risk, however. Should you encounter one of more of the errors listed above, we hope this article has provided useful information to keep your ANSYS installations up and running.