Perform Nonlinear Analyses

See also the page Performing Analyses with Contact when the analysis includes any type of contact (surface-to-surface contact, contact or coupling elements, impact plane, and so on).

Log Files and Convergence Plotting for Nonlinear Analyses

The main issue during a Mechanical Event Simulation (MES), and other nonlinear analyses, is whether the model is converging or not, and how easily it is converging. Once the iterations begin, monitoring the convergence behavior will help you decide if you need to stop the analysis to change some parameters.

On this page we discuss the columns that comprise the convergence history, which appear in the analysis log file. In addition, the convergence history can be displayed graphically. An Analysis Information drop-down list within the analysis window allows you to choose between the following two options:

  • View Convergence Plot
  • View Log

The convergence history accumulates within the log file during the solution iterations. The columns that comprise the convergence history are described as follows (see Table 1):

  • Time: the instantaneous time within the event that corresponds to the iteration being solved.
  • Percent: the percent of the analysis that will be completed once the current time step converges.
  • DT: the current time step size. If the analysis is having difficulty converging, it may reduce the time step (equivalent to a higher capture rate). The initial time size DT = 1/(capture rate).
  • L: the time step level. The analysis begins at level L=1, DT = 1/(capture rate). When L increases by one, the time step DT is reduced (see below). When L decreases by one, the time step DT is increased. When L reaches 19, the processor assumes the analysis is not going to converge. The message "reached autotm limit" is given.
  • Iter: the iteration number for the current time step. If the iteration reaches the Maximum number of iterations specified under the Analysis Parameters: Advanced: Equilibrium tab, then the time step will be reduced.
  • Residual: The residual norm between two iterations. When the residual is smaller than the convergence tolerance, Displacement tolerance or Force tolerance, then the time step has converged. The letter c at the end of the row indicates a converged step. If the residual is diverging, then a smaller time increment will be used (L increases, DT is reduced). The convergence tolerance, specified under the Analysis Parameters: Advanced: Equilibrium tab, can be changed automatically during the analysis by using the Activate convergence tolerance relaxation option under the Analysis Parameters: Advanced: Time-Step tab. If a larger convergence tolerance is in use when the time step converges, the letters cr will appear at the end of the row instead of just c.
    Note: There are several criteria that must be met for the time step to be converged. The letter c after the Residual indicates that the equilibrium loop has converged. After printing the c, other conditions are checked for convergence. Thus, the log file may imply that the solution has converged and then reduce the time step! When this occurs, the log file will display a message such as "Time step reduction due to: contact penetration" to indicate the reason for the lack of convergence.

In particular, the current time step size DT is related to the time step level L as follows:

where n is the Time-step change factor entered under the Analysis Parameters: Advanced: Time-Step tab. The default value for the Time-step change factor is 2. To get the time step to reduce more quickly (and increase more quickly if the model starts to converge), set the Time-step change factor to a larger value.

Line Number Time Percent DT L Iter. Residual
01 0.000000 0.00 0.050000 1 0 0.0000E+00
02 0.050000 2.50 0.050000 1 1 6.3147E-01
03 0.050000 2.50 0.050000 1 2 2.5240E-02
04 0.050000 2.50 0.050000 1 3 4.8034E-04
05 0.050000 2.50 0.050000 1 4 1.3060E-05c
06 0.100000 5.00 0.050000 1 1 1.0000E+00
07 0.075000 3.75 0.025000 2 1  1.5186E-01
08 0.075000 3.75 0.025000 2 2 5.0903E-03
09 0.100000 3.75 0.025000 2 3 1.5940E-05c
10 0.100000 5.00 0.025000 2 1 1.2368E-01
11 0.100000 5.00 0.025000 2 2 3.1349E-03
12 0.100000 5.00 0.025000 2 3 4.5975E-06c
13 0.125000 6.25 0.025000 2 1 1.4627E-01
14 0.125000 6.25 0.025000 2 2 1.2403E-03
15 0.125000 6.25 0.025000 2 3 4.7008E-06c
16 0.150000 7.50 0.025000 2 1  1.8106E-01
17 0.150000 7.50 0.025000 2 2 1.3597E-04
18 0.150000 7.50 0.025000 2 3  4.9347E-07c
19 0.200000 10.00 0.050000 1 1 3.1410E-01
20 0.200000 10.00 0.050000 1 2 5.4314E-03
21 0.200000 10.00 0.050000 1 3 2.5865E-04
22 0.200000 10.00 0.050000 1 4 1.1274E-04
23 0.200000 10.00 0.050000 1 5 2.7762E-05c
Table 1: Sample Text From MES/Nonlinear Stress Log File

