Non-linear Static Analysis

1. Axially Compressed Cylinder

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.

Mesh and boundary conditions

Figure 14. Mesh and boundary conditions


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:

Load-displacement curves

Figure 15. Load-displacement curves


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