Finite Element Analysis of Plate and Shell Structures: Part 2 - Shells

Finite Element Analysis of Plate and Shell Structures: Part 2 - Shells

Expanding from plate to shell elements - build a workflow that unlocks the behaviour of 3D shell structures

Get notified when we launch 🚀

After completing this course...
You will understand how we make the leap from Reissner-Mindlin plate elements to shell elements and what extra modelling fidelity that provides.
You will be comfortable using a combination of GMSH and the open-source 3D modelling software, Blender, to generate custom finite element meshes.
You will be able to use OpenSeesPy to model shell structures, as an alternative to your own custom finite element solver.
You will have a much greater understanding of what commercial finite element packages are doing, behind the UI, allowing you to authoritatively interrogate their results.
COURSE OVERVIEW

Analytical techniques are great for modelling the simplified behaviour of plate and shell structures, but we quickly run into their limitations when we stray beyond the limiting geometry or assumptions that the models are built upon.

Hyperboloid shell analysis.

Analytical modelling of a hyperboloid shell using thin plate membrane theory.

This is where finite element modelling comes into its own. In this course, we’ll cover the finite element modelling of plate structures by building our own solver based on the incredibly versatile Reissner-Mindlin theory. This approach will allow us to model both thick and thin plate elements, resulting in an extremely versatile and accurate analysis pipeline.

Finite element analysis of a hyperboloid capturing both membrane and bending behaviour and not limited by thin plate theory assumptions. | EngineeringSkills.com

Finite element analysis of a hyperboloid capturing both membrane and bending behaviour and not limited by thin plate theory assumptions.

Building your own solver will give you a much deeper understanding of the underlying theory. That said, we’ll also cover how to implement the same solutions using OpenSeesPy and Pynite - two free and open-source Python libraries.

To complete our modelling and analysis toolset, we’ll also cover mesh generation using a procedural workflow that uses GMSH, an incredibly powerful open-source meshing library.

Once you’ve completed this course, you’ll have a complete workflow for the analysis of plate structures, backed by a fundamental understanding of the Reissner-Mindlin theory that powers it all! You'll also be ready to expand your knowledge to shell structures in the next course in this series.

Course Breakdown

ℹ️ Section by Section Release

This course is being released section by section; as each new section is completed, I’ll be pushing those lectures live inside the course. The course index (on this page) shows the currently available lectures and the sections.

âś… Section 1: Welcome and Setting the Scene

In section one, we outline the course’s main objectives and address housekeeping topics such as how to get help and support and what background knowledge would be beneficial. We’ll also cover a high-level introduction to Reissner–Mindlin theory and discuss why it’s at the heart of the course. Section one is recommended for all course participants.

âś… Section 2: The Mechanics of Plate Elements

In section 2, we begin to dig into the core mechanics. We’ll work through Reissner-Mindlin plate theory and build up the core equations required to establish the element stiffness matrix - the fundamental building block of our solver. If you’re not concerned with the underlying mechanics, you can skip this section and move straight into section 3.

âś… Section 3: Virtual Work and Calculating the Element Stiffness Matrix

In section 3, we’ll initially focus on how the principle of virtual work leads us to the equations for the element stiffness matrix and equivalent force vector for the element. From here, we briefly review the Gauss quadrature numerical integration technique used to calculate the stiffness matrix and force vector.

With the theoretical development complete, we’ll turn our attention to Python implementation and focus on how to actually compute the stiffness matrix and equivalent force vector. Lectures 17 to 20 are recommended for anyone who wants to implement the custom FEM solver in the next section.

âś… Section 4: Expanding to a Full Plate Element Solver

In section 4, we take what we implemented on a single element level in the previous section and expand it to build a solver for a rectangular plate consisting of multiple elements. This is our first big coding section where we implement a complete plate solver from scratch.

âś… Section 5: Benchmarking against OpenSeesPy and Pynite

In section 5, we validate the output from our custom analysis against equivalent structural models built with both OpenSeesPy and Pynite. Validating our code against these open-source libraries is critical at this early stage and will allow us to move forward with more confidence in our work. It will also surface a phenomenon known as shear-locking, which we’ll need to tackle to ensure the accuracy of our custom solver.

Comparing the output from our custom solver to OpenSeesPy, Pynite and Navier's solution for thin plates. | EngineeringSkills.com

Comparing the output from our custom solver to OpenSeesPy, Pynite and Navier's solution for thin plates.

âś… Section 6: Meshing with GMSH and Python

So far, all of our plate analysis has been on rectangular plates that consist of rectangular elements. Practically, we’ll need to be able to analyse plates of all shapes and sizes consisting of non-rectangular or quadrilateral elements. To do this, we’ll need a more sophisticated method of generating finite element meshes. This can be quite a complex pre-process step, so to help us out here, we’ll introduce GMSH, another open-source library, in section 6. Our aim in this section is to build the pre-processing meshing step that we can build into our analysis pipeline.

Custom finite element mesh generated using GMSH. | EngineeringSkills.com

Custom finite element mesh generated using GMSH.

Section 7: Custom mesh finite element analysis

In section 7, we'll use our new meshing functionality from the previous section to build a custom finite element mesh that much more closely resembles a real world slab. We will then modify our solver code to directly process this mesh. We'll analyse the structure using our custom solver and again validate this result against an OpenSeesPy solution. This is going to throw up an interesting side-effect of our earlier attempts to eliminate shear locking using selective integration!

Section 8: Eliminating zero-energy displacements

In the previous section, we saw that our attempts to eliminate shear locking by using selective integration revealed another interesting problem - zero energy displacements or zero energy mechanisms. So, for our Reissner-Mindlin element to be truly effective we need a strategy to eliminate this behaviour. In this final section, we'll explore a popular approach to do just that, using assumed transverse shear strain fields. Once implemented, we'll have a robust and versatile Reissner-Mindlin element.

Custom mesh finite element analysis displacement . | EngineeringSkills.com

Custom mesh finite element analysis displacement .

Who is this course for?

  • Engineers and student engineers that want to build a deeper understanding of the mechanics of plate structures.
  • Engineers that want to leverage the power of Python and in particular open-source tools for complex structural analysis.
  • Anyone who has completed Finite Element Analysis of Continuum Structures in Python and wants to expand on what was covered in that course.
ℹ️ Completion Certificates

Note that certificates of completion will be available for download when the full course is published.

Section 2
Expanding the Mechanics for Flat Shell Elements
Section 3
Building a Shell Element Solver
Section 4
Generating shell mesh data
Section 5
Benchmark case-studies
Section 6
Comparison with OpenSeesPy
Ready to get started?

Get notified when we launch 🚀

getting-started
Dr Seán Carroll
BEng (Hons), MSc, PhD, CEng MIEI, FHEA
Hi, I’m Seán, the founder of EngineeringSkills.com. After spending 10 years as a university lecturer in structural engineering, I started EngineeringSkills to help more people understand engineering analysis and design and get as much enjoyment from studying it as I do. Feel free to get in touch, follow me on LinkedIn and subscribe to the EngineeringSkills Youtube channel.

Do you have some knowledge or expertise you'd like to share with the EngineeringSkills community?
Check out our guest writer programme - we pay for every article we publish.
You might also be interested in...
Finite Element Analysis of Continuum Structures in Python
Finite Element Analysis of Continuum Structures in Python
Use the Isoparametric Finite Element Method to build an analysis tool for 2D structures in Python.

Frequently asked questions