Troubleshooting for OptiStruct Nonlinear Convergence Issues


Troubleshooting for OptiStruct Nonlinear Convergence Issues

 

General Information and Tips:

  1. Start the model from the simplest, such as linear static with 1st order elements, then add complexity and nonlinearity one at a time. It will be easier to narrow down and find the cause of non-convergence issue.
  2. *.out file and *_nl.out file may provide some hints about the convergence issues.
  3. On-the-fly *.monitor ASCII files contain cutback information, number of iterations for each load increment, and displacement at critical nodes. It can help identify where the problem happens.
  4. On-the-fly results file *_nl.h3d can be created while job is running if NLMON is assigned to the subcase or PARAM, NLMON is used. A set of nodes where contact status changes and a set of distorted elements can be included in that file.
  5. *_e.nlm file contains energy information and users need to check it if any numerical stabilization method is used.

 

 

Convergence Issue #1

The model cannot converge at the first nonlinear increment.

 

* Cause #1

The increment step is too large.

 

* Remedy #1

            1. Increase NINC value in NLPARM card

 

2. Allow automatic nonlinear step control, which is on by default.

 

3. If NINC of 100 or even 1000 still cannot make the first increment converge, then it is not the cause.

 

* Cause #2

The mesh has some connectivity issue, or the model is not fully constrained.

 

* Remedy #2

1. The avg_U in .out file also can provide a clue – if the avg_U is very high in magnitude, it is usually a sign of rigid body motion.

 

2. Run a modal analysis and check if all the modes are reasonable and if there is any unexpected rigid body mode.

 

3. If there is any unexpected mode, make sure all elements are connected as expected, and/or apply additional constraints that make physical sense. “Free Edges” and “Faces” tool in HyperMesh are helpful to identify connectivity issue in shell and solid elements. “Free 1Ds” in “Element Quality” tool is useful to identify connectivity issues on 1D elements.

 

 

4. Rerun modal analysis and verify all unexpected normal modes are fixed.

 

* Cause #3

There are parts that are only supported by nonlinear (not FREEZE or TIE) contact.

 

* Remedy #3

 

1. If the contact pair should have no initial gap by design, CLEARANCE in the CONTACT card can be set as 0, so contacts are engaged from very start of analysis and it makes contact convergence easier.

 

2. If Step 1 doesn’t solve the problem and there are N2S contacts in small displacement model, add PARAM,EXPERTNL,CNTSTB to turn on contact stabilization.

 

3. If more detailed control of the contact stabilization is necessary, or there is contact type other than small displacement N2S, create a CNTSTB bulk card and assign it to the load case that has convergence issue.

 

* Cause #4

Some contact pairs have difficulty in convergence.

 

* Remedy #4

1. Open *_nl.out file with a text editor. Review which node has “MAX PENETRATION ERROR” and “MAX PRESSURE ERROR”. Review that contact setup if it makes physical sense and fix the setup if something is not physical.

 

2. If Step 1 doesn’t fix the issue, turn one or a few contacts to FREEZE contact at a time until the model can converge. Use this method repeatedly until the contact that is causing the convergence issue is identified.

 

3. Try softer penalty in PCONT card (STIFF = SOFT). This reduces the contact interface stiffness and makes convergence easier.

 

4. Try N2S, S2S, switch the main and secondary surfaces, and sliding contact on that problematic contact card.

 

5. If Step 1-4 still don’t fix the issue, create a CNTSTB bulk card and assign it to the load case. If the model can converge with sliding contact, that means the problem is related to friction, and increasing TFRAC (default = 0.1) value in CNTSTB card may help.

 


Convergence Issue #2

The model can converge until Load Step reaches 1.00, but fails to converge at Load Step = 1.0, no matter how small the final step increment is.

 

* Cause #1

Contact stabilization drops to 0 when Load Step = 1.0 and the contact has difficulty in converging without stablization.

 

* Remedy #1

1. If PARAM,EXPERTNL,CNTSTB is used for contact stabilization, create a standalone CNTSTB bulk card and assign to the load step that cannot fully converge.

 

2. Modify S1 input for the CNTSTB card to some small but non-zero value, such as 0.1 or 0.01.

 

3. If Step 2 makes the model converged, load *_e.nlm file into HyperGraph and monitor the contact stabilization energy. Make sure the contact stabilization energy is relatively small (for example <1%) when comparing to strain energy.

 

4. If contact stabilization energy is too high, try to reduce S0 and/or S1 value.

 


Convergence Issue #3

The model with second order elements fails to fully converge, but the same mesh and setup can converge if all elements are first order.

 

* Cause #1

SPCs, loads, or slave nodes of RBE2/RBE3 are not applied to the mid-node of second order elements.

 

* Remedy #1

1. Add SPCs, loads or slave nodes of RBE2/RBE3 to include mid-node so that all the nodes have the same boundary condition whether it is mid-node or not.

 

* Cause #2

N2S or S2S contact has difficulty converging with 2nd order elements.

 

