fbpx

The Direct Stiffness Method for Truss Analysis with Python

Build your own finite element truss analysis software using Python and tackle large scale structures

4.91
4.91/5
61 students enrolled
Play Video


What you'll learn

You’ll learn how to use the Direct Stiffness Method to build complete structural models that can be solved using Python
You’ll build your own truss analysis programme that can be used to identify displacements, reactions and internal member forces for any truss structure
You’ll learn about common models of elastic behaviour such as plane stress and plane strain and how they apply to real-world structures
You’ll learn about stiffness matrices and how the Principle of Minimum Potential Energy can be used to determine the stiffness matrix of any structural element


Description

Welcome to this DegreeTutors course on the Direct Stiffness Method for Truss Analysis with Python. The aim of this course is to equip you with the tools and knowledge to build your own truss analysis software using the Direct Stiffness Method. In this course you’ll develop a truss solver that can determine axial forces and deflected shapes for pin-jointed truss structures.

Truss solver output | DegreeTutors.com

By the time you complete this course you’ll have written a piece of software to deploy on your own analysis projects.

Understanding structural analysis theory and hand-analysis techniques is an essential requirement of any competent engineer. It informs our intuition of structural behaviour and provides a foundation from which we can analyse complex structures.

However, most large structural analyses leverage the speed of structural analysis software. And modern structural analysis software is dominated by matrix analysis methods like the direct stiffness method. In this course you’ll implement these techniques to build your own version of a structural analysis software.

This course is broken into 9 sections that build progressively towards our goal of developing a generalised truss solver.

Section 1 – Introduction and course overview

The main goal of this brief introductory section is to get your coding environment set up and to give you an idea of how we approach using and learning Python in this course.

Section 2 – Modelling Elastic Behaviour

We’ll start by focusing on fundamental models of elastic behaviour. If we don’t understand the material behaviour we can’t understand the overall structural behaviour. So the lectures in this section are very important in developing a complete understanding of structural behaviour.

Section 3 – Finite Element Equations & Stiffness Matrices

We’ll expand our focus from material behaviour to modelling structural stiffness and in particular we’ll develop a stiffness matrix for an axially loaded bar element. The aim of this section is to build a stiffness matrix that we can combine with other element stiffness matrices to model a complete structure.

Section 4 – Direct Stiffness Method: Step-by-Step

In this section we shift gears and put what we’ve learned so far to work. We’ll walk our way step-by-step through the direct stiffness method starting with very simple two bar truss. This will allow you to see the process in action on a very simple structure.

Section 5 – Direct Stiffness Method in Python

Now that you understand conceptually how the direct stiffness method works, we’ll implement it in Python using a Jupyter notebook. This is our first step along the road to building a completely general truss analysis notebook.

Section 6 – Direct Stiffness Method on Larger Structures

In section six we’re going to analyse another larger truss structure. As in section 4, we’ll walk our way through the solution step-by-step to make sure you fully understand the analysis procedure. This section is about getting the reps in and giving you more practice on a larger structure. 

Section 7 – Optimising for Larger Structures in Python

We’ll again implement our solution in code by porting our solution from section 6 into a Jupyter notebook. In this section we’ll continue taking steps towards our overall goal of a generalised truss solver by further generalising our analysis code.

Section 8 – Building a Generalised Truss Solver in Python

In section 8 we bring together all of the code we’ve worked on so far and completely generalise it. This means we’ll be writing code in this section to analyse any truss structure. This is where we finally achieve the goal of developing a generalised truss solver. 

Section 9 – Taking your Solver for a Test Drive

In the final section of the course we take a victory lap and take your new truss solver for a test drive. This short section is simply about making sure you can input structural data correctly into your solver and admiring your handy work as your code takes over and completes your structural analysis.

Who this course is for

  • Engineering students who want an introduction to computer-based methods of structural analysis
  • Engineering students who’ve studied the Direct Stiffness Method but got lost along the way
  • Engineers and students who want to see how they can leverage Python in their work
  • Engineers and students who want a tools to analyse realistic structures without resorting to commercial software

The codes developed in this course are for educational purposes only and are not tested or certified for use beyond the educational scope of this course. Always employ your own engineering judgement first and foremost, regardless of what the computer says!


Course preview

Lecture #1: Course overview

Lecture #27: Building Element Stiffness Matrices

Play Video
Play Video


Course content

Welcome and Setup