(The first column is not a part of the analysis log file. Line numbers were added to help with the following description.)

With the above explanation in mind, the sample log file can be interpreted as follows:

  • The first time step (capture rate of 20 steps/second, DT=0.05, Time=0.05 seconds) required 4 iterations to converge (line 05, Residual = 1.306E-5, which is smaller than the default convergence tolerance of 1E-4.)
  • On the second time step, the processor detected that the solution was diverging (line 06, Residual = 1E+0). Therefore, it reduced the time step (line 07, DT=0.025 seconds, L=2).
  • The second time step, now at a time of 0.075 seconds, required 3 iterations to converge (line 09). Since this time is not an increment of the capture rate, this converged solution is not output (unless the Analysis Parameters: Output: Output results of all time steps option is activated).
  • The third time step (Time=0.1) required 3 iterations to converge (line 12). Since this time is an increment of the capture rate, this converged solution is output. The results are available in the Results environment as the model continues to solve.
  • The iterations continue at L=2 and require 3 iterations to converge at Time=0.125 seconds (line 15).
  • The iterations continue at L=2 and require 3 iterations to converge at Time=0.15 seconds (line 18).Because the model has been converging so well, the processor tries to increase the time step (back to L=1) for the next time step (line 19). Indeed, the model is able to converge at L=1 in 5 iterations (line 23).
Note: Please refer to the Convergence Plot page for information about graphically displaying the convergence history.

Riks Analysis:

The log file for a Riks Analysis is very similar to the MES and nonlinear stress log file above. One additional column appears in the output: the Load Level column. (See Table 2.) The Load Level is the multiplier for all nodal forces and moments in the model.

Line Number Time Percent DT L Iter. Residual Load Level
01 0.000000 0.00 1.000000 1 0 0.0000E+00  
02 1.000000 0.20 1.000000 1 1 1.0000E+00 1.0000E+00
03 1.000000 0.20 1.000000 1 2 4.0357E-03 1.0000E+00
04 1.000000 0.20 1.000000 1 3 1.0000E-04 1.0000E+00c
05 2.000000 0.40 1.000000 1 1 1.0000E+00 2.0000E+00
06 2.000000 0.40 1.000000 1 2 4.1056E-03 2.0000E+00
07 2.000000 0.40 1.000000 1 3 1.0000E-04 2.0000E+00c
08 3.000000 0.60 1.000000 1 1 1.0000E+00 3.0000E+00
… {text removed for brevity} …
09 30.000000 6.00 1.000000 1 3 1.0000E-04 3.0000E+01c
10 31.000000 6.20 1.000000 1 1 1.0000E+00 3.1000E+01
11 31.000000 6.20 1.000000 1 2 8.0425E-03 3.1000E+01
12 31.000000 6.20 1.000000 1 3 1.0000E-04 3.1000E+01c
13 32.000000 6.40 1.000000 1 1 1.0000E+00 3.2000E+01
14 32.000000 6.40 1.000000 1 2 8.3103E-03 3.2000E+01
15 32.000000 6.40 1.000000 1 3 1.0000E-04 3.2000E+01c
16 33.000000 6.60 1.000000 1 1 1.0000E+00 3.2693E+01
17 33.000000 6.60 1.000000 1 2 1.0976E-04 1 3.2689E+01
18 33.000000 6.60 1.000000 1 3 1.0000E-04 3.2689E+01c
19 34.000000 6.80 1.000000 1 1 1.0000E+00 3.3373E+01
20 34.000000 6.80 1.000000 1 2 1.1202E-04 3.3369E+01
21 34.000000 6.80 1.000000 1 3 1.0000E-04 3.3369E+01c
22 35.000000 7.00 1.000000 1 1 1.0000E+00 3.4046E+01
23 35.000000 7.00 1.000000 1 2 1.1427E-04 3.4041E+01
24 35.000000 7.00 1.000000 1 3 1.0000E-04 3.4041E+01c
Table 2: Sample Text From Riks Analysis Log File

