One Iteration of a Second Order Analysis

I was recently asked if one Newton iteration of a second order analysis will give the same results as a first order analysis. This is a good question, and the answer depends on what you’re after.

I will explain the answer using “Benchmark problem Case 2” from Chapter C of the AISC Steel Manual Commentary. The column is a W14x48 bent about its strong axis (A=14.1 in2, I=484 in4). Shear deformations are neglected.

For an axial load of 100 kip, the free end displacement should be 1.33 in using a second order analysis, while with no axial load (first order analysis), the free end displacement should be 0.901 in. The horizontal reaction at the base should be 1 kip for both first and second order analysis.

To test the benchmark problem in OpenSees, let’s use three analysis options:
1. First order analysis
2. Second order analysis
3. One iteration of second order analysis

For the first order analysis (option 1), we create a geometrically linear transformation and a small deformation force-based element with elastic sections. Otherwise, it’s the P\Delta transformation and a large deformation CBDI force-based element.

ops.section('Elastic',12,E,A,I)
ops.beamIntegration('Legendre',8,12,3) # Three Gauss points

if analysis == 1:
    ops.geomTransf('Linear',25)
    ops.element('forceBeamColumn',1,1,2,25,8)
else:
    ops.geomTransf('PDelta',25)
    ops.element('forceBeamColumnCBDI',1,1,2,25,8)

For the second order analysis with one iteration (option 3), we use a convergence test with maxIter=1 and pFlag=5, which will force the analysis to accept the response after one iteration. The other two options use a standard convergence test.

if analysis == 3:
    ops.test('NormUnbalance',1e-8,1,5)
else:
    ops.test('NormUnbalance',1e-8,10,1)

ops.algorithm('Newton')

Applying the loads in one step, the results from OpenSees for the three analysis methods are:

Analysis option: 1
Free end displacement: 0.901
Base reaction: -1

Analysis option: 2
Free end displacement: 1.33
Base reaction: -1

Analysis option: 3
Free end displacement: 0.901
Base reaction: -0.719

Both options 1 and 2 give their expected displacements and satisfy equilibrium. Although option 3, the second order analysis with one iteration, gives the same displacement as the first order analysis, the horizontal reaction is not in equilibrium with the applied load. So, this approach is not the same as a first order analysis.

A conceptual representation of the three analysis options is shown below.

The results of option 3 are consistent with what’s described in this somewhat abstract post on the linear algorithm. This post on second order analysis is much more concrete.


If you are interested in more verification examples of geometric nonlinearity in OpenSees, check out this report.

2 thoughts on “One Iteration of a Second Order Analysis

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.