Correct mesh size – a quick guide!

Mesh size is one of the most common problems in FEA. There is a fine line here: bigger elements give bad results, but smaller elements make computing so long you don’t get the results at all. You never really know where exactly is your mesh size on this scale. Learn how to choose the correct size of mesh and estimate at which mesh size accuracy of the solution is acceptable.

As an example, I will use a simple discretely supported shell. As an “outcome” I will use the critical load multiplier of the first eigenvalue.

It’s perhaps worth mentioning that the “outcome” can be anything that interests you. If you want to know the certain stress component in a certain node, or a displacement of selected DOF that is ok. Whatever you choose goes, as long as it is actually influenced by the mesh size! I took the multiplier simply as it is easy to obtain, and linear buckling computes very fast 🙂

Choose a correct mesh size

You can see the model I used below. Notice how deformation shape and outcomes changes with the mesh refinement. I should write that mesh refinement check (often called mesh convergence) should be made for each problem. This is somewhat true but let’s face it, you won’t make it for each problem most likely… it simply takes a lot of time! I would suggest you do such a study for some of the most important projects/parts and based on that experience you can extrapolate the knowledge to similar problems.

Mesh size influence results from linear buckling analysis of a shell.

In this example, I am using QUAD4 elements (normal 4 node quadrilateral elements, sometimes referred to as “S4”).

In order to establish suitable finite element size:

  • Perform chosen analysis for several different mesh sizes.
  • Notice where high deformations or high stresses occur, perhaps it is worth to refine mesh in those regions.
  • Collect data from analysis of each mesh: outcome, number of nodes in the model, computing time

For our shell, I have performed some analysis for different element sizes. On the drawing above you can see the outcome for few selected meshes. Please notice, that for biggest elements actual eigenvalue shape is different than in the case of models with more refined mesh.

What mesh size is “small enough”

Usually smaller mesh means more accurate results, but the computing time gets significant as well.

You should search for balance between computing time and accuracy. In some instances you can increase computing time over 2 times to improve accuracy by 1% – for me, that seems unreasonable. Knowing your problem you will know best what makes sense and what doesn’t, based on what accuracy do you need.

When mesh density is being discussed in tutorials, different problems are solved with known analytical solution. You can then easily compare the FEA outcome to a known solution – you get an error value without trouble. This is a fantastic approach that can teach you a lot, but unfortunately in reality you don’t know the correct answer… so you can’t really do that can you?

Unfortunately in almost all analysis performed for commercial or scientific purposes the solution of the problem is unknown. In those cases “typical” approach doesn’t work. Instead, you will have to “guess” the correct answer basing on the models with different meshes you have done. This is done with the following chart:

shell2 chart1

Reduction of finite element size leads to more elements, which in turn leads to more nodes in the model. If we build a chart showing the outcome (in this case first eigenvalue) dependence on node count in the model, this chart will be asymptotically reaching for the correct answer (in this case 0.6947). Node count is only one of the parameters possible here. Since I simply decreased the element size in the entire model it made sense. You can just as easily use a number of elements on the width of your part, or size of the “typical” element. If you refine mesh only in a small area (i.e. where the stress concentration is) you can easily use a node count in that area instead of entire model etc.

Whatever metric you will use, will depend on the problem you are solving. Node count is the most popular one, simply since it is the easiest one to do 🙂

Make it a bit easier

Exact estimation of asymptotic value on the chart above may be problematic or time-consuming. There is a simple trick to make things easier to calculate: instead of node count on horizontal axis let us use 1 / node count. This way the correct answer will be where horizontal axis value reaches 0. This means that if we approximate our curve with the equation (in most cases linear approximation is sufficient, Excel does this automatically) it is very easy to calculate “y” value for x = 0.

shell2 chart2

Note that the obtained curve is almost linear which is usually the case in most models. From the equation provided by Excel, it is easy to derive a correct answer when x = 0. At this stage, since we know the correct answer, we can calculate how big errors were made in the estimation of result for each finite element size. Below is a chart showing dependence between error and computing time, and between error and finite element size:

shell2 chart5From the above chart it is easy to notice that after a certain point, any significant increase in accuracy will “cost” enormous additional computing time. When I am asked to do a convergence check on mesh refinement those 2 charts are the real answer (you can easily change the mesh element size with node count if you like). Now you know the errors each mesh size gives and computing time it costs 🙂

Making the choice and sanity check

Now you know how accurate results you will get with given mesh, and how much time computing will take with such approach. Making a decision is always problematic. I usually think about how sure I am about loads or boundary conditions – usually, those are just “estimated” and then increased “just to be sure”. When that is a case a mistake of few percent won’t do any harm.

Time is also a factor to consider here. If you have 100 similar models to calculate increasing computing time 2 times will take A LOT of time… just something to consider.

Notice that this chart is asymptomatically reaching to 0%… if you have made all the steps, described here, and your chart does not go toward 0 chances are you used too big elements. Just know that if you are not sure it is wise to make one model with “extremely” small elements – you know… just in case.

How to speed things up?

When you first do mesh convergence you will realize, that to have a great accuracy computing time will be significant. That is true, but you are not defenseless. Look at the similar shell below. Coarse mesh gives bad results for sure, but the very fine mesh takes a lot of time to compute. Knowing that the stability failure occurs at the bottom I have made a third model (on the right) that has very fine mesh where it is important, and coarse mesh where “nothing happens”.

Decrease mesh size but keep the computing time low!