(The first column is not a part of the analysis log file. Line numbers were added to help with the following description.)

In this sample, the load multiplier is initially increasing at a linear rate of 1 after each converged time step (lines 04, 07, 09, and 12) based on the user-entered Initial load factor increment of 1. The next time step also converges in three iterations (line 15). However, the load level for the next converged step (at line 18) has increased by only 0.689 (= 32.689-32.000). The subsequent converged steps show that the rate of change of the load level is continuing to decrease (lines 21 and 24 show increases of 0.680 and 0.672, respectively). If the model approaches buckling or snap through, the load level can decrease to 0 and become negative.

Common Nonlinear Analysis Error Messages:

In the course of running the analysis, you may be presented with an error or warning message from the processors. The following is a list of the common processor messages complete with a short explanation of each message.

Tip: When a warning or error message occurs with results-based load curves, it is often because the load curve variables are not setup properly. Many of these errors are a result of a mistake in the lookup value's equation. To edit the equation, go to Analysis: Parameters and choose the appropriate load curve, then Define/Edit Lookup Value to review the lookup value setup.
Error (1)
A generic error to alert the user that the analysis has failed to complete. Scan backwards in the log file from this point for a note or other text that indicates what the problem is.
ERROR: beam cross section is not defined in part, No = P Section ID = L
Cause: Beam elements assigned to a General section type (under the Element Definition) in part P are drawn on layer number L. General section types can only support layer 1.
Action: Change all the lines to layer 1 in the indicated part. (Select the part in the tree view or in the display area using Selection: Select: Part, then right-click and choose Select Subentities: Lines. Change the layer numbers to 1 by right-clicking and choosing Edit Attributes.)
ERROR: Divided by zero in result-based load curve.
Error with a results-based load (see Tip below). A division by zero has occurred while evaluating the equation for the lookup value. Check the equation for accuracy and adjust it if possible to prevent a zero value in the denominator.
ERROR: Empty brackets encountered in result-based load curve: function.
Error with a results-based load (see Tip below). The syntax of the equation for the lookup value has a problem with the grouping of the parentheses ( ). Check the equation for accuracy and correct it.
ERROR: math error, |x| must be less or equal to 1 in acos(x).
Error with a results-based load (see Tip below). The argument of the mathematical function is outside of the acceptable limits. x must be between -1 and 1.
ERROR: math error, |x| must be less or equal to 1 in asin(x).
Error with a results-based load (see Tip below). The argument of the mathematical function is outside of the acceptable limits. x must be between -1 and 1.
ERROR: math error, undefined result 0**0.
Error with a results-based load (see Tip below). An undefined expression is being evaluated in the lookup value's equation.
ERROR: math error, x must be positive in log(x).
Error with a results-based load (see Tip below). The argument of the mathematical function is outside of the acceptable limits.
ERROR: math error, x must be positive in log10(x).
Error with a results-based load (see Tip below). The argument of the mathematical function is outside of the acceptable limits.
ERROR: math error, x must be positive in sqrt(x).
Error with a results-based load (see Tip below). The argument of the mathematical function is outside of the acceptable limits.
Error: Negative active interval detected Interval number: N
Cause: A prescribe displacement has a death time that is equal to or less than the birth time. The problem occurs for displacements assigned to active range number N.
Action: Edit any of the prescribed displacements in the FEA Editor and click the Data button for the Active Range field. (The Active Range spreadsheet is shared by all prescribed displacements, so it does not matter which one is modified.) The Index rows correspond to the active ranges of all prescribed displacements. For the row indicated in the error message, change the birth and death times so that the death time is later than the birth time. Also confirm that an Index row exists for each active range defined for all prescribed displacements.
ERROR: result-based load curve does not support prescribed displacement.
Error with a results-based load (see Tip below). Prescribed displacements and actuator elements cannot be assigned to a results-based load curve. They need to be assigned to a time-based load curve.
ERROR: Section type 1 cannot be used in nonlinear part.
See ERROR: beam cross section is not defined in part above.
ERROR: Section type must be between 2 and 7. Element group number = P. Section ID = L
See ERROR: beam cross section is not defined in part above.
ERROR: Unbalanced brackets in result-based load curve: function.
Error with a results-based load (see Tip below). The syntax of the equation for the lookup value has a problem with the grouping of the parentheses ( ). Check the equation for accuracy and correct it.
ERROR: Unknown input in result-based load curve: function.
Error with a results-based load (see Tip below). The equation for the lookup value has unrecognized text. Check the equation and compare to the table of acceptable operators and functions given above.
ERROR: Unknown operator in result-based load curve: function.
Error with a results-based load (see Tip below). The equation for the lookup value has unrecognized text. Check the equation and compare to the table of acceptable operators and functions given above.
ERROR: Unknown variable in result-based load curve.
Error with a results-based load (see Tip below). The equation for the lookup value has unrecognized text. Each variable in the equation must be defined in the variable spreadsheet. Check the equation for accuracy and correct it as necessary.
Error: use incompatible modes with a model that has both linear and nonlinear element parts
Cause: Various input can cause a part to be treated as either linear or nonlinear by the processor. (Settings that affect this include pressure loading, the Analysis Type of Small Displacement or Large Displacement on the Element Definition dialog, the material model, and so on.) This error message indicates that the processor cannot solve the model because some of the parts are linear and some are nonlinear.
Action: Solutions to the problem are as follows:
  1. Set the Analysis Type of all parts to the same selection, either Small Displacement or Large Displacement. (Element Definition, General tab)
  2. Leave the Analysis Type as set, but change the Compatibility to Enforced for all the parts. (Element Definition, Advanced tab.)