* Remedy #2

1. Open *_nl.out file with a text editor. Review which node has “MAX PENETRATION ERROR” and “MAX PRESSURE ERROR”.

 

2. Turn one or a few contacts to FREEZE contact at a time until the model can converge. Users can start from the contact identified in Step 1. Use this method repeatedly until finding the contact that causing the convergence issue.

 

3. Try N2S, S2S, switch the main and secondary surfaces, and sliding contact on that problematic contact card.

 

4. If Step 3 still doesn’t fix the issue, create a CNTSTB bulk card and assign it to the load case.

 

5. Try soft penalty (STIFF=SOFT) or even softer with a small scale factor (-0.01) or exponential penalty in PCONT card. Please refer to the Reference Guide for more details.

 


Convergence Issue #4

The model with nonlinear contact fails to fully converge, and there are some signs indicating the problem is related to contact. For example, the numbers of open and close gap in *.out file keep changing for each iteration in the non-converged increment; or the model can converge when the type of one or more contact cards is set as FREEZE.

 

* Cause #1

The contact pair definition doesn’t reflect physics well, especially when sharp corners exist in the contact area.

 

* Remedy #1

1. Set SVNONCNV = Yes in NLOUT bulk card and assign the NLOUT bulk card to the load step. This requests the solver to save the last non-converged increment animation.

 

2. Load *.h3d animation file into HyperView and review the animation, especially the last several increments. Identify the place where contact algorithm doesn’t mimic the reality well.

 

3. Also request PARAM, NLMON, DISP or assign NLMON bulk card in subcase which will generate the *_nl.h3d file which can help with diagnostics.

 

4. Switch between N2S and S2S algorithm, and/or switch the main and secondary surfaces to make the algorithm simulates physical contact more accurately.

 

5. Sharp corner is better to be included in the secondary surface, and N2S contact works better.

 

6. If using S2S algorithm, it is better to define two separate contacts to avoid including any sharp corner in S2S contact.

7. If splitting the contact surfaces is not preferred, users can also set CORNER = AUTO in CONTACT card to have a proper corner treatment.

 

* Cause #2

The contact algorithm doesn’t work well for the given geometry.

 

* Remedy #2

1. Open *_nl.out file with a text editor. Review which node has “MAX PENETRATION ERROR” and “MAX PRESSURE ERROR”.

 

2. Turn one or a few contacts to FREEZE contact at a time until the model can converge. Users can start from the contact identified in Step 1. Use this method repeatedly until finding the contact that causing the convergence issue.

 

3. Try N2S, S2S, switch the main and secondary surfaces.

 

* Cause #3

The stiffness of the contact is too high.

 

* Remedy #3

1. Use method in Remedy #2 to identify the contact that has convergence difficulty.

 

2. Create a PCONT contact property card and set STIFF = SOFT.

 

3. Assign the PCONT property card to the problematic contact card.

 

4. Can also try exponential or quadratic penalty in PCONT.

 

* Cause #4

The secondary node or surface slides more than one element length relative to the main element.

 

* Remedy #4

1. Large displacement analysis may be needed in this case. Assign the NLPARM bulk card to the NLPARM(LGDISP) field in the load step definition.

 

2. Set TRACK = CONSLI for the contact that has large relative slide between main and secondary surfaces.

 

 

3. Large sliding contact in large displacement analysis may have its own convergence challenge. Please refer to the Convergence Issue #5 large displacement (LGDISP) section if the model still doesn’t converge with Step 2.

 


Convergence Issue #5

The model with large displacement (LGDISP) analysis fails to fully converge, but the model can converge with small displacement analysis.

 

* Cause #1

The load is too high so that the structure fails by instability or collapse and cannot take even higher load.

 

* Remedy #1

1. Use enforced displacement instead of applied force as load input.

 

2. If the problem is not solved by Step 1, create a NLADAPT bulk card and use non-zero value in the STABILIZ field. Assign the NLADAPT card to the NLADAPT field in the load step definition. Please refer to the Reference Guide to determine suitable values for STABILIZ input. Please review the static stabilization energy in the *_e.nlm output file and make sure it is small relative to strain energy.

 

3. If enforced displacement cannot be used as load input, users may create a NLPCI card that has the same id as NLPARM card. This card activates arc-length method to solve post-buckling problems.

 

4. If the problem cannot be solved by Step 1-3, users may try nonlinear transient analysis. Enforced displacement as load input and STABILIZ in NLADAPT card can still help in nonlinear transient analysis.

 

* Cause #2

Contacts have difficulty to converge.

 

* Remedy #2

1. Set TRACK = SMALL for all contacts that slide distance is smaller than average element size.

 

2. Set TRACK = CONSLI for contacts that have large relative sliding.

 

3. Please refer to Convergence Issue #3 – Remedy #2 to identify the problematic contact pair and solve the problem. Large displacement contact has different algorithm, so the settings that work best for small displacement analysis may not be the best for large displacement analysis.

 


