Post-buckling analysis of axially compressed cylinders presents considerable difficulties to the nonlinear solution procedure: Since the structure fails radically (collapse), the analytical solution procedure has to cope with energy dissipation. Here, this is achieved by selecting load-control with artificial damping. Another problem is the presence of many solution paths: A slightly different response in the vicinity of bifurcation points can result in a quite different buckling pattern at the final load and accordingly different reaction forces. Finally, the curved geometry requires the use of efficient shell elements. Thus, this case can serve as a benchmark for the reliability and numerical effectiveness of the elements and nonlinear solver.

The observed discrepancy between the analytically or numerically
predicted buckling load and the experimentally determined buckling load -
the so-called *knock-down factor* [1],[2],[4] - is mainly
due to geometric (manufacturing) imperfections, but also due to fluctuations
in applying the compressive load. The *single perturbation
concept* developed by Hühne [1] presents a practical way to obtain
a lower bound for the buckling load. It is used here by applying at the
centre section a concentrated perturbation force in radial direction.
Reference values for load-displacement curves are extracted from [1].

The radius of the cylinder is 0.25 [m], the length is 0.5m, and the thickness is 0.5mm. For the automatic test case, the mesh consists of 116 Q4.S.MITC.E4 shell elements in circumferential direction and 34 elements in axial direction. This mesh density is actually too coarse but was chosen to obtain acceptable solution times for the automatic test procedure. Sufficiently fine meshes consist of 240 elements in circumferential direction and 60 elements in axial direction; this is also the mesh density used in [1]. All nodes have a local coordinate system, with the x-axis in radial direction, the y-axis in circumferential direction, and the z-axis in axial direction. The material is Aluminium (E=70.e9Pa, p=0.33), but support for many different composite laminates is built into the generating script.

The boundary conditions are applied in two stages. In the first stage, while the bottom is clamped and the top is -- except for the axial direction -- clamped, too, the perturbation load is applied. For the automatic test case, a value of 4N is used ( reference curves are available for values of 2, 10, and 20N). In the second stage, the top is displaced -0.001m in axial direction.

The case definition with the nonlinear analysis parameters is as follows. Case 1 corresponds to stage 1, while case 2 defines stage 2. Case 3 is actually executed and contains the analysis parameters that are active for both stages as well as the sequence of stages.

stage 1 ebc 1 nbc 1 end stage 2 ebc 2 step_size_init 1e-2 step_size_max 1e-1 step_size_min 1.0e-12 tol_residuum 1.0e-2 tol_solution 1.0e-2 tol_work 1.0e-3 end case 3 analysis nonlinear increment_control_type load residue_function_type artificial_damping dissipated_energy_fraction 5.0e-4 max_newton_iterations 30 max_divergences 2 correction_type newton newton_method conventional correction_termination_test dof_and_residue sparse_linear_solver dmumps stage 1 stage 2 end

Load-displacement curves for different mesh densities and different perturbation loads are shown in the next figure:

The automatic test succeeds if the obtained load-displacement curve matches to the first curve shown in the above figure.

The `__init__.py`

script of this test case can be
used to create MDL input files. It has more functionality than what is used
in this test case. For instance, it can create meshes with 8- and 9-node
shell elements, as well as meshes with 8- and 20-node solid elements. It has
also - in addition to the single perturbation concept - several ways to
introduce geometric imperfections.

The following are mandatory command-line arguments:

Parameter name | Description |
---|---|

Specimen | Name of the specimen. The corresponding radius, length, and material type will be used. The names of the specimen and their parameters can be found in [3]. |

Analysis type | What analysis to perform. Can be 'bmode', 'vib', or 'post', meaning linearized pre-buckling analysis, free-vibration analysis, and post-buckling analysis. |

mdlname | The name of the MDL input file which will be created. |

Optional command-line arguments are:

Usage: __init__.py [options] specimen bmode|vib|post mdlname Options: -h, --help show this help message and exit --eltype=ELTYPE The element type. Default is Q4.S.MITC.E4. --ne1=NE1 The number of elements in circumferential direction. Default depends on the specimen. --ne2=NE2 The number of elements in axial direction. Default depends on the specimen. --ecc-force=ECC_FORCE Eccentric force in the centre. Default is -4.0 --imperf-db=IMPERF_DB The path of the database for the imperfections. Default is None. --imperf-cycle=IMPERF_CYCLE The cycle number of the displacement field for the imperfection. Default is None. --imperf-mode=IMPERF_MODE The mode number of the linearized pre-buckling mode for the imperfection. Default is None. --imperf-scale=IMPERF_SCALE The scale factor for the imperfections. It is expressed as the maximum eccentric displacement divided by the shell thickness. Default is 1.0. --rayleigh-damping=RAYLEIGH_DAMPING Use Rayleigh damping with <value> as critical damping value.

[1] H. Wang, A. P. Bueschel, R. Degenhardt, K. Rohwer, X. Sun, W. Wagner, An empirical formula for the critical perturbation load http://www.cocomat.de/Endmeeting/Abstracts/50-COCOMAT_Wang.pdf

[2] C. Hühne, R. Rolfes, E. Breitbach, J. Teßmer, Robust design of composite cylindrical shells under axial compression — Simulation and validation, Thin-Walled Structures Volume 46, Issues 7-9, July-September 2008, Pages 947-962

[3] H.-R. Meyer-Piening, M. Farshad, B. Geier, R. Zimmermann, Buckling loads of CFRP composite cylinders under combined axial and torsion loading -- experiments and computations, Composite Structures 53 (2001) 427-435

[4] NASA SP-8007, 1968: Buckling of thin-walled circular cylinders