Nonlinear buckling of a cylindrical shell

So the scale factor is 167 with shell thickness of 2 mm ? Isn’t that a bit too large ?

That would explain why layered shell was used in the YouTube video linked in my first post. However, I can’t use it for this tutorial.

So you use the *TRANSFORM keyword ? Unfortunately, I can’t use it here either.

i try replicated your models, still the scaled values can be possible to reduced or modify. in contrast a prescribed displacement in this cases need to be larger to give insight the behavior.

below results of 20mm prescribed displacement, however scaled values of imperfection not yet to be reduces.

*edited
and using first mode shape, 10% thickness with 20mm prescribed displacement.

imperfection shapes and values are too sensitive in nonlinear buckling analysis of thin structures, there’s no straight answer to well captured realistically. so many codes regulation only use ultimate load capacity and some recommendation based on physicals testing results.

maybe this caused by rigid body exist at the shell edges

it seems to be right to properly restrained out of plane rotational shell element nodes. try remove rotational restraint in Abaqus models if someone need to direct compares.

My best result so far (some distortion of the top edge can still be seen but the rest looks good):

This was achieved with:

  • imperfection scale factor = 200 (I’m not sure if it’s a good practice)
  • prescribed displacement of 20 mm (surprisingly, it fully converged)
  • plasticity

The rest was unchanged (material properties, boundary conditions, mesh).

And here’s the load-displacement curve (displacement of one of the nodes belonging to the top edge vs total reaction force from all nodes belonging to the bottom edge):

I’m not 100% sure how to interpret it but it seems to be correct.

1 Like

probably in CalculiX, this can be eliminates by using rigid plane contact instead of boundary condition at shell edge nodes.

it seems Abaqus by default use rotation restraint at node local axes when rigid body exist at the edge of shell element as discussed in another threads before.

right, most analysis will give inconsistent result between each others. depending on the shapes and scaled values of imperfections due to sensitivity itself.

boundary condition and contact play a role when it’s result comparisons to experimental physical test. residual stress and plastic stress strain definition also.

Wow, you have advanced a lot on this in one day.

I’m not sure if I can contribute much more than that.Maybe on the BC’s.

I have confirmed result against Roark’s Formula for Stress and Strain 8th Edition. It considers ends not constrained. Table 15.2 reference 15. (That was my BC type N=1)
Condition of applicability is satisfied for the model (h=400>>34.4).
Maximum Roark’s theoretical buckling load: 1.084KN
I’m obtaining 1.062 KN (18.000 S8 Elements)

Said that I would like to comment that:

-The buckling load is only reached at a critical stress of 431 MPa. That should be taken into consideration when moving to Plasticity.

-As a reference, I would say z= -3 mm displacement should be enough to induce buckling.

I think we can emulate Abaqus and don’t need transform to constrain rotations at the fix end or shell edge. Attached my file N=2. Fixed-Free. All modes are clean and show good symmetry and theory agreement.

File is 180 sec to run. I’m using ccx_220 from Rafal and pardiso solver .

¿How do you transfer and scale mode shapes to a new geometry for Nonlinear analysis in Prepomax.? I would like to go further with the nonlinear.

Tanks in advance

I was thinking about this too. Such approach is utilized in Abaqus for catastrophic collapse analyses using explicit dynamics. Like here: https://youtu.be/dE3AAs4bDKQ

Exactly how did you realize those BCs for top and bottom edge ? I guess that some translations should be fixed for the model to remain stable (at least in the second analysis). Perhaps I could still improve my BCs and get even closer to the analytical result than I am now.

You just have to use File —> Export —> Deformed mesh *.inp and then Model —> Tools —> Update Nodal Coordinates From File.

Hi Calc_em,

That’s the Free-Free rotation version ( configuration N=1).
We had a conversation with Xyont about Rigid Body some months ago when talking about Large shell rotations on the forum.
Calculix Rigid Body only constrains midplane nodes of shells after the expansion. From my point of view that wasn’t right as it allows the shell to still rotate around the axis contained in the intersection between the lip surface plane and the shell midplane. The shell is not made fully rigid when defining the Rigid Body. You can look at this as if there is a rigid ring and then the shell lip is connected to it but still free to rotate in the connection.

Note I’,m not unconstraining the reference node (Ring) which is still unable to rotate.

screenshot.60

Another point I will consider for progressing in this nonlinear analysis is that we have a very large number of modes very close to each other. That means we should approach the first buckling mode with tiny steps (load or displacement) and assuring not to overpass it during the iterations to avoid the system to accidentally jump from one mode to the next messing the convergence (here the DIRECT option suggested by Victor can help).
If this were not enough, this problem also seems to have two eigen shapes associated to each eigenvalue.

I think your easy tutorial could become a master course in buckling analysis.

