8.6. Performing a Nonlinear Static Analysis

The procedure uses traditional forward solving but can also be applied to inverse solving.

8.6.1. Building the Model

This step is essentially the same for both linear and nonlinear analyses, although a nonlinear analysis might include special elements or nonlinear material properties. See Using Nonlinear Elements, and Modeling Material Nonlinearities, for more details. If your analysis includes large-strain effects, your stress-strain data must be expressed in terms of true stress and true (or logarithmic) strain. For more information about building models, see the Modeling and Meshing Guide.

After you have created a model, set solution controls (analysis type, analysis options, load step options, and so on), apply loads, and solve. A nonlinear solution differs from a linear solution in that it often requires multiple load increments, and always requires equilibrium iterations.

8.6.2. Setting Solution Controls

Setting solution controls for a nonlinear analysis involves the same options and method of access (the Solution Controls dialog box) as those used for a linear structural static analysis. See the following sections in Structural Static Analysis, with exceptions noted:

8.6.2.1. Using the Basic Tab: Special Considerations

Special considerations for setting these options in a nonlinear structural static analysis include:

  • When setting ANTYPE and NLGEOM, choose Large Displacement Static if you are performing a new analysis. (Not all nonlinear analyses produce large deformations, however. See Using Geometric Nonlinearities for a further discussion of large deformations.) You cannot change this setting after the first load step (that is, after issuing the first SOLVE command). T

  • When working with time settings, remember that these options can be changed at any load step. See Loading in the Basic Analysis Guide for more information about these options.

    A nonlinear analysis requires multiple substeps (or time steps; the two terms are equivalent) within each load step so that the program can apply the specified loads gradually and obtain an accurate solution. The NSUBST and DELTIM commands both achieve the same effect (establishing a load step's starting, minimum, and maximum step size), but by reciprocal means. NSUBST defines the number of substeps to be taken within a load step, whereas DELTIM defines the time-step size explicitly. If automatic time-stepping is off (AUTOTS), then the starting substep size is used throughout the load step.

  • The OUTRES command controls the data on the results file (Jobname.rst). By default, only the last substep is written to the results file in a nonlinear analysis.

8.6.2.2. Advanced Analysis Options (via Solution Controls)

The following sections provide more detail about some of the advanced analysis options that you can set on the Solution Controls dialog box.

8.6.2.2.1. Equation Solver

Automatic solution control activates the sparse direct solver (EQSLV,SPARSE) for most cases. Other options include the PCG and ICCG solvers. For applications using solid elements, the PCG solver may be faster, especially for 3D modeling.

If using the PCG solver, you may be able to reduce memory usage via the MSAVE command. The MSAVE command triggers an element-by-element approach for the parts of the model that use SOLID185, SOLID186, SOLID187 SOLID272, SOLID273, and/or SOLID285 elements with linear material properties. (MSAVE does not support the layered option of the SOLID185 and SOLID186 elements.) To use MSAVE, you must be performing a static or a modal analysis with PCG Lanczos enabled. When using SOLID185, SOLID186, and/or SOLID187, only small strain (NLGEOM,OFF) analyses are allowed. Other parts of the model that do not meet the above criteria are solved using global assembly for the stiffness matrix. MSAVE,ON can result in a memory savings of up to 70 percent for the part of the model that meets the criteria, although the solution time may increase depending on the capabilities of your computer and the element options selected.

The sparse direct solver, in sharp contrast to the iterative solvers included in the program, is a robust solver. Although the PCG solver can solve indefinite matrix equations, when the PCG solver encounters an ill-conditioned matrix, the solver iterates to the specified number of iterations and stop if it fails to converge. When this happens, it triggers bisection. After completing the bisection, the solver continues the solution if the resulting matrix is well-conditioned. Eventually, the entire nonlinear load step can be solved.

Use the following guidelines for selecting either the sparse or the PCG solver for nonlinear structural analysis:

  • If it is a beam/shell or beam/shell and solid structure, use the sparse direct solver.

  • If it is a 3D solid structure and the number of degrees of freedom is relatively large (that is, 200,000 or more degrees of freedom), use the PCG solver.

  • If the problem is ill-conditioned (triggered by poor element shapes), or has a big difference in material properties in different regions of the model, or has insufficient displacement boundary constraints, use the sparse direct solver.

8.6.2.3. Advanced Load Step Options (via Solution Controls)

The following sections provide more detail about some of the advanced load step options that you can set on the Solution Controls dialog box.

8.6.2.3.1. Automatic Time-Stepping

Automatic solution control enables automatic time-stepping (AUTOTS,ON). An internal auto-time-step scheme ensures that the time-step variation is neither too aggressive (resulting in many bisection/cutbacks) nor too conservative (time-step size is too small). At the end of a time step, the size of the next time step is predicted based on these factors:

  • Number of equilibrium iterations used in the last time step – more iterations cause the time-step size to be reduced.

  • Predictions for nonlinear element status change – time-step sizes are decreased when a status change is imminent.

  • Size of the plastic strain increment.

  • Size of the creep strain increment.

8.6.2.3.2. Convergence Criteria

The program continues to perform equilibrium iterations until the convergence criteria (CNVTOL) are satisfied (or until the maximum number of equilibrium iterations is reached (NEQIT)). You can define specific criteria if the default settings are not suitable; however, changes to the default criteria are rarely needed.

The automatic solution convergence check uses the L2-norm of force (and moment) with a tolerance (TOLER) equal to 0.5%, a setting that is appropriate for most cases. In most cases, an infinite norm check on displacement with TOLER equal to 5% is also used in addition to the force convergence check. The check that the displacements are loosely set serves as a double-check on convergence.

By default, the program checks for force (and, when rotational degrees of freedom are active, moment) convergence by comparing the square root sum of the squares (SRSS) of the force imbalances against the product of VALUE*TOLER. The default value of VALUE is the SRSS of the applied loads or MINREF (which defaults to 0.01), whichever is greater.

You should almost always use force convergence checking. You can also add displacement (and, when applicable, rotation) convergence checking. For displacements, the program bases convergence checking on the change in deflections (Δu) between the current (i) and the previous (i-1) iterations:  Δu=ui-ui-1.

When using the infinite norm (the default) for displacement convergence, the reference value for displacement convergence uses the maximum infinite norm through the displacement increment history. Alternatively, you can specify that the reference value calculation use only the current displacement increment value (see CNVTOL for details).

Using tighter convergence criteria improves the accuracy of your results, but at the cost of more equilibrium iterations. In general, you should continue to use the default value of VALUE; that is, change the convergence criteria by adjusting TOLER, not VALUE. You should make certain that the default value of MINREF = 0.01 makes sense in the context of your analysis. If your analysis uses certain sets of units or has very low load levels, you might want to specify a smaller value for MINREF.

Convergence Norm

The program provides three different vector norms to use for convergence checking:

  • The infinite norm repeats the single-degree-of-freedom check at each degree of freedom in your model.

  • The L1 norm compares the convergence criterion against the sum of the absolute values of force (and moment) imbalance for all degrees of freedom.

  • The L2 norm performs the convergence check using the square root sum of the squares of the force (and moment) imbalance for all degrees of freedom.

  • Infinite L1 or L2 norms are also applicable to the displacement convergence check.

Normally, if an analysis converges in one norm, it will converge in the other norms. The default norm check is recommended.

8.6.2.3.3. Maximum Number of Equilibrium Iterations

Automatic solution control sets the value of NEQIT to between 15 and 26 iterations, depending upon the physics of the problem. The idea is to use a small time step with fewer quadratically converging iterations.

This option limits the maximum number of equilibrium iterations to be performed at each substep. If the convergence criteria have not been satisfied within this number of equilibrium iterations, and if auto time-stepping is on (AUTOTS), the program attempts to bisect. If bisection is not possible, then the analysis either terminates or moves on to the next load step (according to NCNV command settings).

8.6.2.3.4. Predictor-Corrector Option

Automatic solution control activates a predicator (PRED,ON). If the time-step size is reduced greatly in the current substep, PRED is deactivated. The predictor is also deactivated for transient analyses. You can activate a predictor on the degree-of-freedom solution for the first equilibrium iteration of each substep. This feature accelerates convergence and is particularly useful if the nonlinear response is relatively smooth, as in the case of ramped loads.

For static analyses, the predictor option (PRED command) can extrapolate the solution for the start of each time step using either a linear or a quadratic extrapolation. The linear extrapolation is based on the accumulated displacement increment over the previous time step, whereas the quadratic extrapolation is based on the accumulated displacement increment over the previous and prior-to-previous time steps.

The linear predictor provides a good prediction for a smooth solution, such as a translational displacement (UX, UY, UZ) in a mildly nonlinear problem. The quadratic extrapolation typically predicts better than the linear formulation for solutions with rotational degrees of freedom (ROTX, ROTY, ROTZ).

For transient analyses, the prediction is based on the current velocities and accelerations using the Newmark formula, and for thermal, magnetic and other first order systems, the prediction is based on the trapezoidal formula. See Predictor in the Theory Reference for more details.

8.6.2.3.5. Line Search Option

Automatic solution control toggles line search on and off as needed. For most contact problems, LNSRCH is toggled on. For most non-contact problems, LNSRCH is toggled off.

This convergence-enhancement tool multiplies the calculated displacement increment by a program-calculated scale factor (having a value between 0 and 1), whenever a stiffening response is detected. Because the line search algorithm is intended to be an alternative to the adaptive descent option (NROPT), adaptive descent is not automatically activated if the line search option is on. We do not recommend activating both line search and adaptive descent simultaneously.

When an imposed displacement exists, a run cannot converge until at least one of the iterations has a line search value of 1. The program scales the entire ΔU vector, including the imposed displacement value; otherwise, a "small" displacement occurs everywhere except at the imposed degree of freedom. Until one of the iterations has a line search value of 1, the program does not impose the full value of the displacement.

8.6.2.3.6. Cutback Criteria

For finer control over bisections and cutback in time-step size, use (CUTCONTROL, Lab, VALUE, Option).

By default, for Lab = PLSLIMIT (maximum plastic strain increment limit), VALUE is set to 15 percent. This field is set to such a large value to avoid unnecessary bisections caused by high plastic strain due to a local singularity (which is not normally of interest).

For implicit creep (Option = IMPRATIO), there is no maximum creep ratio limit by default. You can, however, specify any creep ratio control.

The number of points per cycle for second order dynamic equations (Lab = NPOINT) is set to VALUE = 13 (by default) for linear analysis, and VALUE = 5 (by default) for nonlinear analysis. A larger number of points yields a more accurate solution but also increases the solution run time.

8.6.3. Setting Additional Solution Options

This section discusses additional options that you can set for the solution. These options do not appear on the Solution Controls dialog box because they are used infrequently, and their default settings rarely need to be changed. Menu paths are provided in this section to help you access these options for those cases in which you choose to override the program-assigned defaults.

8.6.3.1. Advanced Analysis Options You Cannot Set via the Solution Controls Dialog Box

The following sections describe some advanced analysis options that you can set for your analysis. You cannot use the Solution Controls dialog box to set these options. Instead, set them using the standard set of solution commands and the standard corresponding menu paths.

8.6.3.1.1. Stress Stiffness

To account for buckling, bifurcation behavior, the program includes stress stiffness in all geometrically nonlinear analyses (NLGEOM,ON).

8.6.3.1.2. Newton-Raphson Option

Automatic solution control uses the FULL Newton-Raphson option (NROPT) with adaptive descent off if there is a nonlinearity present. However, when node-to-node, node-to-surface contact elements are used for contact analysis with friction, then adaptive descent is automatically turned on. The underlying contact elements require adaptive descent for convergence.

Valid only in a nonlinear analysis, this option specifies how often the tangent matrix is updated during solution. The default behavior (NROPT,AUTO) enables the program to decide based on the kinds of nonlinearities present in your model, and adaptive descent is activated automatically when appropriate. The following additional options are available:

  • Full (NROPT,FULL):

    The program uses the full Newton-Raphson procedure, in which the stiffness matrix is updated at every equilibrium iteration.

    If adaptive descent is on (optional), the program uses the tangent stiffness matrix only as long as the iterations remain stable (that is, as long as the residual decreases, and no negative main diagonal pivot occurs). If divergent trends are detected on an iteration, the program discards the divergent iteration and restarts the solution, using a weighted combination of the secant and tangent stiffness matrices. When the iterations return to a convergent pattern, the program resumes using the tangent stiffness matrix. Activating adaptive descent (NROPT,FULL,,ON) usually enhances the program's ability to obtain converged solutions for complicated nonlinear problems but is supported only for elements indicated under "Special Features" in the Input Summary table (Table 4.n.1 for an element, where n is the element number) in the Element Reference.

  • Modified (NROPT,MODI):

    The program uses the modified Newton-Raphson technique, in which the tangent stiffness matrix is updated at each substep. The matrix is not changed during equilibrium iterations at a substep. This option is not applicable to large-deformation analyses. Adaptive descent is not available.

  • Initial Stiffness (NROPT,INIT):

    The program uses the initial stiffness matrix in every equilibrium iteration. This option can be less likely to diverge than the full option, but it often requires more iterations to achieve convergence. It is not applicable to large-deformation analyses. Adaptive descent is not available.

  • Full with unsymmetric matrix (NROPT,UNSYM):

    The program uses the full Newton-Raphson procedure, in which the stiffness matrix is updated at every equilibrium iteration. In addition, it generates and uses unsymmetric matrices that you can use for any of the following:

    • If you are running a pressure-driven collapse analysis, an unsymmetric pressure load stiffness might be helpful in obtaining convergence. You can include pressure load stiffness via CNVTOL,PRES.

    • If you are defining an unsymmetric material model using TB,USER, you would need NROPT,UNSYM to fully use the property you defined.

    • For a contact analysis, an unsymmetric contact stiffness matrix would fully couple the sliding and the normal stiffnesses. See Determining Contact Stiffness and Allowable Penetration in the Contact Technology Guide for details.

    You should first try NROPT,FULL, then try NROPT,UNSYM if you experience convergence difficulties. (Using an unsymmetric solver requires more computational time to obtain a solution than if you use a symmetric solver.)

If a multistatus element is in the model, it is updated at the iteration in which it changes status, irrespective of the Newton-Raphson option.

8.6.3.2. Advanced Load Step Options

The following sections describe some advanced load step options that you can set for your analysis. You cannot use the Solution Controls dialog box to set the options described below. Instead, set them using the standard set of solution commands and the standard corresponding menu paths.

8.6.3.2.1. Creep Criteria

If your structure exhibits creep behavior, you can specify a creep ratio limit for automatic time-step adjustment (CUTCONTROL,CRPLIMIT). If automatic time-stepping (AUTOTS) is off, this creep ratio limit has no effect.

The program calculates the ratio of creep strain increment (Δεcr, the change in creep strain in the last time step) to the elastic strain (εel), for all elements. If the maximum ratio is greater than the creep ratio limit, the program then decreases the next time-step size; if it is less, the program might increase the next time-step size. (The program also bases automatic time-stepping on the number of equilibrium iterations, impending element status change, and plastic strain increment. The time-step size is adjusted to the minimum size calculated for any of these items.)

For implicit creep, there is no maximum creep ratio limit by default; you can however, specify any creep ratio limit value. If the creep ratio limit is exceeded and the minimum time step is reached, the program issues a warning but continues the substep until the analysis is complete. In this case, convergence is achieved but the creep ratio criteria is not satisfied.

If you do not want to include the effects of creep in your analysis, use the RATE command with Option = OFF, or set the time steps to be longer than the previous time step, but not more than 1.0e-6 longer.

8.6.3.2.2. Time-Step Open Control

Use the open control option (OPNCONTROL) for thermal analysis. Its primary use is in unsteady-state thermal analysis where the final temperature stage reaches a steady state. In such cases, the time step can be opened quickly. The default is that if the TEMP increment is smaller than 0.1 in three (NUMSTEP = 3) contiguous substeps, the time-step size can be "opened-up" (value = 0.1 by default). The time-step size can then be opened continuously for greater solution efficiency.

8.6.3.2.3. Solution Monitoring

This option provides a facility to monitor (MONITOR) a solution value at a specified node in a specified degree of freedom. The command also provides a means to quickly review the solution convergence efficiency, rather than attempting to gather this information from a lengthy output file. For instance, if an excessive number of attempts were made for a substep, the information contained in the file provides hints to either reduce the initial time-step size or increase the minimum number of substeps allowed through the NSUBST command to avoid an excessive number of bisections.

Additionally, the NLHIST command enables you to monitor results of interest in real time during solution. Before starting the solution, you can request nodal data such as displacements or reaction forces at specific nodes. You can also request element nodal data such as stresses and strains at specific elements to be graphed. Pair-based contact data are also available. The result data are written to a file named Jobname.nlh.

For example, a reaction force-deflection curve could indicate when possible buckling behavior occurs. Nodal results and contact results are monitored at every converged substep while element nodal data are written as specified via the OUTRES command.

You can also track results during batch runs by typing nlhist242 in the command line. Use the provided file browser to navigate to your Jobname.nlh file, and select it to invoke the tracking utility. You can use this utility to read the file at any time, even after the solution is complete.

8.6.3.2.4. Birth and Death

Specify birth and death options as necessary. You can deactivate (EKILL) and reactivate (EALIVE) selected elements to model the removal or addition of material in your structure. As an alternative to the standard birth and death method, you can change the material properties for selected elements (MPCHG) between load steps.

The program "deactivates" an element by multiplying its stiffness by a very small number (which is set by the ESTIF command), and by removing its mass from the overall mass matrix. Element loads (pressure, heat flux, thermal strains, and so on) for inactive elements are also set to zero. You need to define all possible elements during preprocessing; you cannot create new elements in SOLUTION.

Those elements to be "born" in later stages of your analysis should be deactivated before the first load step, and then reactivated at the beginning of the appropriate load step. When elements are reactivated, they have a zero strain state, and (if NLGEOM,ON) their geometric configuration (length, area, and so on) is updated to match the current displaced positions of their nodes. See the Advanced Analysis Guide for more information about birth and death.

Another way to affect element behavior during solution is to change the material property reference number for selected elements:

Issue the MPCHG command with caution. Changing material properties in a nonlinear analysis may produce unintended results, especially if you change nonlinear (TB) material properties.

8.6.3.2.5. Output Control

In addition to OUTRES, which you can set on the Solution Controls dialog box, there are several other output control command options that you can set for an analysis: OUTPR and ERESX.

Printed output (OUTPR) includes any results data on the output file (Jobname.out).

Extrapolation of results (ERESX) copies an element's integration point stress and elastic strain results to the nodes instead of extrapolating them, if nonlinear strains (plasticity, creep, swelling) are present in the element. The integration point nonlinear strains are always copied to the nodes.

See Loading in the Basic Analysis Guide for more information about these options.

8.6.4. Applying Loads

Apply loads on the model. See Structural Static Analysis in this guide and Loading in the Basic Analysis Guide for load information. Inertia and point loads maintain constant direction, but surface loads follow the structure in a large-deformation analysis. You can include inertia relief in a nonlinear static analysis to simulate a minimally restrained body (for details, see Including Inertia Relief Calculations in the Basic Analysis Guide). You can apply complex boundary conditions by defining a one-dimensional table (table array parameter). See Applying Loads via Tabular Input in this guide for more information.

8.6.5. Solving the Analysis

You solve a nonlinear analysis using the same commands and procedure as you do in solving a linear static analysis. See Solve the Analysis in Structural Static Analysis. If you need to define multiple load steps, you must respecify time settings, load step options, and so on, and then save and solve for each of the additional load steps. Other methods for multiple load steps - the load step file method and the array parameter method - are described in the Basic Analysis Guide.

8.6.6. Reviewing the Results

Results from a nonlinear static analysis consist mainly of displacements, stresses, strains, and reaction forces. You can review these results in POST1, the general postprocessor, or in POST26, the time-history postprocessor.

Remember that in POST1, only one substep can be read in at a time, and that the results from that substep should have been written to Jobname.rst. (The load step option command OUTRES controls which substep results are stored on Jobname.rst.) A typical POST1 postprocessing sequence is described below.

To review results in POST1, the database must contain the same model for which the solution was calculated.

The results file (Jobname.rst) must be available.

8.6.6.1. Reviewing Results in POST1

Verify from your output file (Jobname.out) whether or not the analysis converged at all load steps. If not, you probably do not want to postprocess the results, other than to determine why convergence failed. If your solution converged, then continue postprocessing.

8.6.6.2. Reviewing Results in POST26

You can also review the load-history response of a nonlinear structure using POST26 (/POST26), the time-history postprocessor. Use POST26 to compare one variable against another. For instance, you might graph the displacement at a node versus the corresponding level of applied load, or you might list the plastic strain at a node and the corresponding TIME value. A typical POST26 postprocessing sequence might follow these steps:

  1. Verify from your output file (Jobname.out) whether or not the analysis converged at all desired load steps. You should not base design decisions on unconverged results.

  2. If your solution converged, enter POST26. If your model is not currently in the database, issue RESUME.

  3. Define the variables to be used in your postprocessing session (NSOL, ESOL, RFORCE). The SOLU command causes various iteration and convergence parameters to be read into the database, where you can incorporate them into your postprocessing.

  4. Graph (PLVAR) or list (PRVAR or EXTREM) the variables.

Other Capabilities

Many other postprocessing functions are available in POST26. See The Time-History Postprocessor (POST26) in the Basic Analysis Guide for details.

8.6.7. Terminating and Restarting a Running Job

You can stop a nonlinear analysis by creating an abort file (Jobname.abt). See Solution in the Basic Analysis Guide for details. The program also stops upon successful completion of the solution, or if a convergence failure occurs.

You can often restart an analysis if it has successfully completed one or more iterations before it terminated. Restart procedures are covered in Restarting an Analysis in the Basic Analysis Guide.