Nonlinear geometry benchmark

During last week I’ve posted a tip in the FEA Guild about using Benchmarks. Some great pointers were in the comments, but one got my attention the most:

While there is no chance that I will build such database myself, I’m pretty sure we have a chance of making one together! I will try to add some benchmarks from time to time, for various problems. This way, when you will learn, you will have a chance to check if what you do “gives” correct answers.

If you have some examples solved in FEA, that would be good for this purpose let me know (, or in the comments below). Building such a database really would help us all!

I couldn’t create a benchmark from the scratch in a day, but I dig out a benchmark I had in the archives and refresh it a bit!

Let’s roll!

When it makes sense to do benchmarks:

  • You try to solve a problem of a different kind for the first time or after a long break!
  • When you bought a new software package or created one yourself.
  • When you are just learning about something, and you are not sure if what you are doing is correct.
  • Or maybe you have come up with a new approach to solving nonlinear problems and you would like to validate it.
  • It’s also possible that you just opened silo code EN 1993-4-1 and have no clue where to take the required comparison outcomes from.

In all of those cases making a benchmark is a good idea.

What is benchmarking?

If you have never met the term before, to do a benchmark means to solve a problem you already know the solution of (and that you are certain of it). This way, you can test your FEA setup, and hope that it will produce correct answers. This way, you may be sure, that the procedure you will use in other, similar problems works properly!

There are of course benchmarks for a lot of problems. Today I will discuss one for geometric nonlinearity in shells. This is most likely one of the most famous tests, widely used in a lot of scientific papers! It was originally published by prof. Rotter in 1989, but since then it was done and re-checked by a lot of people doing shell design.

Weld Type A

If you are interested original text it was published in Journal of Structural Engineering, Vol. 115, May 1989. It described a popular imperfection shape caused by welding depression dividing this shape into “Type A” and “Type B”, hence the name of the benchmark (as well as one of the popular imperfection shapes used in the design of shells).

The problem itself was described very well and easily allowed for reproduction of this analysis, which is one of the reasons why it became so popular. The original text discusses outcomes from analyzes using those imperfections, but here we will focus on a specific case described in the paper (there were several there).

The task!

Create a shell model with the length to radius ratio L / r = 3. Radius to thickness ratio of the shell is r / t = 1000. Material is linearly elastic with E = 200 GPa and Poisson’s ratio v = 0.3. Shell is simply supported at ends (S3), and even a mesh size is defined in the region of imperfection as 0.25√(rt).

This means that you can pick a lot for yourself. Just to give you an example, it may look like this:

At the top, you can support translations in horizontal directions, while at the bottom all 3 translations. If you want to use a cylindrical coordinate system, just remember to “point” Z-axis as I did here and all remains the same!

Naturally, load goes at the top edge (directly downwards). Value doesn’t really matter (you will do a post-failure analysis anyway). Just make sure it is higher than capacity. If you don’t know where to start, expected capacity is around 37kN/m. This means that the load of 50kN/m on the top circumference (directly downward to cause compression) should do the trick. You will see later where I got this from : )

Looks innocent right?

In all honesty, I hate symmetrical uniformy supported shells! They always give trouble with convergence. Analitically, discretely supported shell is almost impossible to solve… but in FEA it’s actually the easier case!

This is of course not the end of “fun”. After all… we are missing the imperfection!

Weld type A

As in all scientific research, there will be equations!. Imperfection amplitude is given by:


Where: weld-a-1b is the imperfection amplitude (it this benchmark equal to t, so in the “example” I’ve described above that would be 0.001m or 1mm). The “x” is a coordinate along shell length (x=0 in the middle of the shell where the imperfection is applied).

This means that the imperfection has a maximal amplitude in the middle of the shell, and it changes starting from the middle in both directions!



All of the equations above came straight from the paper. Originally an “x” coordinate is used for imperfection distribution. This is a bit unfortunate (as most likely you will have an x-axis in your model, and it won’t “fit”). Just to avoid confusion, this is how imperfection should be located:

It’s worth noticing, that the paper already suggests element size near the imperfection (this is the “important space”). So there is no need to do mesh convergence study. Just make elements near the imperfections QUAD4 squares with the edge length of 0.25√(rt). In our case that is 7.9mm. This means you will have around 800 elements along the circumference. That is quite a lot, don’t be surprised : )

This is a “scientific paper”, so everything is made dimensionless. But we already assumed a lot of dimensions (see the drawing above). This means, that I can actually calculate the equation, to show you how the imperfection will look like in our case:



The “x” coordinate in the vertical axis on the chart is the one shown in green on the drawing above. Maximal deformations are in the middle of the shell. Also, maximal amplitude is to the inside (this is why radious is smaller than 1 in that direction).

The challenge

I think it is self-explanatory at this stage. You should implement such a shell with such imperfections and load it as we discussed. The task is to calculate the critical capacity of the shell… so the load under which the shell will buckle.

Note, that you should use nonlinear geometry, but elastic material property (material is elastic)!

This is when the benchmark starts. If you want to test your “nonlinear geometry skills” give this task a swing. I admit it made me sweat when I attempted it for the first time! Good luck!

If you don’t know how to implement such imperfection to your model, I discuss this first below – you can peek there without looking kudos I guess!

Imperfection how to!

There are several possibilities on how to implement such geometry:

  • The easiest is to draw such chart into your CAD software (this can be easily done with generated point coordinates in Excel), and then copying such line into your FEA package and creating shell by rotation of this line along the axis of the shell. Just pay attention where the line is and around which axis you will rotate it!
  • You can simply do it manually. Sure, it would take a bit of time, but not as much as you would think! Just calculate the coordinates, insert points and you’re done : )
  • Some time ago I wrote a script that manually generates such weld depression on a given height in a shell, but this is mostly since I use it as imperfection in some shell designs. If you wish to make a benchmark only – then there is no point in making such script, just import the lines from CAD software and you’re done.

Proper outcomes:

With your model ready (remember to apply the compressive load at one of the ends of the shell, define geometrically nonlinear analysis (I have a post on how to do it). Then run the analysis and draw a stability path (you can read about it here). The outcome should look like this:



I went’ “scientific” in the charts – yours can be simplier. The idea here is that the delta (horizontal axis) is the vertical deformation of the top edge of the shell. On the vertical axis, you see the stress I’ve got, divided by the “theoretical” critical stress according to Timoshenko equation. This is how the benchmark is solved “oryginally”. I will describe how it is done below!

In your case, you can simply plot the “load” at the top edge. In that case, the “turn” on the chart should be around 37kN/m : )

If you have defined more steps, the post-critical path may be much longer. Usually, when I do benchmarks I tend to leave only a few increments after failure which is quite easy… since I know the outcome from the start! This saves an enormous amount of computing time!

Side note:

This is also a very good example on how to use subcases. Notice that at the start I only have few “dots” on the chart. I knew nothing will happen there, so I allowed solver to go “quickly”. Then, near the capacity (I knew the outcome before I’ve started so I could set that manually!), I’ve made the steps much smaller, so I could “catch” the proper outcome! This is however not the main “issue” here.

Science and all the jazz

As promised, a small discussion on what exactly is on the vertical axis : )

Clearly, this is not a load multiplier, nor load, nor even stress! The outcome of the paper is given as a “non-dimensional” value.

Stand back, I’m about to do science!

For reasons I can’t really explain it is believed, that outcomes provided in relation to other outcomes are more “scientific” than outcomes given in MPa, kN or m. I never understood it, but this is how it is. Theoretically, it helps, as you can take a look at the study, input your data and calculate something. But I think, it just makes stuff more difficult to understand : )

With this note, the outcome is a relation between compressive longitudinal stress in the shell denoted as weld-a-9 (simply edge load in kN/m divided by shell thickness) and “classical” stress.