This way I go the accurate outcome without incredible long computing time. Of course, there are limits, since you cannot be sure where failure will occur etc. in some problems. Regardless it is always a good idea to make a coarse mesh, check when things will go south, and then refine the mesh in those “hot regions” rather than on the entire model. This does not work in all cases, but it works in some 🙂

To sum this up

  • The too coarse mesh can lead to results with very big errors
  • Mesh density analysis helps in decision how refined mesh should be used in the analysis in order to obtain results with satisfactory accuracy
  • Reducing element sizes in places where big deformations/stresses/instabilities take place, allow for greatly increased accuracy without great expense in computing time

Free FEA course!

This is one of the topics I teach on my: free FEA essentials course. Subscribe below to get it!

If you enjoyed the post you can share it with friends – that would be a great help! If you have a spare 15 seconds write a comment with your thoughts on the matter or any questions you might have. I have a good history of replying to each and every comment 🙂

Free FEA essentials course!


  1. praveen December 6, 2017 at 9:54 am - Reply

    hi, it is bit difficult to understand of ” make it bit easier “. i didn’t understand what you written so please say easier to me sir .

    • Łukasz Skotny December 6, 2017 at 10:04 am - Reply

      Hey Praveen!

      I’m sorry to hear that it is too difficult for you. It’s hard for me to describe it simpler in a post format 🙁

      I’m not sure how to help you – could you perhaps ask a specific question?

      All the best

  2. Sandeep Ramini January 26, 2018 at 9:32 am - Reply

    Can you please explain about Critical Load Multiplier and why are we using it here? I am unfamiliar with it! Thanks.

  3. اخبار February 19, 2018 at 4:44 am - Reply

    Way cool! Some very valid points! I appreciate you penning this write-up and
    the rest of the website is extremely good.

    • Łukasz Skotny February 19, 2018 at 5:00 am - Reply


      Thank you for the kind words! I’m really glad that you like it!

      All the best!

  4. Anuj som March 22, 2018 at 5:12 am - Reply

    How can we do accurate mashing? What should be the steps for this? Can you provide me the best tutorial for ansys software?

    • Łukasz Skotny March 22, 2018 at 7:50 am - Reply


      Tutorials will be of course case dependent. If you are interested you can check my examples library here:

      Especially the lantern example has around 1h of meshing tutorial inside.

      But… everything is done in Femap, and I have no experience in Ansys so I won’t be able to help you with “clicking” – only the “how to and why” will be useful to you (luckily I believe this is the most important thing, so I had the audacity to propose the examples).

      All the best

  5. Alex Araujo April 8, 2018 at 9:31 pm - Reply

    Dear Lukasz,
    my name Alex. Actually, I´m doing some examples to obtain a mesh size and estimate the error related to this mesh size. This is awesome…On your example, you calculate the same model with different mesh size on Linear Buckling Analysis…Whats the strategy for other analysis… in the model with singularities I don’t have a correct result(the infinite maybe)…How manage this issue? Nonlinear approach?

  6. BRAIN July 21, 2018 at 11:37 am - Reply

    Hi Lukasz, thanks for the explanation. I find it useful. However, I would like to know how the error “values” were obtained in order to plot the curve/chart. Thank you.

    • Łukasz Skotny July 21, 2018 at 11:59 am - Reply

      Hey Brian!

      Thanks for the question! I extrapolated the line for the answer I’m willing to call the correct one (0.6947). Knowing the “correct” answer, and the answer for a given mesh I could calculate the percent error. Does this make sense to you? I’m not sure if I understand your question properly.

      Have a great day Mate!

      • Brian July 23, 2018 at 6:42 am - Reply

        Hi Lukasz, thanks for the kind response. I understand the concept of extrapolation to obtain the “near correct answer”. My misunderstanding is how to obtain the “correct answer” for a given mesh size. I would appreciate your explanation, please. Thank you!

        • Łukasz Skotny July 23, 2018 at 8:00 am - Reply

          Hey Brian,

          I’m not sure if I understand what do you mean by “correct answer for a given mesh”. If you have a mesh it will produce an answer… there is kind of “one” answer for a given mesh… so not much to choose from. It’s the most and the least correct answer at the same time (since it is only one).

          I feel that there is something deeper in your question, but I can’t grasp it I think. Do you mean stuff like stress averaging or something?

          All the best

          • Brian July 27, 2018 at 10:37 am

            Thank you very much, Lukasz

          • Łukasz Skotny July 27, 2018 at 11:07 am

            Sure Mate!

          • Brian August 6, 2018 at 8:44 pm

            Hi Lukasz,

            I’ve read through your guide again, carefully and I understand mesh convergence study better now.

            Thank you once more!

          • Łukasz Skotny August 7, 2018 at 4:27 am

            Sure 🙂

  7. Kamal August 2, 2018 at 6:36 am - Reply

    Hi, this is kamal. I have a doubt that whether we can edit the mesh size in 3d means can we give the length width and depth. If we know the proper size of mesh can we do the exact meshing?

    • Łukasz Skotny August 2, 2018 at 9:45 am - Reply

      Hey Kamal!

      I’m not sure if I understand your question… If you have a 3D part and you want to do a mesh refinement you should change all 3 dimensions so that cubic elements are… still cubic. You may be interested in learning about the aspect ratio. There are of course ways to change all dimensions of FEA elements, but those differ from software to software.

      Was this helpful?
      All the best

Leave A Comment

Do NOT follow this link or you will be banned from the site!