Solving coupled linear systems of equations is the dominant cost of linear and nonlinear implicit finite element simulations in three dimensions. Direct methods, i.e., algorithms based upon Gaussian elimination, have traditionally been used for two-dimensional simulations. However, direct methods display unfavorable asymptotic cost growth for three-dimensional applications, leading the computational mechanics community to reexamine the utility of iterative linear equation solving.
Element-by-element (EBE) preconditioned iterative algorithms have shown considerable promise in small-scale, academic investigations. However, iterative methods, being motivated by a desire for computational economy, will not be accepted by the engineering community until they are evaluated for large-scale applications. This work has involved implementing vectorized EBE preconditioners, and the conjugate gradient (CG) and Lanczos iterative drivers, in a general-purpose, large-scale simulation code for nonlinear solid and structural mechanics. This implementation has included developing software which in turn writes vectorized FORTRAN modules for each of the major EBE operations, for a element with a user-specified number of degrees of freedom. Performance of the EBE preconditioned conjugate gradient (EBE/PCG) methods is reported and compared with direct solution for a number of large-scale engineering analyses. The EBE/PCG algorithm is found to offer considerable savings in storage and CPU for many engineering applications. These results also show that direct and iterative linear equation solvers are better viewed as complementary algorithms and both should be available in general-purpose finite element codes. A simple measure of mesh connectivity is introduced, and its usefulness is predicting the relative efficiency of direct and iterative solutions is illustrated. The utility of a Lanczos algorithm incorporating partial reorthogonalization is also investigated, but its storage requirements are found unacceptable for large-scale applications.