The “classical” stress was derived almost 100 years ago, and relates to buckling capacity of a perfect shell supported uniformly on one edge and uniformly compressed on the other. In fact, this is the only “solved” problem for vertically compressed shells… and I love how prof. Rotter refers to it as “classical” rather than “Timoshenko stress”. It gives a nice perspective : )

The equation for this value is used in all codes for shell buckling:


And in our case this is:


So, on the vertical axis of the chart, you saw a value that should be calculated in a relatively simple way:

  1. Check what is the circumferential load applied in any given analysis step
  2. Divide this value by shell thickness (in this case 0.001m)
  3. What you obtained, divide by 121MPa
  4. This is what was drawn on the vertical axis, and this is how the outcomes in the paper were originally presented

The original outcome is:


The “actual” outcome

Ok, I’ve promised you that I will show you how I got the outcome I gave you at the very start. I mean, you most likely know already, but I will do the math here, so you don’t have to : )

Since the outcome is:


I can calculate that the weld-a-9 is 121MPa x  0.306 which gives 37MPa. That is the compressive stress in the vertical direction in our shell. Knowing that the shell is 0.001m thick, I know that such a compressive stress will be caused by 37kN/m of longitudinal compression (force along circumference). This is how I knew that the capacity is 37kN/m, and this is also what you can have on your vertical axis of the chart… if you don’t feel like getting the scientific outcome!

And finally, the shape!

There should be 18 complete buckling waves around the circumference. Of course, the deformations on the animation below are crazy out of scale: 750 times higher to be precise. To avoid such a big scale I would have to calculate much more of the post-critical behavior… and I don’t like to waste so much computing power : )

This is it!

If you received the same outcome… everything is fine – you did a correct job! If not, try to tweak your analysis settings and, check if the model response you have received is symmetric (it should be, if not something is wrong in the model).

And if everything else fails, make sure that the actual shape you are using is correct!

Let’s make this a challenge – if you will manage to solve this, make a small screenshot with your solved model (and the chart) and send them to me. I will add you to the hall of fame!

Want to learn more?

This is a really neat nonlinear problem. If you want to learn more about nonlinear analysis, be sure to check my nonlinear FEA course. It’s free and waiting for you below:

