# 4. Implicit Solver and Time Step Control

This chapter discusses the commands used to control the solver, time stepping, and dynamics parameters for implicit calculations. The commands and features documented in this chapter are applicable only for quasistatic and implicit dynamic analyses. For information on time stepping commands for explicit dynamic analyses, see Section 3.

The solution strategy used in Sierra/SM is based on iterative solution techniques and builds on the capabilities pioneered in the JAS3D code [[1]]. Sierra/SM uses a nonlinear preconditioned conjugate gradient (CG) algorithm [[2]] to iteratively find a solution that satisfies equilibrium within a user-specified error tolerance at each load step.

The nonlinear CG algorithm iterates to a solution by computing a series of search direction vectors that are successively added to the trial velocity vector. In each iteration, the residual is multiplied by a preconditioning matrix to obtain a gradient direction. The gradient direction is then used to compute the next search direction in a way that ensures that each new search direction is orthogonal to the previous search directions. A line search is used to compute a scaling factor that when applied to the search direction results in a minimized residual.

The performance of the CG algorithm is highly dependent on the choice of preconditioner. Using the inverse of the full tangent stiffness matrix as a preconditioner minimizes the number of CG iterations required but can be computationally expensive. Alternatively, the inverse of a diagonalized stiffness matrix can be used. This requires much lower computational and memory resources, per iteration, but may require many more iterations.

Sierra/SM provides several preconditioner options that can be categorized in two general types. The first type is the nodal preconditioner. Several different variants are available including the diagonal preconditioners that were available in JAS3D. The second type is the full tangent preconditioner. This option is typically implemented through use of the parallel-scalable FETI linear solver.

Conditioning of a problem can also be improved by using a multilevel solver. Rather than directly solving the difficult, and potentially ill-posed, full problem with the CG solver, Sierra/SM forms a series of “model problems” and solves them with the core CG solver. Features of the model that make it difficult are either adjusted or held constant for a model problem. After each model problem is solved, the multilevel solver updates the quantities that were controlled. The process of forming model problems and updating is iterative, as with the core solver, and convergence must be achieved both in the core solver and in the multilevel controls.

Four types of controls are available for the multilevel solver. They are discussed at a high level in the next section.

This chapter discusses the commands for specifying solver options for both quasistatic and implicit dynamic problems. The CG solver can either be used alone or as the core solver within a multilevel solver. Section 4.1 presents the characteristics and structure of the `SOLVER` command block, which contains all solver-related commands within the `ADAGIO REGION` command block. Section 4.2 discusses the `CG` command block, which controls the nonlinear preconditioned CG solver. An option in the `CG` command block is to use a full tangent preconditioner. The command block to control the behavior of this option is discussed in Section 4.3. The recommended linear solver for use with the full tangent preconditioner is FETI, whose command block is presented in Section 4.4. Section 4.9 describes the predictors, which are used to generate an initial trial solution for a load step or for a multilevel-solver model problem. Time stepping control for both quasistatic (where time serves as a pseudo-time load step parameter) and implicit dynamic problems is described in Section 4.10. Section 4.11 discusses techniques to perform implicit dynamic solutions. Finally, references are provided at the end of the chapter.

[1]

M.L. Blanford, M.W. Heinstein, and S.W. Key. JAS3D – a multi-strategy iterative code for solid mechanics analysis users’ instructions, release 2.0. September 2001.

[2]

R. Fletcher and C.M. Reeves. Function minimization by conjugate gradients. The Computer Journal, 7:149–153, 1964.