Updated 6 July 2025
Reading time: 32 mins

Non-linear Analysis of Steel Sections Under Combined Axial and Bending Loads

Implementing Moment-Curvature and P-M Interaction using Fiber-Based Modelling in OpenSeesPy
[object Object]
by Dr. Ing. Muhammad Hisham Al Hanoun
Download the complete Jupyter Notebook for this tutorial.

Download the complete Jupyter Notebook for this tutorial.

A quick introduction from Seán

In this tutorial, Hisham is back with another excellent tutorial, focusing again on some of the more advanced aspects of structural modelling using OpenSeesPy. This time, we're looking at how to perform a non-linear analysis of steel sections under combined axial and bending loads. Hisham explores important concepts such as moment-curvature analysis and P-M interaction to assess stiffness degradation, axial load effects on moment capacity, and section ductility - all using OpenSeesPy's powerful modelling and analysis capabilities. If you want to explore non-linear behaviour of steel sections, this tutorial is an ideal starting point.

Tutorial breakdown

📍 1.0 Introduction

We start by defining some of the key concepts and terminology that we'll be using throughout the tutorial.

📍 2.0 Our Step-by-Step Roadmap

In section two we lay out the step-by-step roadmap. This will give us a good overview of the various steps we'll be taking to complete the analysis.

📍 3.0 Getting Started and Function Definition

In section three we complete the bulk of the preparatory work - most importantly we define the main function and helper sub-functions that will drive our analysis.

📍 4.0 Case Study Analysis

With all of the prep work completed, in section 4, the main analysis can begin. We'll perform a moment-curvature analysis to characterise the section's response under combined axial and bending loads. This will be repeated for a range of axial loads to produce the P-M interaction diagram, characterising the section's strength under combined axial and bending loads.

📍 5.0 Conclusion

In section 5 we wrap up the tutorial by summarising what we've learned and providing some final thoughts.

📂 Make sure to download the Jupyter Notebook (linked above) to run locally as you read through the tutorial. There are quite alot of large code blocks in this tutorial, so it's best to download the notebook rather than copy and pasting the code from this page.

Dr Sean Carroll
Dr Seán Carroll CEng MIEI
Founder of EngineeringSkills.com

1.0 Introduction

Structural engineers often need to assess the non-linear response of steel sections under combined axial and bending loads. The moment-curvature analysis and P-M interaction are fundamental tools in this assessment, providing insights into:

  • stiffness degradation under increasing moment,
  • axial load influence on moment capacity,
  • ultimate strength and ductility of the section.

This tutorial guides you through implementing fiber-based modelling in OpenSeesPy to evaluate these behaviours accurately.

📌 Fiber-Based Modelling

In OpenSeesPy, fiber-based modelling is a technique used to represent the cross-sectional behavior of structural elements by discretising the cross-section into a collection of small "fibers". Each fiber contributes to the overall force-deformation response of the section. Fiber-based modelling is particularly useful for non-linear analysis when the material exhibits non-linear stress-strain behaviour.

The workflow begins with initialising our development environment, importing necessary libraries, and setting up OpenSeesPy. This is followed by the definition of units, variables, and utility functions to streamline the modelling process.

A fiber section model is developed to capture the non-linear behaviour under combined axial and bending loads. This includes defining the fiber geometry, material properties, and visualisation tools, ensuring an accurate representation of the section.

The moment-curvature response is then evaluated under different axial load levels, and a P-M interaction analysis is conducted to characterise the section’s strength under biaxial bending.

📌 P-M Interaction

P-M interaction (axial force-moment interaction) defines the relationship between axial load (P) and bending moment (M) capacity of a cross-section. A P-M interaction diagram illustrates how the presence of axial load affects a section’s ability to resist bending and vice versa.

For example, a section under high axial compression will have reduced moment capacity. The P-M interaction curve represents all combinations of axial load and bending moment that a section can sustain without failure, making it a critical tool for assessing the performance of structural members under combined loading.

After completing this tutorial, you will have hands-on experience in fiber-based section modelling and non-linear section response analysis using OpenSeesPy. The methodology we’ll work through provides a robust framework for assessing steel section behaviour, offering insights into the interaction between axial and bending actions in structural elements.

To continue reading, please support us by subscribing.

All Access Membership

Learn, revise or refresh your knowledge and master engineering analysis and design

Access Every Course and Tool

  • Over 1040 lectures & over 212 hours of HD video content
  • Access member-only 'deep dive' tutorials
  • Access all downloads, pdf guides & Python codes
  • Access to the StructureWorks Blender addon + updates
  • Packed development roadmap of courses & tutorials
  • Price Guarantee – avoid future price rises as we grow
  • Priority Q&A support
  • Course completion certificates
  • Early access to new courses