No positive diagonal!
Cause: The stiffness matrix includes a zero value on the diagonal. Such matrices cannot be solved and indicate a problem in the setup of the model.
Action: For nonlinear static stress analysis, check that each subassembly in the model is restrained in all directions. For contact models, artificial springs may need to be added to provide stability for iterations in which the parts are not in contact. (Although the parts should be in contact in theory, the equilibrium iterations may reach a situation in which the parts are not in contact.) For MES analysis, check that each subassembly has mass (provides translational stiffness) and mass moment of inertia about rotational axes (provides rotational stiffness). Check the material properties (both in the FEA Editor and in the analysis summary file) to confirm that all properties are entered.
Note: the iteration method was changed to Full Newton w/o line search because Large rigid body rotation is selected for part N
When any beam element part has the Large rigid body rotation option activated, the processor must use the Full Newton w/o line search iterative solution method. This note indicates that the processor switched to this solver because of the rigid body rotation switch. Otherwise, no action needs to be taken. See the paragraph Advanced Beam Element Parameters on the page Setting Up and Performing the Analysis: Nonlinear: Element Types and Parameters: for details.
Reached autotm limit.
Cause: The analysis has reduced the time step 18 times (L=19) and has failed to converge. Since the time step is now very small, it is likely that the model has some type of stability problem.
Action: If the time step level L goes from 1 to 19 immediately, then the model is lacking some stiffness. Here are some common problems that lead to stiffness problems:
  • A nonlinear static analysis in which the model is not statically stable.
  • In full Mechanical Event Simulation analyses, stiffness problems can occur when a part has no mass and is not statically stable. (Without mass or stiffness, the part can move an infinite distance with any force.)
  • If the model includes gasket elements, the check whether the top and bottom surfaces of the gasket were defines. (See the paragraph Basic Steps for Using 3D Gasket Elements on the page Setting Up and Performing the Analysis: Nonlinear: Element Types and Parameters: 3D Gasket Elements.)