Free nonlinear FEA course!


  1. Vijay August 10, 2018 at 4:22 pm - Reply

    I trying to understand how you obtain 18 circumferential full waves as using n=0.909*sqrt(r/t) gives approx. 28 full waves for your geometry. Can you elaborate?

    • Łukasz Skotny August 10, 2018 at 4:39 pm - Reply

      Hey Vijay!

      I guess you are using some form of the equation to estimate the amount of buckling waves along the circumference. But I highly doubt someone actually derived an equation for this case… which means this is most likely for something else. Remember that the imperfection can (and will) influence the amount of buckling waves you get. You can also check the animation for the outcome, or simply read prof. Rotter paper.

      All the best!

  2. Vijay August 10, 2018 at 5:27 pm - Reply

    well I actually did your benchmark given above using the same geometry and material properties and I get a snap-thro at P/Pcr = 0.34 (pretty close to what you have!) and I get 28 full waves in the hoop direction at the onset of buckling. I’m trying to reason out why you obtain 18?

    • Łukasz Skotny August 10, 2018 at 5:37 pm - Reply


      Well… there may be a lot of reasons – first of all, we didn’t get the exact same answer – this is the most obvious one I guess. Assuming you have the model right (and why wouldn’t you, but just double check for sure), this may be related to a “too high” time step in the analysis. I’ve seen such things before, especially if the entire circumference of a shell fails at once.

      I hope you will find the solution!

      • Vijay August 12, 2018 at 11:42 am - Reply

        Hmm… You estimate the capacity of the shell to be 31% of Pcr and I estimate it to be 34% of Pcr. To me that is within engineering accuracy. Unless we happen to use the same software version, same element type/topology, same integration rules, etc etc, I’m would be satisfied matching the load carrying capacity of the shell in your benchmark to engineering accuracy.

        Since you say this is a benchmark problem how woiuld you cross-check the circumferential mode number that is obtained from FEA for this axi-symm imperfection? Can you post the reference?

        • Łukasz Skotny August 12, 2018 at 6:22 pm - Reply

          Sure, it is within engineering accuracy – I absolutely don’t argue with that. But then… why do you worry so much about the number of circumferential buckling waves if you are for engineering estimations?

          That being said the benchmark pretty nicely describes the element used and all that. And the reference is in the post itself. It’s the prof. Rotter article published in Journal of Structural Engineering, Vol. 115, May 1989.

          All the best

          • Vijay August 13, 2018 at 7:36 am


            why do you worry so much about the number of circumferential buckling waves if you are for engineering estimations?

            As for an imperfect shells, the critical mode is moderately well defined (though a few adjacent modes are often close) for a given imperfection form and amplitude. Thats why!

            Anyway I’ll look out for your source on the critical mode number definition.

          • Łukasz Skotny August 13, 2018 at 11:15 am

            Dear Vijay!

            I must admit I don’t fully understand where you are going with this. I feel we are running in circles.

            Yes, in shells the number of buckling waves is usually quite nicely defined. But also as you yourself wrote few adjacent modes are close to each other. You got a close “but not perfect” outcome… so most likely you have just hit one of the adjacent modes with a different amount of buckling waves. For me, this is a closed case.

            I already provided you with the source of all the information. Amount of buckling waves is defined and described (for a lot of similar cases of this imperfection, and the one I’m describing here specifically) in the original paper of prof. Rotter. In this article professor simply describes how many buckling waves are there for various r/t ratios and imperfection amplitudes and the critical load value correlated with them. This is where I knew from what is the correct answer and the correct number of the buckling waves (not to mention that I did the case myself and got the same outcome). Without you reading the original article, there is no point in discussing this further. And, if you don’t trust in the article itself (and all the people who reproduced this case, and trust me there were plenty of guys far better than me doing that) I think it is you who should try to prove that it is wrong – if you can come up with something interesting (like a proof of some sort that this is false) I would gladly discuss it, but until then I don’t think I can add any more to this discussion.

            Have a great day

          • Vijay August 14, 2018 at 5:23 pm

            I kinda of thought when I said earlier “Anyway I’ll look out for your source on the critical mode number definition.” I meant to drill down into your source article to understand its conclusions in greater detail and understand my mode number mismatch. Thats is all. I obviously have no intention of wasting both our valuable time in ‘going round in circles’.

            good day and thanks for the article!

          • Łukasz Skotny August 14, 2018 at 11:48 pm

            Hey Vijay!

            Och ok – in that case, this is a misunderstanding. By all means, read the article (it’s a good one as most if not all prof. Rotters) and give it as much thought as you think necessary. When you come to conclusions I would love to learn about those, so we can discuss this further. On that note, have a blast, and good luck with figuring stuff out.

            I remember when I was doing my Ph.D. that such “sitting over articles” was quite fun (but often frustrating at times). I sometimes regret that I don’t have enough time between the company, blog, online course and 4 kids to do that anymore. I always promise to myself that I will read those all new articles as I used to do, but I wonder if this will ever happen. I’m a bit jealous you have the time for such inquiries – without a doubt, you will learn a lot this way!

            Have a blast!

  3. Denis August 11, 2018 at 11:03 am - Reply

    This tube example looks unreal. Usually those kind of thin wall tubes are suffering of cripling. Bucling is not critical for sure.

    • Łukasz Skotny August 11, 2018 at 7:17 pm - Reply

      Well… I can’t really discuss your opinion. If this looks unreal to you I can only say ok, I understand. Luckily the whole thing is not my idea, but a guy who is SO MUCH better than me, that I’m simply confident in this 😉

      I’m not sure what failure mechanism you describe as “cripling” – would you care to elaborate?

      Have a great day!

      • Denis August 11, 2018 at 9:51 pm - Reply

        Hey, thanks for answer! Well I don’t question those guys and their ideas. But let me show you my experience and reveal some imperfections of this example. So crippling is a failure whiсh accompanied by distorsions, local bucklings, local plastic deformations, etc. And it is point of no return. After it structure is not capable to carry load anymore. Please see the video with coke can below. Especially the moment of failure (with 0.25x speed mode).
        By the way if can’s wall thickness was thicker this effect would be more visual.

        Also I’d like to add one more video with the similal failure

        Thanks and have a perfect day!

        • Łukasz Skotny August 12, 2018 at 11:11 am - Reply


          Well… for me, this looks like a normal stability failure (aka buckling). Sure it happens in few places depending on the initial imperfections, but I still would call this buckling. Perhaps I simply don’t know something… but I still don’t get what that crippling is – I simply never encountered the term before!

          BTW in the ideal shell with one imperfection (like in the benchmark) I would say that the failure mode would be around this imperfection.

          Is there a place I could read something about crippling? Some scientific articles or something?

          • Denis August 12, 2018 at 6:22 pm

            Well, the only one legal sourse which I remember is Michael C.Y. Niu, Airframe Stress Analysis and Stress, chapter 10.7

          • Łukasz Skotny August 12, 2018 at 6:49 pm

            Hey Denis!

            This looks like an interesting book – I will have to give it a read one day, but I did check chapter 10.7 you referenced. It was stated there that:

            Compression in members can cause local instability failure (usually referred to as crippling).

            I admit that I have never met the term crippling, but this may simply be the aviation industry term. However, the local instability is what we observe here… so it seems we were talking about the same thing all this time 🙂

            Do I understand correctly that your doubts come from that fact that this is a very localized failure (i.e. on one height along circumference)? Failure of the shell like that could easily happen like the one you mentioned in the videos you linked too… but that would require a different set of “random” imperfections, not only this “idealized” welding depression and nothing more. Perhaps this is what we should have discussed in the first place? Let me know what you think!

            BTW you mentioned *legal* source as opposed to *illegal*? I mean is there an underground ring of scientists doing black market research on stability?… Now that would be something :p Bah! Maybe I should form my own illegal research facility? I could be an underground artist just like so many musicians at the start of their career 😀

  4. Denis August 12, 2018 at 9:53 pm - Reply

    Yep, probably you are right, that it is aviation industry term, we called this thing slightly different when I studied in university. In my opinion this is a set of plastic buckling failures across entire detail which cause plastic deformations and lost of compression capability of whole detail.
    By the way look on figure 10.8.1 in Niu book. You will see that crippling is critical failure mode for patterns with low flexibility.
    Ha-ha loool )) Legal means open source. Because at work I usually use internal documents / manuals regarding this topic and can’t share them.

    • Łukasz Skotny August 13, 2018 at 7:21 am - Reply

      I don’t think that in such a slender case plastic stability failure would be dominant (maybe if there were stress concentrations introduced somehow). But this is partially unimportant as this benchmark is for nonlinear geometry and linear material 🙂

      Who knows… maybe one day I will have that stability research underground – that would be fun 🙂

  5. Alex Immanuel Thainese November 29, 2018 at 7:57 pm - Reply

    Can you post of a video of the same problem or atleast provide a link of the FEMAP file / Rstan file which you used for this analysis??

    • Łukasz Skotny November 30, 2018 at 6:34 pm - Reply

      In all honesty… I don’t have that model anymore. Sadly GNA benchmarks tend to take a lot of disc space due to a lot of steps being done in the analysis, and this has some serious element count as well… so I don’t keep them around.

      I want to make an example database at some point, but honestly, it will take months if not years so bear with me 🙁

      All the best

Leave A Comment

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