What you'll learn
You’ll be able to apply the Direct Stiffness Method to analyse 3D space frame structures in Python.
In this DegreeTutors course, we leave the two-dimensional world and expand our horizons into the world of three-dimensional structural analysis! After completing this course, you’ll be able to turn a structure from your imagination, into a 3D model that you can analyse using the Direct Stiffness Method, implemented in Python.
We often simplify our real-world structures down into 2D models. This can greatly simplify our analysis and in many cases we lose very little information as a result. 2D analysis often gives us the right balance between speed, simplicity and accuracy. For this reason, most undergraduate engineering courses focus almost exclusively on 2D planar structural analysis.
However, 2D structural analysis has its limitations. As the geometry of our structures becomes more complex the degree to which they can be accurately represented with planar models diminishes. As a result, the accuracy of our models deteriorates and model output drifts further and further from reality. At this point, it can help to expand into the third dimension.
The popularity of Biomimetic Architecture and the complex geometric forms it produces also call for more fidelity in our structural models. The challenge of trying to model the behaviour of space frame or shell structures with complex geometry and compound curvatures is a daunting one. Norman Foster’s Gherkin Tower (2003) has a hexagonal skin inspired by the Venus Flower Basket Sponge. The fully triangulated perimeter structure makes the building rigid enough without any extra reinforcements . By combining some 3D modelling skills with knowledge of matrix based structural analysis we can start to decipher the structural behaviour of this structure.
In this course we’re going to build on what we learned in our study of The Direct Stiffness Method for Truss Analysis with Python. We’ll expand the code developed in that course to accommodate 3D space frame structures.
You’ll see that expansion of the Direct Stiffness Method from 2D to 3D is readily achieved with some logical alterations to our code. You should only take this course after first completing the prerequisite course. This will give you the foundation you need to get the most from this course.
Once our analysis code is complete, we’ll turn our attention towards how best to generate the geometric data that defines our structure. For this we’ll turn to a powerful open-source 3D modelling tool called Blender . By harnessing some simple 3D modelling tools, we open the door to analysing the behaviour of any structure. We are limited only by our imagination! With its powerful 3D modelling tools and Python API, Blender is an excellent fit for our structural analysis workflow.
Section 1: Welcome and PreliminariesAfter some brief introductions in section one, we install some helpful tools that make life a little easier inside your Jupyter Notebooks. We won’t hang around for long in section one. With the housekeeping taken care of, we quickly move onto some structural analysis in section 2.
Section 2: Expanding from 2 to 3 DimensionsIn section 2 we’re going to explain exactly how we can expand the direct stiffness method for 3 dimensions. This theory section, is well worth watching and taking your time with so that you fully understand the foundations of what we’re doing for the rest of the course. You’ll be pleased to hear that this expansion is a lot more straightforward than you might imagine.
Section 3: Coding the Third DimensionAfter explaining the underlying theory in section 2, in section 3 we’re going to actually implement the required changes to our code. Our starting point here is the code we developed for plane truss analysis in the prerequisite course. We’ll work our way systematically though the code over the course of a few lectures and tackle each of the amendments one by one, explaining as we go.
Section 4: Improving the User ExperienceIn section 4, we’re going to make a couple of small changes to our code that improve its usability. This is a short section in which we implement a colormap to better visualise the magnitudes of member forces and we’ll also implement some user interface widgets to make plot manipulation a little easier. With these modifications we will have successfully modified our code and technically completed all of the modifications we need to make. From here on our efforts are going to be on making it easier to develop larger 3D structural models that play nicely with our Jupyter Notebook.
Section 5: Building 3D Structures in BlenderSo, in section 5, we dive headfirst into Blender, our 3D modelling software. After getting Blender installed, I’ll give you a whistle stop tour of the interface and demonstrate some modelling tools to give you a sense of how we’ll be using it to build our structural models. Blender is a huge programme with a lot of functionality, but we’ll keep things fairly focused here on just what we need to know to build our structural models.
Section 6: Jupyter/Blender Data TransferAt this point, we have a very nice piece of structural analysis software in the form of our Jupyter Notebook. We also have a very powerful 3D modelling tool in which our structural models live. However, things really come to life when we start to move data between the two. So section 6 is all about facilitating that data transfer between Blender and our Jupyter Notebook and vice versa.
Section 7: Case Study StructuresFinally in section 7, we take a victory lap and use our shiny new skills to model some interesting structures and run them through our 3D solver. We’ll do some minor code development in section 7 to further streamline our workflow between Blender and our Jupyter Notebook. You’ll also find it helpful to see more examples of how to take advantage of Blender’s modelling capabilities.
Course Updates:This section is where ongoing course updates and new lectures are added. These may be from student suggestions or new ideas that come to mind after the course is published. The latest update focuses on including the self-weight of the structure in the analysis. We’ve also implemented individual member cross-sectional areas for added flexibility.
Who this course is for
- Students and engineers who’ve studied matrix analysis methods but never explored the 3D potential of this analysis technique.
- Students and engineers who’ve taken our truss analysis or beam and frame analysis course and want to continue learning and expanding their abilities.
- Anyone who wants to leverage programming as a tool for structural analysis or within their day-to-day study or work.
Although not absolutely essential, it is highly recommended that you complete the prerequisite course before starting this course.
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!
Lecture 1: Introduction and course overview
Lecture 25: Basic modelling - organic/curved structures
Welcome and Preliminaries
Expanding from 2 to 3 Dimensions
Coding the Third Dimension
Improving the User Experience
Building 3D Structures in Blender
Jupyter/Blender Data Transfer
Case Study Structures
Frequently Asked Questions
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.
Ready to get started?
Or save 35% with the Direct Stiffness Method Bundle
The Direct Stiffness Method for Truss Analysis with Python
Build your own finite element truss analysis software using Python and tackle large scale structures.
After completing this course…
- You’ll understand how to use the Direct Stiffness Method to build complete structural models that can be solved using Python.
- You’ll have your own analysis programme to identify displacements, reactions and internal member forces for any truss.
- You’ll understand how common models of elastic behaviour such as plane stress and plane strain apply to real-world structures.
Beam & Frame Analysis using the Direct Stiffness Method in Python
Build a sophisticated structural analysis software tool that models beams and frames using Python.
After completing this course…
- You’ll understand how to model beam elements that resist axial force, shear forces and bending moments within the Direct Stiffness Method.
- You’ll have your own analysis software that can generate shear force diagrams, bending moment diagrams, deflected shapes and more.
- You’ll understand how to model rotational pins within your structures, inter-nodal distributed loading and realistic flexible supports.
3D Space Frame Analysis using Python and Blender
Develop tools to model and analyse complex 3D space frame structures using Python.
After completing this course…
- You’ll understand how to apply the Direct Stiffness Method to solve 3D space frame structures.
- You’ll have your own analysis programme to identify displacements, reactions and internal member forces for any 3D space frame.
- You’ll be able to use Blender, a powerful open source 3D modelling software to build, visualise and export your structural models.