Thank you but is that the correct file ? It seems to be the same as the one shared before (n2). At least when it comes to boundary conditions.

Not the same.
Check carfully the nodes included on each Rigid body.

Ok, I didn’t notice additional nodes (whole first layer of elements) included in the bottom rigid body constraint in n2.

with solid element i recreates the models to consider clamping edge support and result below, it’s look reasonable.

1 Like

can you share your calc.?
I’m very interested.
wbr dichtstoff

did you mean input files? sure. this contains two files, first analysis used to defines imperfection shapes from eigenbuckling analysis. another files are large deformation with plasticity analysis.

https://filetransfer.io/data-package/sB63d7nw#link

2 Likes

right, if i remember correctly also introduce some proposed to assign manually rotational restraint at shell edge nodes.

eventhough these may differs with Abaqus due to local/global axes assumptions, still the result shown clamped at the edge support.

please took verifications independently about the results.

This problem is not easy at all. Additionally, shell elements are not helping very much to me.

Final buckling shape is very sensitive to imperfections and BC’s, and one may go from the “Elephant foot” for tiny or almost none imperfections , passing through patterns close to the buckling modes up to strong unsymmetric patterns for larger imperfections.

Post buckling effects removing plasticity are even harder to see. “In terms of the buckling problem related to elastic cylindrical shells under axial compression, experimental results have shown that after primary buckling, secondary buckling occurs accompanied by successive reductions in the number of circumferential waves at every path jumping”. Reference Takaya Kobayashi, Yasuko Mihara and Fumio Fujii, “Path-Tracing Analysis for Post-buckling Process of Elastic Cylindrical Shells under Axial Compression”, Thin-Walled Structures, 61, pp.180-187, 2012.
Here is where artificial stiffening, Riks or Arc Length Method would make a difference.

@Calc_em Regarding the scale parameter I don’t think 100 is too much at all in this case. It just represents 0.003 * 100 = 0.3 mm (15% of shell thickness). ASME B36.10 tolerance is typically 12.5% for thickness and –0,8mm/ +1,6 mm for diameter. If you additionally consider a characteristic value of allowable deflection of L/200 (2mm), 0.3 mm of initial imperfection seems very reasonable.

@Xyon thank you for showing how to approach the solution of the problem. These are the kind of contributions that make visitors want to try and give CalculiX a chance.

Indeed, it’s really tricky, especially in CalculiX with its “fake” shell elements. That’s probably one of the most interesting basic theoretical problems to consider when it comes to nonlinear buckling, also because it can be easily related to very common real-life example - crushing a soda can. Other interesting basic examples include structures for which the snap-through phenomenon occurs (like circular archs or Lee’s frame) - this would be likely close to impossible to simulate in CalculiX without the Riks solver unless the dynamic quasi-static approach would work. Square (box) tube has nice looking collapse pattern (those characteristic folds) but apart from that it’s not as interesting as a cylindrical shell.

Where does this value come from ?

That’s the maximum displacement (lateral ) provided by the eigensolver for the first non-zero eigenmode. I know that value is normalized and not real but I’m using it as a reference to scale the mesh to the desired imperfection amplitude.

0.003mm * sf(100) = 0.3 mm

0.3mm/2mm*100= imperfection 15% of shell thickness

¿Do you proceed in a different way? I set the desired Scale factor at the User defined window in Prepomax before exporting the deformed mesh.

By other hand, Riks and other advanced solvers would be useful in case you want to perform post buckling analysis. In this case for the tutorial you could validate just the first mode and it’s buckling stress without those tools approaching carefully.
Didn’t check the stress but z displacement was very close to the expected value to trigger the first mode. Should be z=-2.34mm for Fix-Fix.

I also do it this way. The typical approach in other software is to specify the imperfection amplitude directly in millimeters or (like in Abaqus) to scale mode shapes normalized to 1 so the scale factor also corresponds to millimeters (or other units depending on the model) directly. For some reason, normalized displacements in CalculiX are not from 0 to 1.

Is there a formula for this in DIN codes ?

it seems this recommendation only specific not general, only for pipes in the ranges of diameter 1/2~2" of fabrication/production tolerances. since it may apply for long members, so global imperfection (e.g L/500) should be dominated instead of local imperfection (0.125t)

many test and research shown ultimate load of cylinder shell depending on imperfection from three factors (Radius, Thickness & Length) and further named knock down factors (KDF).

imperfection of cylinder shell for large dimension not a pipes may comes from fabrication (impact, welding distortion), pre yielding at the stage of erection or construction.

the shapes from eigenbuckling analysis, frequency/vibration or user spectrums only a simplification to imperfection were in reality the analyst did not know exactly about the shapes and magnitudes.

it’s hard to use single approach and judges the reliability, interesting to conduct several analysis to study the sensitivity without working efforts since the analysis are easy to setup.