Finite Element Analysis of 3D Structures using Python

Build your own complete 3D structural analysis software in Python using the Direct Stiffness Method
Welcome and Preliminaries
1. Introduction and course overview
4 mins
2. What you should cover before this course
4 mins
The 3D Beam Stiffness Matrix
3. Section overview
2 mins
4. Review of the 2D stiffness matrix
17 mins
5. 3D beam elements
8 mins
5.1 3D beam elements [PDF Slides]
5.25 MB
6. Minor axis bending and transverse shear
12 mins
7. Torsion & completing the stiffness matrix
5 mins
7.1 Torsion & completing the stiffness matrix [PDF Slides]
1.4 MB
Rotations in 3D Space
8. Section overview
2 mins
9. An introduction to 3D reference frames
13 mins
9.1 An introduction to 3D reference frames [PDF Slides]
3.21 MB
10. Direction cosines & the 3D bar transformation matrix
7 mins
11. Building the 3D beam transformation matrix
17 mins
Generating 3D Frame Data in Blender
12. Section overview
3 mins
13. Building and exporting a basic frame
11 mins
14. Exporting frame data from Blender
20 mins
15. Exporting structural supports
18 mins
16. Exporting point load data
8 mins
16.1 Blender File - (lectures 13-16)
669 KB
17. Importing our frame data
27 mins
18. Building the force vector
9 mins
19. Visualising our structure with matplotlib
18 mins
19.1 Jupyter Notebook - (lectures 17-19)
19.6 KB
Building the Transformation Matrix
20. Section overview
2 mins
21. Defining a default member orientation
15 mins
22. How to define a local member reference frame
18 mins
23. Building the local member reference frame
19 mins
24. Calculating member reference frames and lengths
10 mins
24.1 Jupyter Notebook - (lectures 21-24)
163 KB
Building and Solving the Stiffness Matrix
25. Section overview
2 mins
26. Building the global element stiffness matrix
14 mins
27. Building the primary stiffness matrix
10 mins
28. Extracting the structure stiffness matrix
5 mins
29. Solving for displacements and reactions
9 mins
30. Solving for member actions
18 mins
30.1 Jupyter Notebook - (lectures 26-30)
165 KB
Visualising Results in 3D
31. Section overview
3 mins
32. Plotting the deflected shape
13 mins
33. Plotting the axial force heat map
26 mins
34. Build the local bending moment diagram
14 mins
34.1 Jupyter Notebook - (lectures 32-34)
168 KB
35. Plotting the 3D bending moment diagram
27 mins
35.1 Blender File
669 KB
36. Build the local shear force diagram
5 mins
37. Plotting the 3D shear force diagram
15 mins
38. Generating detailed text output
21 mins
39. Exporting deflections to Blender
16 mins
39.1 Blender File
685 KB
39.2 Jupyter Notebook - (lectures 35-39)
187 KB
Implementing Bar Bracing Elements
40. Section overview
2 mins
41. Exporting bar elements from Blender
14 mins
41.1 Blender File
685 KB
42. Identifying rotational releases
21 mins
43. Assigning areas to bar elements
4 mins
44. Bar element stiffness matrix
6 mins
45. Adding bars to the primary stiffness matrix
8 mins
46. The structure stiffness matrix with bars
16 mins
47. - Solving for axial forces in bar elements
13 mins
47.1 Jupyter Notebook - (lectures 40-47)
186 KB
Implementing Pinned Members
48. Section overview
3 mins
49. Constructing a fixed-pinned stiffness matrix
10 mins
49.1 Fixed-pinned stiffness matrix [PDF Slides]
1.5 MB
50. Exporting pinned elements from Blender
7 mins
50.1 Blender File
692 KB
51. Identifying pinned members in our code
15 mins
52. Element stiffness matrix with pin at node i
11 mins
53. Element stiffness matrix with pin at node j
6 mins
54. Adding pinned elements to the primary stiffness matrix
7 mins
55. Solving for pinned member actions
18 mins
55.1 Jupyter Notebook - (lectures 51-55)
189 KB
Implementing Distributed Loading
56. Section overview
3 mins
57. Identifying distributed loads in Blender
5 mins
57.1 Blender File
696 KB
58. Importing distributed loading information
4 mins
59. Equivalent nodal actions - Part 1
21 mins
60. Equivalent nodal actions - Part 2
12 mins
61. Updating the global force vector
8 mins
62. Removing ENA from reactions
4 mins
63. Removing ENA from member actions
16 mins
63.1 Jupyter Notebook - (lectures 58-63)
193 KB
Bridge Analysis Case Study
64. Section overview
4 mins
65. Reviewing the bridge structure
14 mins
66. Building the structural bridge model
28 mins
66.1 Blender File
4.92 MB
67. Model data export/import
11 mins
68. Reviewing our results
8 mins
68.1 Jupyter Notebook - (lectures 67-68)
188 KB
69. Course wrap-up & Certificate of Completion
4 mins
Appendix: Building 3D structures in Blender
A1. Section overview
2 mins
A2. How can Blender help us?
7 mins
A3. Downloading and installing Blender
4 mins
A4. Blender overview and interface basics
16 mins
A5. Object versus Edit mode
11 mins
A6. Basic modelling - rectilinear structures
11 mins
A7. Basic modelling - organic/curved structures
19 mins
Course Updates
This section is reserved for 'post-release' updates to the course...for those good ideas and suggestions that come in from students taking the course. 

So far, we have expanded to consider,
  • automatic self-weight calculation
70. Self-weight part 1 - bar elements
15 mins
71. Self-weight part 2 - beam elements
12 mins
71.1 Jupyter Notebook - (lectures 70-71)
195 KB
72. Member rotations part 1 - Identifying members to rotate
9 mins
72.1 Blender File
117 KB
73. Member rotations part 2 - Implementing rotation overrides
24 mins
73.1 Jupyter Notebook - (lectures 72-73)
333 KB