Convergence Issue #6

The model with MATS1 material card fails to fully converge, but the model can converge if only using linear material properties.

 

* Cause #1

Stress-strain input in the solver deck doesn’t match the actual material behavior.

 

* Remedy #1

1. Check TYPSTRN field and make sure the selection of total strain or plastic strain matches the data in the stress-strain table.

 

2. Build a single element model and apply tensile load with simple support. Check if the force-displacement output meets the expectation.

 

* Cause #2

The strain goes beyond the stress-strain data provided in the MATS1 card.

 

* Remedy #2

1. Make sure such high strain is expected or makes sense. If not, something else in the model could be wrong.

 

2. By default, OptiStruct extrapolates material stress-strain curve beyond the table ranges. Add another data point at the end of the stress-strain table so that the stress strain curve has very small positive slope at the end.

 


 Convergence Issue #7

The model with MATHE material card fails to fully converge, but the model can converge if only using linear material properties.

 

* Cause #1

The material actual stress-strain behavior is different than the coupon tensile test curve.

 

* Remedy #1

1. Create a single element simple supported model, apply tensile load and monitor the element’s stress and strain output.

 

2. If the single element’s stress-strain output doesn’t agree with the material tensile test data, double check the material card inputs and modify the parameters until the single element simulation result agrees with the material tensile test result.

 

* Cause #2

Some elements’ strain is beyond the stability range.

 

* Remedy #2

1. Check .out file to see the material’s stability limitation.

 

2. Make sure the high strain in the simulation is expected and physical.

 

3. If the strain in the simulation exceeds the stability limitation, users may consider trying other hypereastic material laws.

 


Convergence Issue #8

Convergence failure due to element distortion.

 

 

 

* Cause #1

Excessive or unrealistic loading.

 

* Remedy #1

1. Check if the load direction and magnitude in the model is intentional.

 

2. Evaluate if the load magnitude is physical or realistic. If material failure is expected from the simulation, please use explicit solver such as Radioss or OptiStruct Explicit with proper material failure law.

 

3. If the load magnitude should not be adjusted, users may try enforced displacement instead of force as load input.

 

4. Users may try explicit method if Step 1-4 cannot solve the problem.

 

* Cause #2

The model is over-constrained or has over-simplified boundary assumptions.

 

* Remedy #2

1. Examine all boundary conditions including SPCs and FREEZE/TIE contact to see if they are physical. Sometimes, over-simplifying the boundary by some assumptions may over-constrain the model. For example, simplify a non-linear contact as FREEZE contact, or simplifying support from contact as SPCs.

 

2. Check *_nl.out file to see if there is any max force node in the last non-converged iteration that is close to SPC, RBE2, or FREEZE/TIE contact. If so, the element distortion may be related to them.

 

3. Adjust the boundary by making it more realistic.

 

* Cause #3

Inconsistent unit system between model, material and/or loading that leads to excessive deformation.

 

* Remedy #3

1. Exam if material properties, load magnitude, and geometry dimension are in a consistent unit system, such as mm, MPa, N, s system.

 

* Cause #4

Compression of highly confined, incompressible materials (rubber).

 

* Remedy #4

1. Review the result animations in h3d file to see if the incompressible material can expand in other directions while it is compressed in one direction, and review if there is large element deformation.

 

2. Review boundary assumptions to see if there is any constraint or contact near the incompressible material that is over-simplified. If so, improve those boundaries.

 

3. Reduce the Poisson’s ratio of the incompressible material slightly to see if it resolves the distorted element problem.

 

 

Convergence Issue #9

Analysis converging well and suddenly starts cutting back and having difficulties to converge or slow convergence in a large displacement analysis.

 

* Cause #1

There is global instability (total collapse) or local instability (local buckling, material necking, or plastic hinge).

 

* Remedy #1

1. Reduce the load magnitude to see if the solution can fully converge. If so, instability is likely to be the cause of convergence problem.

 

2. Review *_nl.out file and h3d animation to identify possible instability location.

 

3. Review the load magnitude and direction to check if total collapse is expected. Make sure the load and boundary assumptions make sense.

 

4. Apply the load via enforced displacement instead of force if possible. Track the reaction force at the enforced displacement node. This can solve convergence failure due to total collapse issue in many cases.

 

5. If Step 4 doesn’t solve the problem, keep enforced displacement as load input but create a NLADAPT bulk card and use non-zero value in the STABILIZ field. Assign the NLADAPT card to the NLADAPT field in the load step definition. Please refer to the reference guide to determine suitable values for STABILIZ input. Please review the static stabilization energy in the *_e.nlm output file and make sure it is small relative to strain energy.

 

6. If enforced displacement cannot be used as load input, users may create a NLPCI card that has the same id as NLPARM card. This card activates arc-length method to solve post-buckling problems.

 

7. If the problem cannot be solved by the previous steps, users may try nonlinear transient analysis. Enforced displacement as load input and STABILIZ still help in nonlinear transient analysis.