P-\(\Delta\) and P-\(\delta\) Analysis

When a structure is loaded, it displaces. Once a structure has displaced, the forces act on a geometry that is different than the geometry that was initially analyzed. Secondary forces develop due to eccentricities created by these displacements. These secondary forces are known collectively as P-\(\Delta\) and P-\(\delta\) effects.

P-\(\Delta\) effects are secondary forces that develop due to the displacements of nodes in the model, while P-\(\delta\) effects are secondary forces that develop due to member displacements.

There are traditionally 2 types of procedures used to run P-\(\Delta\) analysis: 1. The iterative procedure - A basic analysis is rerun considering the effects of the displaced goemetry, leading to further displacements. These further displacements require further iterations until the displacements either converge or diverge. 2. Use of the geometric stiffness matrix Kg - A geometric stiffness matrix is added to the overall elastic stiffness matrix Ke. This adjusts member stiffnesses for the effects of member axial loads and allows for a direct linear solution if the axial load on the members is known in advance.

P-\(\delta\) effects can be captured by modeling additional nodes along the members length. This forces the analysis to track member internal displacements at the nodes during analysis. In most cases only 2 or 3 intermediate nodes are required. AISC has published an good engineering journal article discussing this method.

Procedure

Pynite can perform perform P-\(\Delta\) analysis, and with the use of internal nodes added along members P-\(\delta\) analysis. Please note that in Pynite P-\(\Delta\) and P-\(\delta\) effects are not considered for plates.

To run a P-\(\Delta\) analysis use the FEModel3D.anapyze_PDelta() method as follows:

# Run a P-Delta analysis on `my_model`
my_model.analyze_PDelta()

For a more detailed description of the options available for P-\(\Delta\) analysis see the FEModel3D documentation.

The procedure Pynite uses is as follows:

  1. Run a load combination using a simple linear-elastic analysis in order to calculate member axial loads.

  2. Run P-\(\Delta\) analysis using the axial loads determined from step 1.

  3. Check for tension/compression-only element and support convergence. If elements or supports are carrying loads they cannot carry they are deactivated. If inactive elements or supports should be seeing load, they are reactivated. We then start over at step 1 with the newly deactivated or activated elements and supports. If nothing needed to be activated or deactivated we move to step 4.

  4. Go back to step 1 for the next load combination. Repeat until all applicable load combinations have been evaluated.

Validation

AISC has provided benchmark tests found in AISC 360-16 commentary C2.1 that can be used as a guage to test a program’s P-\(\Delta\) and P-\(\delta\) analysis capabilities. Pynite’s P-\(\Delta\) and P-\(\delta\) analysis pass the AISC benchmark tests when two intermediate nodes are introduced at the third points of the members to pick up P-\(\delta\) effects. The number of nodes necessary to model P-\(\delta\) effects may vary from one model to the next.

Limitations

Note that P-\(\Delta\) and P-\(\delta\) analysis is just one part of an overall second-order analysis. See the building code for additional requirements that may be applicable, such as stiffness reductions and notional loads.

P-\(\Delta\) effects are not considered for plate elements.