If the model is converging for a while but then the time step level L goes down to L=19, it is possible that the model has become unstable or overly stiff. For example, if using the reinforced concrete material model, perhaps the concrete cross section has completely failed; check the failure status in the Results environment. Or due to large deflection effects, perhaps the model has changed from a stable state to unstable (like a snap-through or buckling).
With surface to surface contact, the time step may be reduced to a small value (L increased to a large value) at the moment of contact if the contact stiffness is overly large; the processor will reduce the time step to change from no stiffness before contact to large stiffness just after contact.
If the analysis has been converging slowly and if the model contains brick elements, then two options to try are a coarser brick mesh or changing the mesh to a tetrahedral mesh. (Both options require the model to be remeshed.) The goal is to improve the shape of the elements which could improve the convergence. Therefore, it may only be necessary to improve the mesh quality in a few specific parts. Although the problem may be severe enough to generate a distorted element warning, the methods on the page Meshing Overview: Meshing CAD Solid Models: Model Mesh Settings: Solid: Nonpositive Jacobian Errors or Distorted Elements can also be used to review and improve the mesh quality for this situation. Keep in mind that the solid mesh statistics described on that page are for the undeformed shape; the deformation that occurs during the analysis may result in additional distortion.
STOP: exceed nonlinear part number
Cause: Various input can cause a part to be treated as either linear or nonlinear by the processor. (Settings that affect this include pressure loading, the Analysis Type of Small Displacement or Large Displacement on the Element Definition dialog, the material model, and so on.) This error message indicates that the processor cannot solve the model because some of the parts are linear and some are nonlinear.
Action: Solutions to the problem are as follows:
  1. Set the Analysis Type of all parts to the same selection, either Small Displacement or Large Displacement. (Element Definition, General tab)
  2. Leave the Analysis Type as set, but change the Compatibility to Enforced for all the parts. (Element Definition, Advanced tab.)
stop: Temperature outside range of input material property temperatures!
Temperature found = T
Should be within range: (Tmin Tmax)
Cause: The material model for a part is set to use temperature-dependent material properties. But a calculated temperature T is not between the range of temperatures (Tmin to Tmax) entered in the material properties. Since the processor does not extrapolate the material properties, the analysis cannot continue.
Action: The difficulty with this error is that the calculated temperature T often does not appear to be related to the user-entered temperatures, especially when using midside nodes. This is a product of how FEA behaves. The calculated temperatures T are at the integration points, and for theoretical reasons, these temperatures are often not between the temperatures at the nodes. For example, temperatures of 60, 40, and 70 at the corner node, offset midside node, and opposite corner may hypothetically result in temperatures at the integration points of 35, and this is the temperature for which there is no material properties. Check the following items in the model:
  1. Confirm that the temperatures are defined at all nodes (including the midside nodes if applicable) and are reasonable.
  2. Extend the material properties beyond the range of input temperatures to cover the internally calculated temperatures. Extending the material properties and rerunning the analysis may solve the problem reported by the first run, but it may encounter a different element where the internal temperature is further outside the expected range, and hence give the same message with a different calculated temperature T.

    The interpolation of the temperature curve (blue points) results in a minimum (red point) less than any of the user-defined temperatures.

