Imperfection is used in large displacement nonlinear static analysis, for example, to solve post-buckling problems combined with the arc-length method, among other techniques.


Geometric imperfection can be applied to stability sensitive structures which have difficulties in being solved, because of local or global buckling.

Furthermore, in the case of bifurcation problems, imperfection is sometimes helpful and even necessary since the solution might not be unique. Consider the Force (F) - Displacement (u) plot, shown in Figure 1. In the numerical simulation, the Finite Element mesh is usually based on perfect geometry, and the exact response cannot be captured very well. The numerical result (blue curve) shows that the limit point is overestimated. By considering a suitable and realistic imperfection, the secondary path (red curve) is achieved, which is physically correct. Therefore, imperfection helps to transform the bifurcation problem into a limit point problem, which can be dealt with the arc-length method or other numerical methods. This method is used for numerical investigations.

Figure 1. Stability Problem with Bifurcation Diagram


Theoretically, imperfection belongs to an operation in pre-processing of the finite element method. The original perfect mesh is changed to an imperfect one, by shifting the grid coordinates in translational directions. Applying an initial imperfection does not lead to any initial stresses and it is independent of the analysis type.

Strictly speaking, it is neither a boundary condition (Single Point Constraint or Enforced Displacement), nor an initial condition (initial velocity) in a transient sense. Further, the constrained grid or the degree of freedom can also contain certain imperfection.

Define Imperfection

There are two methods to define the source of imperfection shape:
  • Use of the results in the form of H3D file (TYPE=H3DRES) from an initial analysis

    The results of deformation or buckling modes (in case of a linear buckling analysis) from another analysis in the form of an H3D file is used with an amplitude/scaling factor to apply the initial imperfection. The H3D result file should exist already and should contain at least one subcase with displacement results or buckling modes.

  • Apply the value of imperfection directly on the grid points (TYPE=GRID)

    Imperfection is defined directly on the GRID points based on the grid coordinate system in the IMPERF Bulk Data Entry.

The imperfection can be referenced to a certain subcase, from the OptiStruct input file (.fem), as outlined below.

Data Input

The following input data are required to apply imperfection:

The ASSIGN card is used to specify a particular ID to the H3D result file (for TYPE = H3DRES):

ASSIGN, H3DRES, <assign_id>, <h3d_file>

IMPERF is used to assign the imperfection to a particular subcase.

Imperfection is supported in small/large displacement, static/transient analyses.

IMPERF Bulk Data Entry

The first line of the IMPERF card is:
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
IMPERF ID TYPE              
The second line of the IMPERF card is used to reference the source of imperfection, if the source is from an H3D result file:
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
If the imperfection is directly applied on the grid, then the TYPE field is set as GRID and X, Y, Z fields of the following continuation line define the imperfection:
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
  G X Y Z          

Multiple imperfection cards can be assigned to multiple Subcase Entries and each imperfection card could be referenced to multiple H3D files.

Input File Example

Imperfection can be activated through the IMPERF Subcase Information Entry. In addition, a IMPERF Bulk Data Entry should specify the particular imperfection shape. Different subcases can contain different IMPERF entries. Imperfection can only be defined in the first subcase, if the subcase continuation is activated.
ASSIGN, H3DRES, 11, ./buckling_modes.h3d
     Analysis = NLSTAT
     IMPERF = 2
11, 100, 1, 1.0	     $$ H3D file with id 11, Subcase 100, mode 1, scaling factor 1.0
11, 100, 2, 0.5	     $$ H3D file with id 11, Subcase 100, mode 2, scaling factor 0.5
11, 100, 3, 0.1	     $$ H3D file with id 11, Subcase 100, mode 3, scaling factor 0.1

Some examples of solving Post-buckling problems with imperfection are outlined below.

Example 1: Post-buckling of Euler Column

The post-buckling behavior of a classical Euler column subjected to a vertical loading of 106 N at the top, is investigated to show the imperfection with different scaling factors.

The lower end (A) is fixed, while the other nodes are constrained along the Y-translational; X and Z rotational degrees of freedom. A linear elastic material model with an elastic modulus of 211 GPa and Poisson’s ratio of 0.312 was considered.

Figure 2. Model Details and First Buckling Mode of the Structure
The problem was solved with the arc-length method and the variation of load with lateral displacement for different values of imperfection is:

Figure 3. Load versus Lateral Displacement Plots. for different values of imperfection

Example 2: Post-buckling of a Cylindrical Roof with a Single Point Force

A single point load is applied on a curved shell of thickness 6.35 mm, which has two opposite edges constrained along all three translational degrees of freedom (Figure 4). The shell material has an elastic modulus of 3.102 GPa and Poisson’s ratio of 0.3. Linear buckling analysis was performed under these conditions and the buckling mode shapes were extracted.

Figure 4. Model with Boundary Conditions
The arc-length method was used to solve the problem, with and without imperfection. In the analysis with imperfection, the first buckling mode was used for the imperfection, with a scaling factor of 1% of shell thickness (0.0635).

Figure 5. 1st Buckling Mode
From the load versus displacement plots, the curve with imperfection exhibits a much lower limit point compared to the curve without imperfection. The scaling factor of imperfection is not sensitive for this example; thus, not investigated further.

Figure 6. Load-Displacement Curve of the Cylindrical Roof from OptiStruct


  1. Imperfection is supported for nonlinear static and nonlinear direct transient for both small and large displacement analyses.
  2. In the presence of imperfection, element checking is still based on the perfect mesh.
  3. The magnitude of imperfection is not checked internally. It remains your responsibility to specify an imperfection that is physically correct.
  4. Initial stress condition can be specified independently of the imperfection.
  5. Multiple imperfections can be specified for different subcases in the same input file.
  6. In the case of subcase continuation (CNTNLSUB), imperfection can only be specified in the first subcase. In other cases, it would lead to an error.
  7. The output of displacement in the results files (for example, H3D) does not contain the value of imperfection. The output of displacement and strain is based on the imperfect configuration.
  8. The imperfection shape and scaling factors depend on the structural boundary conditions and the type of loading. The suitable combination of buckling modes and their scaling factor must be chosen according to your requirement, which could be from experimental reference. The imperfection must be large enough to capture the buckling behavior but must also be suitably small enough to guarantee the accuracy of the results.