Applies To | |||
Product(s): | STAAD.Pro | ||
Version(s): | 22.07.00.160 and Up | ||
Environment: | ALL | ||
Area: | Analysis Solutions | ||
Subarea: | Direct Analysis | ||
Original Author: | Phil Riegel, Bentley Technical Support Group | ||
How to resolve "Direct PDelta is divergent" errors during direct analysis.
Sometimes when you try to run a direct analysis, the process will terminate partway through with the following error:
To understand what this error means, it is important to note that the calculations involved in a Direct Analysis are similar to those in a P-Delta Analysis (indeed, AISC specifications require that the Direct Analysis consider 2nd order--or PDelta--effects.) An iterative procedure is used where the displaced shape of the structure produces additional moments and shears that are added to the original loads, and then the analysis is performed again. This process is done until the incremental displacements between 2 iterations is smaller than a built-in tolerance, at which point convergence is said to have been attained. If, however, the iterated displacements do not meet the tolerance criteria--even after the built-in limit for maximum number of iterations is reached--the load case is deemed to be divergent and the above error is reported.
There are a multitude of potential causes that can lead to divergent load cases, although generally speaking it tends to occur in models experiencing large displacements. As displacements increase, the 2nd order effects become more pronounced. Upon further iteration, this can in turn produce even greater displacements, and so on. This tendency, combined with the fact that the Direct Analysis also involves a reduction in stiffness, means that the Direct Analysis routine is more sensitive to large displacements, and can easily diverge or "blow up" as a result. Consequently, checking for--and resolving--large displacements is the best solution when dealing with Direct Analysis divergence errors.
When it comes to their cause, large displacements might be produced by structural instabilities, or perhaps modeling issues such as improperly established connectivity, etc. Or the model may simply lack sufficient stiffness to resist the applied loads. Regardless, in order to diagnose the problem one must run the analysis to completion to a.) review any other warnings/errors that may have been reported to see if they're relevant and b.) review the analysis results to see how the structure is actually behaving. The problem is, however, that the Direct Analysis error terminates the process before it can finish. To get around this, the best approach is to temporarily deactivate the Direct Analysis command and replace it with a P-Delta analysis command. This is useful because a P-Delta analysis will not terminate even when there are divergent load cases. The following steps outline the process:
--Go into the STAAD Editor (it can be opened by clicking the "Command File" button underneath the Utilities tab at the top of the screen). Here you will see all the text commands corresponding to your model.
--Scroll down to locate the Direct Analysis command, as shown in the screenshot below:
--Comment out the Direct Analysis command by inserting an asterisk (*) at the beginning of the line. This will deactivate the command. Please note, the Direct Analysis command may extend to several lines--make sure to comment them all out should this be the case.
--Insert a P-Delta Analysis command to replace the Direct Analysis. The end result should look like the screenshot below:
--Save and exit out of the STAAD Editor.
Now go ahead and run the analysis--it should complete this time instead of terminating due to errors. It is possible that certain load cases will still be divergent, however such instances will not terminate the whole process (unlike with a Direct Analysis). Instead, a warning will be reported to indicate which load cases couldn't converge on a solution.
Now that the analysis is complete, certain diagnostics can be performed to identify the problem.
First, review the Analysis Output file (also under the Utilities tab at the top of the screen) to see if there are any relevant warnings or errors (namely, any "zero stiffness", "instability", or "divergent load case" warnings).
Then, look over the node displacements to see how significant they are. A good, quick check is to go into the Node Displacements page in Post Processing and click on the Summary tab in the table to the right. You will see the maximum positive and negative displacements in each direction as well as the load cases that produce them (see screenshot below):
These maximum node displacements provide the most useful information when diagnosing divergence issues. In the vast majority of scenarios, they will prove to be excessive. On that note, the question often arises: what should be considered excessive? Sometimes it will be obvious, and you will see absurdly large values--say, a million inches--or even values that are reported to be "INF" or "###" (both indicate the displacement is infinite). When you encounter such clearly excessive displacements it probably means the structure has an instability issue, especially if there are suspicious warnings as well. However, what if the maximum displacements aren't so obviously extreme? Anything that looks even a little bit greater than what good engineering judgement would deem acceptable should be seen as suspicious. This will obviously vary from structure to structure, even displacements exceeding a few inches can be a red flag.
The ultimate solution to the problem is to modify the model with the goal of reducing structural displacements to a reasonable level. This may involve fixing modelling errors (say, instabilities due to connectivity problems or incorrectly defined properties), stiffening the structure (by increasing member sizes, adding bracing members, etc.), or both. Please note, there are a variety of wikis discussing how to eliminate stability problems, and the techniques they describe are applicable for these purposes as well. The following link contains a list of relevant discussions:
In addition, STAAD.pro contains a variety of utilities for checking the integrity of a structural model. For example, you can look for duplicate nodes, overlapping collinear members, or misaligned plate elements, any of which might lead to large displacements. The following wiki contains a more detailed description:
Similarly, the "Highlight Intersecting Beams" tool can be used for connectivity checks:
Another useful technique is implementing partial moment releases instead of full moment releases for modeling pinned connections. For example, using 99% moment releases introduces a small amount of extra stiffness to help with convergence (a reasonable assumption since no pinned connection in reality is truly moment-free). Please refer to the following wiki for additional information:
Partial Moment Releases - RAM | STAAD | ADINA Wiki - RAM | STAAD | ADINA - Bentley Communities
By using the techniques described above to eliminate modeling problems, and by making the necessary stiffness adjustments to the model, you will ensure practical and accurate results. Once the model has been tweaked and produces reasonable displacements--and all "instability" or "zero stiffness warnings" eliminated--the Direct Analysis can be reactivated. Simply go back into the STAAD Editor as described previously, delete the temporarily added PDELTA 5 ANALYSIS command, and delete the asterisks commenting out the Direct Analysis command lines. You should find that when you reanalyze the structure the Direct Analysis process now finishes without any errors.