Shell Buckling Analysis

Hi all!

I’m working on a shell I-beam buckling analysis. I’m having trouble making heads or tails of this. I suspect the issue may be with with the rigid bodies I’m trying to set up. I want the beam face at the support end to act as a pinned joint about the Y-axis, the support at 1 meters is rotated 45° and fixed only in the local coordinate system’s Z-axis. This is supported with a rigid link to a 500 mm edge at the middle of the top flange. The reference points near existing nodes are offset by ≈ 1 mm so there should be no interferance.

The point load Q is to be placed at the free end at the tip of the bottom flange. I can’t seem to be able to get a sensible result from the buckling analysis. I was excited because I initial input the critical moment and got a buckling factor of ≈ 0,97. However, I get the same kind of result regardless of the point load at the end.

Any support would be much appreciated!

Mcr.pmx (8.4 MB)

It might be better to specify a unit load for linear buckling analyses. Also because otherwise CalculiX may miss the first buckling mode: First buckling mode skipped when applied load is much bigger than buckling load · Issue #74 · Dhondtguido/CalculiX · GitHub

There are known CalculiX issues with shells too (due to their internal expansion to solids). It’s often better to try with solid elements when encountering problems like that. In PrePoMax, it’s really easy since you can use the Thicken Shell Mesh tool to quickly create a solid mesh from your shell mesh. Some analysis features have to be redefined though.

1 Like

Hi,

It’s good practice to first run a frequency analysis to check there are no rigid body modes or disconnected parts that will mess the Buckling analysis.

Additionally, I have experienced some Buckling analisys problems with shells and offsets in the past. I would try if removing offsets solves the problem. If yes, then I would go to solid elements as workarround if you need that extra accuracy.

1 Like

Thanks for the quick response!

I assume by a unit load, you mean for example 1 N or 1 kN.

The issue I’m having is that even with a load that minimal, the buckling factor is non-sensicle.

For example, with 1 N the buckling factor is:

And with 1 kN:

Could this be the known calculix issue or could something simpler be wrong with my model?

I was playing around with the rigid link at this “cylinder” support:

Currently it’s tied to the edge of the web for a span of 500 mm. When I change it to the flange edge or the whole web area below, the buckling factors become more realistic. I think I’ll model a shell lug for the cylinder support to see if that helps.

Also the rigid links at the ends - they appear unsymmetrical but is that just a graphical representation issue?

It sounds more like something unconstrained or some disconected part.

I would try to animate the first five/six frequency modes to see if it vibrates as expected.

1 Like

I tried removing rigid body constraints from your model and applied BCs and loads to single nodes (create node sets), and the model works as expected. I think rigid body connections are to blame.

Maybe add additional shell elements with a large thickness instead of a rigid connection. Or try adding kinematic or distributing coupling by keywords.

1 Like

Yes, this way you don’t have to multiply the buckling factor by the applied load. And you avoid the aforementioned ccx issues.

This is purely graphical. As long as the edges in selection (highlighted in pink here) are the right ones, rigid body constraint will be applied to the desired region. Those spider link symbols don’t always cover all the relevant areas to reduce the clutter in the viewport.

2 Likes

I have built one from scratch with three rigid bodies and it works (even with the shell offsets)

I haven’t compared it with any reference solution. Maybe there is something with your geometry or element type. I’m using Pardiso.S8R

Buckling IPE300_Prepomax.inp (547.8 KB)

1 Like

Thanks everyone for the input and help!

I think what made the most difference was replacing rigid links to edges with rigid links to node sets.

This 2nd support fails completely:

While this works just fine with the same method:

I ended up supporting as so:

It isn’t exactly the same but for this purpose I believe is works well enough.

Another issue I keep running into with shell models is edge/surface ties. They seem to fail constantly. For example, this lifting lug:

I’ve also had the web come completely loose from the flanges. I’d like to merge/compound parts but of course I can’t do that with different shell thicknesses. Is there a guide somewhere that gives the best modelling practices? I tried to match the meshes so that nodes line up but I’m having trouble generating meshes that are completely in line.

Thanks to everyone once again!

Internally, this edge selection is converted to node set as well, but including midside nodes which you apparently skipped in your second approach with manual node selection.

Increase the position tolerance and it should work.

You can assign different thicknesses to faces of a compound surface part, but compounding may fail in some cases with surface geometries: Deformation in 2 or more bodies - #10 by Matej and Contact Generations issue Shell_Solid - #16 by Matej

This usually isn’t necessary and you can use tie constraints (unless you e.g. calculate fatigue of welds with some special methods). But you could try enforcing equivalent number of nodes with local refinement and then there is a tool to merge nodes that are close to each other (lie within a specified distance): Model —> Node —> Merge Coincident Nodes.

1 Like

Thank you! I’ll try some of these solutions next. Luckily I had to change profiles during an optimisation phase so I’m having to redo everything in any case!

Compound part with different thicknesses on faces was the simplest method and is looking very sensible indeed! I don’t know why my brain was stuck in a loop thinking compound couldn’t be doable with different thicknesses. Just goes to show - you’re limiting yourself if you don’t ask dumb questions!

Thanks again. Hope this convo helps someone else along the way!

1 Like

Hi Mara.

¿May I ask if the analisys is not completing or the result is not as expected.?

I can’t reproduce the problem or detect anything wrong.

Thanks