# Meshing of complex geometrical domains

When using the finite element method, I have always used either already meshed domains or very simple ones.

From what I've heard, meshing complex geometries is often outsourced to specialized companies (as it is considered not to be an interesting part of the job).

I am wondering how it is done: is it partly automatic, should you have to define the points and connectivities by hand in some cases? What are the most commonly used criteria to ensure the mesh will fulfill the expectation of the customer? What are the trends: should we expect it to be fully automatic in the coming years?

Edit: I recently found a partial answer to this question: Isogeometric Analysis (IGA). IGA can been seen as an extension of the finite element method in order to solve the problem of mesh generation by creating a mesh directly from the CAD. It uses the CAD spline description of the geometry to automatically build both the mesh and the finite element space.

And one of the reason it has been developped is because the authors noticed that mesh generation is so painful that it takes most of the time to achieve in the industry, and mesh convergence is only rarely checked.

The method seems to be really interesting but not widely used since relatively new (10 years).

• I'm not an expert on meshing but I've done it a few times and it largely depends on what you want to achieve and how much time you have for it. Meshing can be practically automatic using default configuration, but you can also change the configuration locally, and in some pieces of software you can both define the shape of mesh elements as well as their size manually for nearly each node. Commented Feb 5, 2015 at 13:21
• This seems borderline too broad to me in its current form. There are entire books written on meshing. Would it be possible to further narrow the scope of the question? Commented Feb 6, 2015 at 12:55
• Not an expert either, but believe that 90%+ is automatic. Manual adjustment is done if the simulations show unrealistic results or don't converge. Otherwise I tentatively agree with @PaulGessler here, though I think with a little bit the question could work very well. It's an interesting field. Probably the last part is a little too broad for me "trends in the coming years" and the problem could be stated more specific, e.g. with a concrete example. Commented Feb 7, 2015 at 6:56
• @PaulGessler I agree the question is broad. It is really about meshing seen through the eyes of an engineer. I know that they are many books about meshing, but I guess most of them are from a mathematical point of view and give little information about what is done in concrete cases. Commented Feb 9, 2015 at 15:47
• @pandita Unfortunately I do not have any such concrete example. Maybe 90% is automatic, maybe even 99%. But the remaining 10% or 1% are a big problem from what I've heard. Commented Feb 9, 2015 at 15:49

## 5 Answers

There are a number of techniques for meshing complex domains for Finite Element Analysis. They generally fall into two categories: Structured vs. Unstructured. For structured meshes, basically the entire mesh can be mapped directly to a 3D array of XYZ coordinates, whereas unstructured grids cannot. There is a good description of the classifications with pictures here: http://en.wikipedia.org/wiki/Grid_classification

Within structured meshing, there are two specific types:

Structured meshes:

• Cartesian mesh - This is basically using hexahedral cubes to represent the elements. A well known package that uses Cartesian meshing would be Cart3D. This is not really complicated, but the difficulty is defining where the cubes intersect the surface.

• Body-fitted mesh - in body-fitted curvilinear meshes, they can be divided into: algebraic grids, or elliptic grids. In either case the user has to define the points on the boundaries of the domain. To generate points in the interior of the domain, algebraic grids usually use some variation of a technique called Hermite interpolation to generate the interior points. Elliptic grids can produce curvilinear grids where basically all the gridlines are orthogonal, and are generally what is used when it comes to body-fitted meshes. The interior points here are basically computed by solving an elliptic partial differential equation. The defacto textbook for these types of body-fitted techniques is available online here: http://www.erc.msstate.edu/publications/gridbook/. The author of this book, is basically considered "the father of grid generation", because he came up with the Elliptic mesh for mesh generation.

Unstructured meshes

• Since unstructured grids cannot be mapped to a 3D array, so they must also specify a connectivity mapping, which can relate which elements are related to other elements. The basic algorithm that is used is called "Delauney triangulation", which is discussed in detail here: http://en.wikipedia.org/wiki/Delaunay_triangulation. One of the popular books that covers this topic is called "The Handbook of Grid Generation".

• The basic algorithm here is, given an initial set of points on the boundary: (1) Compute an initial triangulation, (2) Perform a quality check based on Ruppert's refinement algorithm (http://en.wikipedia.org/wiki/Ruppert%27s_algorithm), (3) Insert or delete points based on Ruppert's algorithm such that the Tetrahedra that are generated have a minimum angle (e.g. 24 degrees).

