Today’s post is a video : ) In it, I will discuss various approaches to snap through problems with nonlinear FEA analysis. Understanding this was a stepping stone in my career. I really hope it will be just as useful for you!
Takeaway:
Let’s sum up what I talked about:
What is steering? When you load your model with an active force, the solver will increment this force in nonlinear analysis. This would be the “force steering” – the force is being incremented. If you load the same model with displacement then the solver will increment that displacement. That would be “displacement steering”. You can also use an “arc”. This is neither force nor displacement steering, it’s more like “both at the same time” approach. A really useful thing in snap-through problems : )
Steering with force in buckling problems isn’t the best idea. There will always be a local maximum where the model capacity is reached. It is very probable that you will get a non-convergence message in that place. Sure, if it happens much after the load you need to apply to your model, that this is a good indicator of capacity… But do you really want to use solver error messages as guides in your design? I know I did for some time, but it’s not the most pleasant way of doing engineering. Especially since you are losing some useful data (like where the model failed and how the failure looks like).
Steering with displacement can help. It won’t always help, but often it will. It only depends on the post-critical behavior of your model. If the stability path goes smoothly forward after failure – you are good to go. However, in some problems (like shell buckling) stability path may want to decrease both load and displacement at the same time. In those cases, arc length methods are your only option.
Switching between force and displacement steering. Sadly, this is not as simple as it sounds. I mean, all you need to do is to implement load as an enforced deformation or as an active load. This alone makes it. But how to switch from one to another? For a single concentrated force this is easy… for anything else: read this post about it : )
Arc length methods. When you deal with complex buckling problems those will come in handy! There are many algorithms you can use. The most popular one would be Riks (or modified Riks). In Femap, I also have Crisfield algorithm implemented. In all honesty, they produce very similar results. To the point where is some software, it is simply called “arc length” without even showing which algorithm will be used 🙂
As I mentioned in the video, by all means, try to do this in your favorite FEA soft. If you manage to complete that, please let me know (and send me a gif with the failure mode!). This would be great.
On another hand, if you get stuck at something, you can always ask for help here: [email protected]!
Just so it’s more convenient – Model data:
Hall of fame!
I must admit that I haven’t expected that! Big shout out to Boris Jakimov, who sent me his model in hours after I posted the challenge!
Awesome job man!
The model Boris made:
Want to learn more about nonlinear FEA?
Great! I have a free nonlinear FEA course for you! You can get it by signing up below this post!
I have over 10 years of practical FEA experience (I'm running my own Engineering Consultancy), and I've been an academic teacher for a decade. Here, I gladly share my engineering knowledge through courses, and on the blog!
I have just been going through the tutorial and managed to recreate the case pretty quickly but did take some time to tweak the parameters in the non-linear analysis section of the NX-Nastran input to get it to not jump too far.
The only other comment that I have is that we routinely use the CQUADR elements for linear analysis as it prevents the use of artificial stiffness using K6ROT. For others who routinely run linear analysis it is worth pointing out that the CQUADR and CTRIAR SHOULD NOT be used for non-linear analysis as it produce completely different results.
I would have thought that it should convert to a CQUAD4/CTRIA3 automatically giving an appropriate warning or give a fatal error and stop. Carrying on running and giving a completely different different answer is not a good default option!
(It may be worth adding information on the CQUADR/CTRIAR elements to your element blog page as they do have their uses especially for dynamics/vibration).
First, thanks to Lukasz for this wonderful resource. It has been very useful.
Second, regarding the example for snap-through/snap-back chosen here, I would like to share this interesting literature:
Wardle, B.L., 2008. Solution to the incorrect benchmark shell-buckling problem. AIAA journal, 46(2), pp.381-387.
This work demonstrates that the effect of imperfections has a very big role to play in deciding the nature of response after instability. The snap response is specific to a perfect shell. In case there exist any imperfections, the structure undergoes a bifurcation (instability) exhibited at a load lower than snapping load.
I guess that Mike's response (in the previous comments) depicts a bifurcation response. In this case, the imperfection could be due to an eccentricity in the applied load (maybe not at the exact mid-point). Anyway, the response curves are strikingly similar to that shown via experiments and numerical methods in literature given above.
On a side-note, we have also observed similar results of bifurcation for imperfect structures via our in-house codes.
In any case, I just wanted to mention the interesting possibilities of nonlinearities and also imperfections in a stability analysis.
Thank you for dropping in! Indeed, imperfections will always impact the outcomes. And I agree that even in cases like this one, it would be visible. The problem with imperfections is I guess this is much more an "art" than "science" in practical engineering (where you don't have the time to investigate 126 different imperfection patterns to be sure you've got the worst ones in your analysis!) - but this absolutely doesn't mean you shouldn't use any :)
Of course, the example in this post is just a "famous benchmark" - and the aim was for someone to check if they can replicate the analysis. Adding imperfections would make things more complicated, and wouldn't make the challenge "different" in nature I feel.
But, I must admit that maybe I should add some "remarks" in future posts that would say something along the lines of "look, this is much but it's not all, never forget about: X Y Z in your actual designs" or something. I feel that many people would feel as if I'm "babysitting them", but I will think on this more. I don't want to get people in the trouble, that is for sure!
If you don't mind me asking, which solver (106 or 601) did you use for this analysis? Also, is there any chance you could give us a peek on how you did the load increments or subcases (when not using the arc-length method)? :)
Really cool post, btw. I really enjoy your work. I have spent a majority of my day browsing and reading about nonlinearity on enterfea :)
I used SOL 106 on this. It's funny, as I actually just finished recording this example with all the setups and some discussion on incrementation for my new nonlinear FEA course. Embarrassingly the course doesn't even have the landing page yet, but if you would be interested you can go and sign up here: https://enterfea.com/nonlinear-fea-project/ (regardless of what you will choose, this is so out of date :P) - it will at least keep you in the loop :P
Sir i am new with Non linear FEA and I want to generate the force vs displacement graph for a curved beam for the negative stiffness region. I am performing it in static structural in ANSYS but am unable to get the graph. Can you help me?
I'm not an Ansys user, but this shouldn't be difficult. I mean, there must be some sort of "charting" tool in Ansys. But even without it, you should be able to do it! Since you are performing a nonlinear FEA I assume you have several "outcomes" for different load levels (depending on how many load increments you have set). If that is the case, then simply open each of those steps and read the displacement in the place that you wanted to have on your graph. So you have a pair of data-points (load equal to the load applied in the given step, and "matching" deformations). This is a point on the graph! Do that for each load step and put into excel, and you have the graph!
I'm sure there is an "automated" tool that does this for you, but even this way it's "doable" (but a bit irritating if you have set like 500 load increments or something). If you have a lot of those... you can always use every second, or every tenth or whatever to speed the manual work :)
Nice work Mike... it's astonishing that you managed to converge that ;)
It looks to me like you are using a "typical" nonlinear analysis with enforced deformations but the vector shows "force" not enforced deformation so I can't be sure.
Clearly, there are some issues in the "unstable part" (as they should, after all, this is why that is an unstable part!), but overall a really solid step!
I have used this method for analyzing buckling of shell-pipes under negative internal pressure :) In Abaqus its called Riks (or modified Riks) algorithm. It gave really good results!
Thanks for this lesson, and thank you for making it so much fun! Wish I had access to all the courses. But I am still a student and cannot afford it yet. :(
Nevertheless, I love the blog! Keep up the good work!
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.