The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 1
Introduction and course overview (Preview)
(06:40)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 2
Our approach to Python (Preview)
(02:02)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 3
Getting started with Jupyter Notebooks
(12:04)

Modelling Elastic Behaviour

The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 4
Section overview (Preview)
(01:08)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 5
Stress and strain in 2D (Preview)
(14:48)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 6
Strain & displacement in 2D
(12:25)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 7
3 dimensions and matrix notation
(19:08)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 8
Plane Stress condition
(16:41)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 9
Plane Strain condition
(06:52)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 10
Material matrix summary
(08:40)

Finite Element Equations & Stiffness Matrices

The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 11
Section overview (Preview)
(01:39)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 12
Finite Element equations & the Direct Stiffness method (Preview)
(17:52)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 13
The Principle of Minimum Potential Energy
(15:18)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 14
The Finite Element equations
(13:48)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 15
Stiffness matrix for bar element
(13:13)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 16
Finite element equation review
(14:16)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 17
Transformation from local to global coordinates
(16:31)

Direct Stiffness Method: Step-by-Step

The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 18
Section overview (Preview)
(01:38)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 19
Analysis procedure overview (Preview)
(06:07)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 20
Calculating element stiffness matrices
(04:37)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 21
Building the primary stiffness matrix
(06:24)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 22
Reducing to structure stiffness matrix
(04:48)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 23
Solve for unknown displacements
(01:39)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 24
Solve for unknown reactions
(02:43)
Finding element forces
(05:31)

Direct Stiffness Method in Python

The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 26
Section overview (Preview)
(01:24)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 27
Element stiffness matrices (Preview)
(14:48)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 28
Whole structure stiffness matrix
(11:52)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 29
Reactions, element forces and nodal displacements
(12:58)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 30
Visualising our output
(13:00)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 31
Refactor – Tidying up with functions
(17:33)

Direct Stiffness Method on Larger Structures

The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 32
Section overview (Preview)
(00:57)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 33
Calculating element stiffness matrices
(04:28)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 34
Building the primary stiffness matrix
(03:47)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 35
Reducing to structure stiffness matrix
(01:44)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 36
Solve for unknown displacements
(01:05)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 37
Solve for unknown reactions
(01:19)
Finding element forces
(03:35)

Optimising for Larger Structures in Python

The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 39
Section overview (Preview)
(01:06)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 40
Building the primary stiffness matrix
(19:09)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 41
Extracting the structure stiffness matrix
(03:00)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 42
Displacements and reactions
(09:29)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 43
Calculating member forces
(04:58)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 44

Visualising our output

(10:16)

Building a Generalised Truss Solver in Python

The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 45
Section overview (Preview)
(01:06)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 46
Establishing input data
(07:16)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 47
Calculating member orientation and length
(27:43)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 48
Primary and Structure Stiffness matrices
(10:07)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 49
Displacements, reactions and member forces
(16:30)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 50
Automating the output visualisation
(10:04)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 51
Automating the text summary
(10:35)

Taking your Solver for a Test Drive

The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 52
Section overview (Preview)
(00:45)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 53
Test Question #1
(09:44)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 54
Test Question #2
(05:58)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 55
Test Question #3
(04:07)
The Direct Stiffness Method for Truss Analysis with Python | DegreeTutors.com 56
Course wrap up and debrief
(01:38)


Student Feedback

I Y Aydin

5/5

Dr Sean is an expert on this topic. I’am really so sorry that i have noticed his courses so late! I am civil engineer and master degree student in Computational Mechanics in Germany . And I can really say i would be very happy if i could become his Phd student. 🙂 I’am glad to take this course. Feel free to buy this course because its really worth it.
I hope Dr Sean accept Phd student i would be glad if i become his phd student.

September 2020


Frequently Asked Questions

You’re buying lifetime access. You’ll also get all the course updates and new lessons for FREE forever. Come back to this course for reference any time in the future.

Absolutely. Even if you watched the full course, if you’re not satisfied, contact me in the first 30 days and I will give you a full refund, no questions asked. It would be helpful if you could tell me how I can improve the course for other students.

This is a video course hosted by Podia that requires you to log in and stream the videos. The course may also include downloadable PDFs, and Jupyter Notebooks.
Yes! I’ve partnered with Podia and Stripe to handle billing and provide a secure payment facility. DegreeTutors (me) never directly handle or store your credit card information.