To answer your question about criteria, what makes a good mesh has to do with a number of factors, but a couple of the most important factors are: (1) grid resolution (is there enough grid points to get the resolution required) and (2) the geometry of the elements (skew, minimum angle, aspect ratio, etc.). This is discussed here: http://en.wikipedia.org/wiki/Types_of_mesh These both will effect the quality of a Finite Element solution. There is another aspect of unstructured grid meshing called "Advancing Front" which is used to produce points near the boundary in the case of Fluid Dynamics.

After saying all that, most techniques require some work up front and then are somewhat automatic as well. In any type of mesh algorithm, the user is going to have to spend some time to define the geometry and some initial point distribution on the surface. From my experience, body-fitted meshes take the most time. Both the Delaunay triangulation and the Cartesian meshes are basically automatic in generating the points of the interior domain.

I haven't been doing much work in this field in the past few years, but the trend in the past was moving away from body-fitted grids to either unstructured Delaunay triangulations or Cartesian grids. Also, there have been some codes which can convert a cartesian mesh to a unstructured Delaunay mesh and vice-versa (e.g. Gambit).

I don't think these meshing codes will ever be fully automatic, because some level of input is required to specify the geometry, which usually involves cleaning up a CAD model. More recently techniques have been developed to automate much of these tasks as well. Generating the interior points of the domain is pretty much completely automatic these days. These modern grid generation systems are getting quite mature these days in terms of producing high quality grids. One of the research areas in the past decade has been in the area of speeding up the grid generation by using parallel processing, and in the past few years parallel grid generation using multiple Graphical Processing Units (GPU).

There is an entire list of mesh generation software here: http://www.robertschneiders.de/meshgeneration/software.html These should fall under one of the three categories above.

While the other guys explained the theoretical framework behind meshing, the practice is markedly different and it is not at all automatic in industries where quality of mesh is of utmost importance given that finite element analysis results cover a great deal of the product development process.

## Let's first understand how meshing is done:

Meshing for structural domains are of three types: 1D meshing, 2D meshing, and 3D meshing based on the type of elements used for meshing.

• 1D meshing: line element

• 2D meshing: quad/tria element

• 3D meshing: hexa(brick)/penta/tetra elements.

Which mesh to use i.e. 1D, 2D, or 3D is primarily dependent on the computational accuracy required, computational cost (time required to solve the problem), and aspect ratio of the domain. The highest aspect ratio should be more than 10 (as a thumbs rule in general) to neglect a dimension and go for a low-dimension mesh.

Let me explain.

• A domain that is 100X50X80 has all comparable dimension and the highest aspect ratio is 100/50=3. Therefore, 3D elements will be used to mesh that part.

• A domain that is 100X50X8 has one dimension negligible and the highest aspect ratio is 100/8=12. Therefore, 2D elements will be used. A sheet metal part is a perfect example of this.

• A domain that is 100X5X8 has two dimensions negligible and the highest aspect ratio is 100/5=20. Therefore, 1D elements will be used. A truss assembly serves as an example.

Once you decide the type of elements to be used, element quality comes into picture. To maintain quality, meshing must be done manually.