STOP: Unable to determine concrete material constants (C0,A1,A2,A3) from specified concrete strengths. Check input or specify material constants directly. Element group number = X
Cause: The material properties entered for the reinforced concrete material were used to calculate the failure parameters (C0, A1, A2, A3), but the solution to the equations for these parameters could not be found. (The part or group number is identified in the error message.)
Action: Since these parameters are calculated from the strengths entered on the Strength tab of the material properties, check that the strengths are entered properly.
Otherwise, if these parameters are known, they can be entered direction under the material properties (on the Advanced tab) instead of letting the processor try to calculate them. See the page Reinforced Concrete Theoretical Description in the section Setting Up and Performing the Analysis: Nonlinear: Material Properties: Reinforced Concrete Material Properties for instructions on deriving the constants from the test data. Even if the parameters are not known, trying to calculate them may provide insight into why the processor is unable to calculate them. What input is the problem?
Time step reduction due to: tttt
When the equilibrium iterations converge, the letter c after the residual number indicates convergence. After this point in the solution, other criteria are checked to see if they satisfy convergence. If any of these additional factors are violated, the first one encountered will print out this message with the explanation (tttt), such as Time step reduction due to: contact penetration.
Warning: condition in the result-based load curve is not specified in the database.
Error with a results-based load (see Tip below). The Condition text on the Analysis Parameters contains lookup values that have not been defined. Check the condition for accuracy and correct it, or define the variables that are used in the condition text. Or, the Condition text may be blank which is acceptable and not a problem.
Warning: distorted element N in part P, maintaining its integrity!
If an element distorts greatly such that the determinant of the element is less than 0, the solution cannot be found. Hypothetically, the analysis should stop. However, the warning may occur during some intermediate iteration and recover in a later iteration. The final iteration when the time step converges may have limited element distortion and therefore be acceptable. This warning message is indicating this scenario: the element number N in part number P was distorted. To continue the analysis, its stiffness was adjusted to get a solution.
Notes:
  • The default method of handling excessive element distortion is to reduce the time step. This error will only occur if the option Time step reduction if there are distorted elements is disabled. This option is in the Time-Step tab of the Analysis Parameters … Advanced dialog box.
  • The number of warnings given per time step (not per iteration) can be limited. Depending on the settings, the log file may not show whether any warnings occurred during the last iteration at which the time step converged. See the page Controlling the Output Files for details.
Warning: driven node of pulley (part#:n) has reached the pulley.
Warning: driver node of pulley (part#:n) has reached the pulley.
Cause: A node on the pulley element n (either the Slack or the Driver, respectively) has moved far enough that it is now touching the pulley. If the node continues to move into the pulley, the mathematics are violating the physical reality. The elements connecting to the pulley element are passing through the body of the pulley.
Action: Redefine the pulley and move the end nodes farther away.
Warning: Missing hardening modulus for material, ID = n
Cause: A plastic material model has been set for part n, but the material properties are missing some data needed to calculate the strain hardening modulus.
Action: Edit the material properties for part n and enter the missing data. See the page Setting Up and Performing the Analysis: Nonlinear: Material Properties: von Mises Material Properties for details.
Warning: Nodal Coordinate is smaller than the globally defined lower bound wall Coordinate
An impact plane exists in the model, and the nodes indicated lie below the impact plane. Use the Results environment to locate the referenced node number (Inquire: Results: Specify), and then correct the location of the impact plane or the model if the warning is critical. If the node is not critical to the motion, such as a beam's k-node (usually at a very large coordinate), then the warning is not important.
WARNING! non-positive principal stretch is found.
This message indicates that a negative principal stretch was detected in a hyperelastic material model, and the principal stretch value is set to 1 to keep the integrity of the element. Negative principal stretch occurs when large distortion causes the element's Jacobian to go negative.
Warning: When there is (general) contact element used in analysis, <MES with Nonlinear Material Models> is recommended.
Cause: The analysis type is set to Static Stress with Nonlinear Material Models and includes the element type of Contact or General Contact. Such combinations can be slow to converge.
Action: First, make sure that all parts of the model are statically stable without using the contact elements. Since it cannot be guaranteed that the contact elements will be engaged on each iteration, the model may not be statically stable on each iteration. If this occurs, the analysis may stop or converge slowly. Add boundary conditions and weak spring elements as needed to make the model stable.
Second, switching the analysis type to Mechanical Event Simulation (MES) may result in better convergence. Since MES calculates the inertia of the parts, they are not free to move infinitely on a time step (provided the parts have mass).
Warning: When there is (general) contact element used in analysis, solution method <Full Newton w/ line search> is recommended.
Cause: The analysis includes the element type of Contact or General Contact, and the Nonlinear iterative solution method is not set to Full Newton with line search. Such situations can be slow to converge.
Action: Change the Analysis Parameters: Advanced: Equilibrium: Nonlinear iterative solution method to either Automatic or Full Newton w/ line search. If set to Automatic, the processor will choose the best solution method.