To calculate buckling loads routine arpackbu.c is called. The following steps are needed in a buckling calculation:

- calculation of the stresses due to the buckling load. This implies setting up the equation system in mafillsm.f, solving the system with SPOOLES and determining the stresses in results.f
- setting up the buckling eigenvalue system consisting of the stiffness matrix of the previous static step (including large deformation stiffness and stress stiffness) and the stress stiffness matrix of the buckling load [19].
- loop with starting value for
- LU decomposition of
- iterative calculation of the buckling factor with ARPACK
- determination of the buckling mode
- if
**buckling factor**exit loop, else set**buckling factor**and cycle

- determine the stresses and any other derived fields

The buckling mode in ARPACK (Mode 4, cf [43]) is used to solve a system of the form

(684) |

where is symmetric and positive definite and is symmetric but indefinite. The iterative procedure to find the eigenvalues requires routines to solve

and to calculate

Similar to the frequency calculations, the LU decomposition (SPOOLES) to solve Equation (685) is performed before the loop determining the buckling factor, since the left hand side of the equation does not vary. The matrix multiplication in Equation (686) is taken care of by routine op.f.

A major difference with the frequency calculations is that an additional
iteration loop is necessary to guarantee that the value of the buckling
factor is right. Indeed, experience has shown that the value of matters
here and that the inequality
** buckling factor**
should be satisfied. If it is not, the whole procedure starting with the LU
decomposition is repeated with a new value of
**buckling
factor**. If necessary, up to four such iterations are allowed.