There is no doubt in my mind, that mastering Nonlinear Finite Element Analysis was the biggest stepping stone of my career so far. It’s mind-boggling how much one can do and design when using such tools. But I also remember when I started in FEA, how frustrating learning is, and how difficult it is to get a handle on this topic. This is why I wrote this guide on how to tackle Nonlinear Finite Element Analysis!
While many FEA packages have a “switch” that literally turns nonlinearities “on” this is not enough! You also need to understand what you wish to do, and how to set the solver, so it can increment the loads you applied in a way that allows for the solution to converge!
So let’s dive in, and see where you should start!
All the nonlinear stuff!
I think, that the big part of being successful in nonlinear FEA is understanding what can be nonlinear in your task and if it will play a role! It’s impossible to go through everything in one post, but I want to do a decent job.
I decided to do it in a bit more robust way. Since this is not a book, I get to hyperlink stuff! This will come handy now!
The idea is simple – I make a small introduction to all of the nonlinear things that can be nonlinear in your model. It’s impossible to write everything about it, but at the end of each section, I will leave some links to articles where you can expand your knowledge on any of the subjects.
Quick note on learning FEA!
You don’t have to know everything to start! In fact such a strategy is a loosing one… since you will never know everything, so you will never start!
Instead, learn only “enough” for the first step. Then do the step! When you will do it, you will have the mental energy to learn a bit more, and do a second step. This way you can learn much quicker, and remain motivated to do so!
There are a lot of links to other articles here, but you don’t have to read all of them to start! This post contains all you need tu understand at the begining. Play with this first, and when you will feel you have a handle on things, read more, and play more with nonlinearities! Don’t overburden yourself with reading – play with your favorite FEA software instead and try to calculate something!
How this is organized:
Below there are 3 chapters on nonlinearities. In order those are:
- Nonlinear Material
- Nonlinear Geometry
Each describes the basics and links you to other useful resources (just please… don’t read all of the other articles at once! Unless of course, you are on some useless 5h meeting, or during your commute!).
After this, I will explain that there are various “stages” of nonlinearities, as not everything is doable in every software, even when it has nonlinearities. It is a useful thing to know for sure!
After that, you will learn how the load incrementation works, so you can launch your first nonlinear analysis.
And finally, I will show you a simple problem you can try to solve, to start with your nonlinear adventure!
I admit that I usually start with nonlinear geometry because this is how I got into this. But I also know that it is much more probable that you are after nonlinear material, so let’s give it a swing!
There are a lot of different nonlinear material models. I can’t even list them all, not to mention knowing them in-depth. This is part of FEA-magic BTW. You can easily be an expert in a specific niche of FEA, and this is so cool!
What I’m sure about however is, that at the “basic level” of nonlinearity this all goes about the stress-strain relationship. Each material has a stress-strain curve, usually obtained from tensile tests in labs. I will admit that it’s not easy to find good FREE research online on many materials. Sadly, you may struggle to actually find a “proper” curve. But don’t give up. If you are learning you can “guess” an approximate curve and move on. Just remember not to base your actual design on data that you guessed!
But the above problem is also, why I like steel so much. It’s a very well researched material, and stress-strain curves are well known and documented. This makes it a perfect material to start with.
A typical stress-strain curve for ferritic mild steel looks like this:
The meaning of stress-strain curve:
Stress in your material is the amount of “mechanical hurt” your material is taking. Often time, you will be interested in what is the actual value of stress, as you will need it for design. But stress is not “randomly” appearing in your model. Firstly, your material deforms, which causes strain. You can think about strain as an “amount of deformation” in any given spot of your model. High strain means there were heavy deformations in the region.
Based on the strain, you can judge how much stress your material is in. While in linear FEA you simply assume that there is a linear relationship between stress and strain, nonlinear FEA allows for more! Take a look at the chart above… only the beginning is actually linear, but ignoring the rest may not be the best approach!
Nonlinear Material – How-to
I hope that now you know, why you need a stress-strain curve for your material. To put this bluntly, FEA will calculate the deformation of your model, then it will calculate strains from those deformations. And you need a stress-strain curve to “translate” strains into stresses.
Of course, the simplest approach is to use a linear relationship between stress and strain. Linear FEA analysis does that for you, but I think we are beyond this point now.
One of the simplest “nonlinear material model” is the elastoplastic bi-linear model (often called “elastic-perfectly plastic” in literature). It works very well for mild steels:
You may consider this to be simplistic, but it’s actually not. Many codes (i.e. EN 1993-1-6) limit the amount of plastic strain you may allow in your design, effectively “keeping” you in the plastic plateau. For this model to work, all you need to set is that your material is “elastic-plastic” and provides a yield strength of your material (fy). Most likely your FEA package will ask you about the hardening slope (usually denoted as H). In such a case it is 0 (zero).
This is definitely the simplest nonlinear material model out there, so it’s great for practice. Especially since it’s extremely easy to find yield stress of steel based on the assumed steel grade! Just be aware that austenitic steels actually show work hardening (and simply put H>0). Assuming the above model you are on the safe side unless you are designing joints for plastic redistribution of load… but in such cases, you should know what you are doing anyway!
Want to learn more about Nonlinear Material?
You are in the right place! There are couple articles that may interest you:
Difference between linear and nonlinear FEA. I explain there, how nonlinearity works, and why with the linear material model you may get stresses a lot higher than the yield stress. Useful stuff if you are beginning with nonlinear FEA for sure!
4 Main nonlinear material models.In In this article, you can read about the most common material models (at least in my opinion). There is even a geek version for NX Nastran users with the keywords and all the jazz!
Difference between linear and nonlinear elastic materials. Usually, engineers associate material nonlinearity with yielding. But this is not always the case. Elastic materials (that do not yield at all!) can also be nonlinear. You can learn a lot about that in this post!
How does nonlinear material work? Here, you can learn how does yielding works. No worries there is no complex math there. Just 3 guys carrying a heavy rock, and few simple drawings. I think you may like it!
Do I need a nonlinear material Flowchart. I figured that this may be a useful thing. It guides you from the beginning to a clear decision on whether you need nonlinear material in your model or not.
Isotropic and Kinematic Hardening. While this is a rather advanced topic, it fits here nicely. If those things interest you, you can learn more about how materials react to loading past yield in tension and then compression (or the other way around). Useful stuff if you try to calculate low-cycle fatigue for instance!
I am first to admit that nonlinear geometry is “just a toggle”. Somewhere in your analysis setup, you can pick whether you want to have nonlinear geometry or not.
There are no models, nothing to choose, no specific parameters you need to set. Just an “on/off” button.
But of course, this doesn’t mean that nonlinear geometry is simple. Actually far from it! You see, when in your analysis you get stresses higher than yield you instantly know that something is “off” and you need to investigate. Nonlinear geometry does not hand out warnings like that. So don’t forget about it!
The difficulty of most nonlinear geometric problems comes with load incrementation. It’s simply much more difficult to converge a geometrically nonlinear analysis than the materially nonlinear one. But since load incrementation is a topic concerning both, I will discuss it later on!
Here I just want to mention, that nonlinear geometry is responsible for 2 things in your analysis. The more important one is stability failure. It’s like the compression assassin! Everything works just fine, and then suddenly *bum* in an instant your model is done. Often, buckling happen at stresses much lower than yield and gives no warning in a linear analysis. The second thing is the “membrane state”, which means that things can carry bending as a tensile force as long as they can deform a lot, and are reasonably supported.
Both of those can be “catastrophic” in nature if you fail to recognize them. This is why I like nonlinear geometry so much. It’s much more dark arts and mysterious (wizard!) that brute and obvious like nonlinear material (the barbarian!). I guess there is a good reason I almost always played Wizard in RPG with friends (with occasional priest or alchemist)… I think I haven’t played a warrior at all in my 10+ years of RPG “career”!
Learn more about Nonlinear Geometry
I hope I convinced you to learn a bit more about nonlinear geometry (to become an FEA wizard!). If that is the case, you will find plenty of useful resources here!
How does the nonlinear geometry works?! This is one of the cornerstone articles I did. It will explain to you how nonlinear geometry works, without going into mathematics of things.
Difference between linear and nonlinear FEA. Here, I explain what membrane stress is, and why things buckle in nonlinear geometry. A good resource to help you along the way!
Buckling analysis! This is a monster post so make sure you will fix yourself a good tea before starting! You can learn there about linear and nonlinear buckling analysis which is extremely strongly related to nonlinear geometry. I think you really should read this to get deeper into the subject.
How to approach a snap-through problem. This is a bit more advanced stuff, so if you are beginning maybe focus on simpler things first. However, it is also the foundational problem of nonlinear geometry. When you will be able to solve this one, you will “get it”. It’s a nice test of your skills! There is a challenge inside that post for you as well!
Nonlinear Geometry Benchmark. If you will want to test if you can do a difficult nonlinear geometry problem, take a swing at this benchmark. It comes from scientific literature and was tested extensively by a lot of scientists. If you can get the same outcome as they did, you know your way around nonlinear geometry for sure!
Do I need Nonlinear Geometry Flowchart?! Similarly to nonlinear material, I’ve made a flowchart to help you decide if you need a nonlinear geometry in your model or not. It may come in handy when you will be wondering about this in a particular problem!
The last nonlinear thing I want to mention here is contact. This is sometimes referred to as boundary condition nonlinearity, along with elastic supports, etc. I’m not big on “semantics” and classifications, but the point remains. Contact can be nonlinear for sure.
In most cases, you will simply have 2 elements that can “touch” each other in the analysis. It’s obvious they shouldn’t “fly” through each other, and this is what contact is checking.
In many cases, all you need to define is the surfaces that will be in contact. When you do this, pay attention to surface/element normals. Usually, contact is just “one-sided” which means that only one side of the surface will be able to touch the other surface. Usually, there is a “positive side” facing the direction of the surface normal and “negative side” facing the opposite direction. Mixing those up may mean that your elements will fly through each other, but even if you don’t know how the normals work, etc. for 2 surfaces there are only 4 combinations (positive/negative, negative/positive and 2xpositive and 2xnegative). You can really quickly work out which works on a simple problem and then use this as a base to draw conclusions on how normals work!
When you define contact, you can also decide if it should carry friction, and prescribe a friction coefficient. Sometimes it may be hard to find “believable” data, but luckily it’s defined for some materials. Just be aware, that friction also depends on how the surface is “finished”, so it will be different for rusty steel, and polished steel!
There are some settings for contact analysis to run, but there isn’t a lot of them. Converging the first analysis step (when the contact “closes” usually is the biggest challenge in this type of analysis. Since it is connected with load incrementation we will talk about it later!
I admit that I treat contact as a bit of a lesser thing. I even wrote a post on how to avoid using it, but of course, it’s not always possible. If you want to learn more, check the articles below.
Stuff on contact
When to ignore contact? In this post you will learn what contact is, and in what cases can you ignore it! It’s a good starting point into the contact realm I think!
Gap elements as nonlinear supports. Here, you will learn a bit more about contact, and how GAP elements can be used to model contact in a simplified way. If you want to use Gap elements you really should check this awesome tutorial written by Blas, who was a guest of my blog some time ago! It’s a great step by step guide you can easily follow since you can even download geometry for the problem to follow the solution along!
Do I need Contact Flowchart. I’ve made flowcharts to all of the nonlinear things, so contact got one as well. You may want to study this, to make sure if you need to consider contact in your analysis!
A case study – Impact of contact to analysis outcomes! Thanks to one of my Awesome Customers I get to share a case study. On an actual design, I discuss how various approaches to ignoring contact compare with actually using contact in the analysis. I’m convinced there is plenty to learn there!
Nonlinearity vs nonlinearity
When you are just starting with nonlinearities in your model, there are things you should know about how this is handled in software. Without a doubt, nonlinearities open A LOT of possibilities before you. But they need some additional “gear” around them implemented into the solver to make them truly shine.
I will go step by step here, and explain what is possible, and what additional things you need to have in your solver!
Nonlinear geometry for kids!
This time I start with nonlinear geometry because this is a perfect example of this! You may remember that I wrote, that nonlinear geometry covers 2 topics, membrane state, and stability. Let’s start with the membrane state!
This is something you can do in any software. In essence, just define any long slender beam. Don’t forget to block horizontal direction on both supports at each end (so this is not a “simply supported beam” as such would have one sliding possibility).
If you do your analysis with and without nonlinear geometry, you expect such outcomes:
Nonlinear geometry means, that the beam will enter a membrane state (this above is like a 10m long L60x6 or something similar). This will greatly reduce deflection, but will also cause tension in the beam (along with horizontal tensile forces on the supports).
Entering a membrane state this way can easily be done in any solver. Just “toggle” nonlinear geometry to “on” and run an analysis. And it’s done! Nice, you just did a nonlinear FEA calculation!
But this is a small thing, to be honest, and I doubt that would be inspiring enough to move on… so let’s do a trick! Allow sliding in one of the supports! Of course, we would expect something like the solution on the left (compared with the beam with both non-sliding supports on the right). Since one of the supports is sliding, there is no chance to enter membrane state… and the beam deforms like crazy since it’s too weak to “simply carry bending”!
But there is a problem! You see, the beam on the left failed! It will never stop since it’s “breaking”! And most likely your solver will throw at you a “non-convergence” error message.
The first limitation of some FEA packages:
They allow you analyze stuff, only as long as they are stable (think about it as “undestroyed”).
This is a serious limitation since you won’t be able to calculate and animate a lot of super cool phenomenons. Also, often imperfections in FEA analysis are taken from the “destroyed” geometry (post-failure). Since you won’t be able to get those… it will be hard to design something with nonlinear FEA.
While this is a serious problem (and certainly one that takes a lot of fun from nonlinear FEA!), don’t get discouraged! I worked for several years on such solver, before I could afford a better one. Practice and learn all you can. Time will come, and you will have access to a better soft – and then you will be ready!
While analyzing failure in FEA, and making those awesome failure animations is great, understanding what you are doing is far more important! But of course, you may already have access to a solver that can analyze post-failure problems. All you need is one simple analysis “type”:
Solution to this limitation?
In static analysis, “all” you need is Arc-Length. This may be called “Riks” or “Crisfield” or simply “Arc-Length”. If you have that, use this setup, and you should be able to calculate the above example!
In dynamic analysis you will like to have implicit and explicit solver (at least one of those, preferably implicit to start).
Having any of the above makes you “covered” in this section!
With arc length, and nonlinear geometry you can instantly do wonders like this:
This is one of the most complicated problems called “stan through, snap back”. There is only one concentrated load in the middle and it is always downward. The reaction of such a shell is awesome and hypnotizing, isn’t it? If you want to take a swing at this problem, you can learn more here! This challenge is also a great insight into what “stable” means, and why solver can throw a “non-convergence” message at you!
Nonlinear material that I need!
Nonlinear material is quite similar when it comes to what is possible and what isn’t. I must admit that I’m lucky because I’m mostly interested in steel and other metals. Usually, a simple elastic-plastic material model (with or without strain hardening) is all that I need. I said “lucky” because this is the most common nonlinear material type, and when solver claims that it rocks “nonlinear material” the elasto-plastic model will be there! Of course, this is great, because it allows you to do something like that:
But of course, this is not all it is right? Far from it! You may want to have hyperelastic stuff, or some Drucker-Prager or Coulomb-Mohr soil stuff, maybe include some strain rate effects, etc. There are many material things that may interest you. The question is: does your solver support all of them?
Reality is that most likely “no”. It will include “some” of those for sure, but it is best to check if the ones that you will need are “in”. This is another limitation of the nonlinear solver. While it may support “some” nonlinear material (usually the elastic-plastic model with von Mises yield criterion is the “default”) it may not have the tricks to use the model you need!
The second part of the problem was already mentioned. It would be great to see how your model behaves “post-failure” just as in case of nonlinear geometry. This is where arc-length come in handy, but we already discussed this so I won’t go there twice.
Stay in contact!
Contact has a life of its own! First of all, there are a lot of things in contact you may wish to have. Contact delay, super complex friction models, damping and all that. I confess that I usually simply use “contact with friction” so this is again a rather simple formulation. This means that if the solver claims that it supports contact, what I need will be there…
… well, kind of. This was a cold shower for me, but this may not be the case! You see, your contact can work only in linear analysis, while you cannot use it in nonlinear one! This is the case for Femap “basic” license. While it’s true that you get a solver that can handle nonlinear geometry, material, and contact… you can’t use them all at once! SOL 106 (basic nonlinear solver) simply does not support contact – you need an “advanced nonlinear solver” (sold separately of course) to be able to use contact in nonlinear analysis.
So check both, if the contact supports what you need (usually at the start friction will be enough!), but also if you will be able to use contact in the analysis that you want to use it with!
I’m not sure where you want to start, but my advice is: “start small”! Don’t try to converge the model that is super highly nonlinear, with weir material model and 7 different contacts at the beginning! It’s just too much. And by simple I’m not thinking about the model above. Start with something super simple – 2 plates, or a single connection for contact!
I’m a big fan, of doing simple things first, and this is how I learn. So if contact interests you, do an analysis with contact. In case of nonlinearities, try one first (like nonlinear material), then try the second one (nonlinear geometry) and when both work, try to connect them into one analysis run (nonlinear geometry and material). This way, you will always know “where you are” and what is not working. It will be also way easier to ask questions and get help!
I know that the list above may suggest that you should use all at once, and trust me you will in time! Just spare yourself some frustration, and start with simple models first. You will have your first successes quicker, and those are important for sure!
The final thing that is left for us to discuss here is how the solver handles loads.
I admit that load incrementation and iteration of the solution is a super big topic. I won’t go into details here. All I want is to tell you is how to start. Also, please belive me, that you will be completely fine not understanding how your solver iterate your model (mathematically speaking). Sure it is great to know how this works on an abstract level (so you can react to this properly). But understanding math is unnecessary… at least for me!
Did you notice that I usually show outcomes of nonlinear analysis as an animation? If you would think about it, that means that I get more outcomes than just “one picture”! In case of linear analysis, you just get an outcome that is a single picture (I’m aware that you can “animate” it from “zero” to “full load”, but looking at some of the gifs above you must be certain that this is not what I did!).
This shows the true nature of the nonlinear analysis. It’s not a single solution… it’s a “set” of solutions on various load levels. Those load levels start from “zero” load and end at “full load”. But, this is not a “linear” scale as in the case of linear analysis. Since your model is nonlinear, some of the intermediate outcomes can be super different than others (below a few steps from a geometrically nonlinear analysis, undoable in linear FEA!):
But how does this work? It’s actually quite simple! Think about your analysis like about car travel! Linear analysis is like a super straight, well-lit road: you just press to the floor and you are at the end. No turns, no way to get lost, no problem – you just know you have to go straight ahead, so you don’t even check that along the way. Driving along a straight line is super simple. This is why linear analysis computes so quickly!
But in nonlinear analysis, you don’t see the road! You suspect that there will be turns, but you don’t know where yet! So you drive slowly, and you often stop and “look around” to spot if you are still on the proper road. If the road is just a slight arch, it’s not so bad. But all the abrupt changes can catch you off guard. This road is called a “stability path” and you can see one below:
Each stop along that dirt road is a load increment in your analysis. In linear static, you just did one step – straight to the finish line. In the nonlinear analysis, you want yo apply your load in several “steps” so your solver can stop along the way and “look around”. The more steps you will do, the less likely it is for the car to go off the road. But when it does, the solver will circle around to find the road again. This “circling around” is called iterations.
If you apply a load step, and solver find the model out of equilibrium it will search for a proper place on the road. When it will find it, then the travel continues. If it won’t find the way again… it will throw a “non-convergence” error at you. This error just means “I’m lost and I have no idea how to proceed!”
It’s pretty difficult to give you “generic” advice on how to increment loads. This is of course model dependent. But if you are in doubt start with 10 or 100 increments and see what happens. If you get a non-convergence message, try increasing the number of increments (more stops along the way) or allow for more iterations per increment (solver will be able to circle around more!). But if you reach the capacity of your model, there isn’t much you can do about it, apart from using an arc-length method. You can learn more about this problem here!
This is more or less it! Whenever you set up the analysis don’t forget to request 10-100 increments of load, and hope for the best. In time, you will know yourself perfectly well how many increments do you need, etc. This is where experience comes in handy, but of course, you must start somewhere to get it!
A good starting point!
So where should you start? No worries you are not alone in this! I think that the best models to start are those that are “stable” even after nonlinearity “happens”. This is why plate under tension isn’t great…it will yield on the entire cross-section, and what then? The solver will have to do a lot of heavy lifting to move from there… causing you a lot of frustration!
A humble beam in bending is a much better choice! Just model it in plates, and support the entire outline of the cross-section at both ends. This makes is a “fixed” beam on both ends – a really stable system! With a relatively thick web (h/t = 20 let’s say where t-web thickness, h – web height) with a simple uniformly distributed load you should get something like this with nonlinear material:
What is great is, that even if you completely yield cross-sections at the ends… this is still stable, so you shouldn’t get “non-convergence” messages at all! This is a really nice place to start practicing nonlinear material!
Similarly, you can test nonlinear geometry as well. I already described the simplest problem (the 10m long L60x6 cross-section) but this one is a bit more “flashy” if you want to impress someone. You know, you walk to that awesome girl ant the bar and you can instantly charm here with the story of web buckling you just solved!
This time, however, you will need to make the web “slender” (like h/t = 300) and load the web out-of-plane with 1Pa of horizontal pressure (just to slightly destabilize it). Note that 1Pa is a super small load, but it’s needed for this to work!
If you don’t have to yield in your model this is stable after web failure. Again a perfect example! Solving those two will prove to you then you can do it! And then, it’s just playing with what you already did with more and more difficult problems!
Of course, without much problem you can set small support in the middle of the beam, to practice contact there as well if this is where you want to start!
When you manage to solve one of those problems definitely go to the FEA Guild (our Facebook Group) to share your success! Can’t wait to see you there!
I really do hope that this will help you to start with nonlinear FEA! Sure, this is just the very beginning, but trust me this is the most important part! I remember well, that when I converged my first nonlinear analysis, I was hooked! And without a doubt mastering this will help your career so much as well! It’s really worth to learn this!
We covered a lot of ground here, so I’ve made a small recap for you!
- Stuff is nonlinear! You’ve learned here, that geometry, material, and contact can make our analysis nonlinear in nature. Some of those effects can be approximated, but in general, it’s best to analyze the nonlinear problems in nonlinear ways! This article is filled with a lot of links to other resources, so when you feel you are ready to learn more to expand your knowledge. Just don’t read all at one go! It’s critical for you to experiment and try your best at solving nonlinear problems as you go!
- Not everything can be done in all software packages! Yup, that is simply true in most cases. Check what is doable in your FEA package! It would be great to have arc-length, nonlinear material, and contact (I assume you will have nonlinear geometry, it’s rather standard those days!). But be aware that even then there are limitations to various material models, contact working only in linear analysis in some software, etc. If in doubt reach out to your software provider and ask them about this all. And make sure to research this before you spend your money on new FEA soft!
- Divide the load into small increments! You want your solution to remain “on the road” when you perform nonlinear analysis. Dividing the load into small increments and allowing for a few iterations per increment to help with convergence!
- Start with something simple! I’ve shown you an example you may try to solve or aim at something different. Just remember that it is best for the model to remain stable after the nonlinear effect you are after “happens”!
Good luck with your learning! If you like the post, don’t forget to share it with your friends! I will appreciate your comment as well of course!