All meshing software comes with an automesh option, which works only with mappable parts and straight faces/blocks. Most of the explanations in other answers (esp. @Wes's answer) are related to what is done in the background for automesh to work.

The idea then, is to divide your domain into multiple patches and automesh them patch by patch and continuously ensuring connection between the patches. Ensuring connectivity is mostly automatic based on a tolerance based check. 1D meshing is easier in these aspects.

The next thing is to maintain mesh flow and symmetry. Mesh flow indicates the transformation of element sizes. When you have to represent a complex feature, element size will change from bigger to smaller. This shouldn't happen in a flash and gradual change of size is to be maintained. Also, symmetrical parts should have symmetrical mesh to maintain integrity of results from FEA.

All the above points will help in maintaining mesh quality. However, meshing software usually have a provision to check the mesh quality using a few parameters which can be adjusted as per one's requirement. A final check on quality and connectivity is essential to ensure quality results from FEA.

## Some qualities expected from a good mesh:

from 1D mesh

• No issue with connectivity of nodes
• No duplicate elements
• Maintain minimum and maximum length

from 2D/3D mesh

• Less than 5 degree warpage angle {calculated by splitting a quad into two trias and finding the angle between the two planes which the trias form}
• Aspect ratio less than 5 {dividing the maximum length side of an element by the minimum length side of the element.}
• Skew angle more than 60 degree {the minimum angle between the vector from each node to the opposing mid-side and the vector between the two adjacent mid-sides at each node of the element. Ninety degrees minus the minimum angle found is reported.}
• Jacobian more than 0.7 {The Jacobian ratio is a measure of the deviation of a given element from an ideally shaped element. The Jacobian value ranges from -1.0 to 1.0, where 1.0 represents a perfectly shaped element. The ideal shape for an element depends on the element type.}
• Tria elements with angle between 20 and 120 degree
• Quad elements with angle between 45 and 135 degree
• Maintain minimum and maximum length
• Element connectivity
• Less than 10% tria elements in 2D mesh
• 2D element normals oriented in the same direction for a particular parts.
• Tet collapse for tetra elements {Defined as the distance of a node from the opposite face divided by the area of the face multiplied by 1.24}

from all mesh

• Numbering the nodes and elements properly in defined ranges
• Minimal deviation from geometry and deviation supported by sound engineering judgement.
• Special connections between different types (1D/2D/3D) of elements properly defined.

However, all these quality parameters can vary depending on the type of analysis, accuracy required, company guidelines, and computational cost.

## Why these stuffs aren't automated:

Finite element analysis requires a correct mesh to give correct results. This correctness can't be defined with a few parameters and even then, they will be contradictory.

Again for different types of analyses, mesh quality definition may be different.

Material, geometric, and contact non-linearity complicate the requirements further while defining a good mesh.

One initial roadblock I have observed using automesh feature is the incorrect representation of geometry to maintain quality of the mesh in other aspects. Both of them are important. Also, representation of geometry can be simplified with good engineering judgements which is hard to automate as it varies case by case.

For example, Hypermesh is a very popular commercial meshing package from Altair Engineering which has a Batchmesher application that does the meshing for you. However, it fails to maintain proper geometry deviations and connections between elements for complex parts.

## tl;dr:

This is how meshing is done professionally

• Decide what kind of mesh to be used
• Mesh the parts patch by patch and ensure proper connections
• Maintain mesh flow and symmetry
• Do all quality checks and ensure quality
• Ensure proper connectivity
• Check geometry deviations and finite element mass
• Deliver the model to analysts who may again re-mesh certain areas depending on the analysis requirements.

PS: I am new to this forum and this is one of my first few answers that I have put a lot of effort. I would really appreciate if I get some feedback. I have a few Quora answers on meshing and FEA where these points are explained in some detail with graphics. [Practical Finite Element Analysis]

(1) Is it partly automatic?

Yes, it is. And it could be totally automatic.

(2) Should you have to define the points and connectivities by hand in some cases?

No, except in a classroom homework. By the way, it is called node and element.

(3) What are the most commonly used criteria to ensure the mesh will fulfill the expectation of the customer?

This could be a book.

(4) What are the trends: should we expect it to be fully automatic in the coming years?

Yes, it is already automatic, but still need improvement.

Meshing a body with 2D triangles or 3D tets can be done automatically but these elements don't give the best results: quads and bricks are generally better. However, meshing a body entirely with quads/bricks can't be done automatically and you have to manually partition it into blocks that can be automeshed. This isn't trivial.

Also, a mesh well-suited to a thermal analysis isn't generally well-suited to, say, a vibration analysis.

Having said that, running analyses with huge numbers of tiny elements isn't the problem it once was and so tailoring the mesh to the type of analysis is less important than it once was. Also, the tet element designed by Burton and Clegg (Tetrahedral Elements for Explicit Ballistics Simulations), seems to perform as well as a brick, so my first point might be less important than it was.

In short, automatic meshing has come a long way but is still the subject of much research. Will it ever be fully automatic? I'm inclined to doubt it. Even with automatic remeshing of areas of high field gradients, I think a good initial choice of mesh will be useful.

Yes, there are meshing software programs, allowing fully automatic meshing. If you are interested in meshing planar or curved surfaces, there are several products that provide completely automatic meshing, delivering 100% quadrilateral meshes on surfaces of any degree of complexity. I would suggest that you visit the following webpage and choose one of the programs that suits your needs as close as possible (some of those programs are best for structural engineering applications, other - for modeling of printed circuit boards, etc.) http://members.ozemail.com.au/~comecau/products.htm