FINITE ELEMENT ANALYSIS OF SHELLS - EARLY ACCESS 
Section 4
Expanding to a full plate element solver
21. Section overview - Expanding to a full plate element solver
01:28 (Preview)
22. Procedurally generating a rectangular mesh
24:30
23. Defining plate constraints
11:08
24. Defining the self-weight force vector
10:35
25. Building the structure stiffness matrix
10:05
26. Solving the system and extracting reaction forces
28:13
27. Plotting the plate displacements
18:10
28. Building an evaluation grid for stress resultants
10:31
29. Calculating the moments and shears
22:00
30. Visualising the plate bending moments
14:13
31. Extracting shear forces
29:04
32. Visualising the plate shear forces
12:21
33. Adding strip and edge masking to the shear plot
26:04
34. Adding magnitude clipping to the shear plot
10:40
35. Building an interpolation utility function
09:53
17. Setting up our stiffness matrix calculation
Virtual Work and Calculating the Element Stiffness Matrix
Please log in or enroll to access resources

Summary

In this lecture, we'll cover the following:

  • Setting up a Jupyter Notebook environment.
  • Defining material and geometric constants for a finite element.
  • Representing nodal coordinates and element connectivity using NumPy arrays.
  • Constructing the generalised constitutive matrix from previously derived theory.
  • Visualising a four-noded quadrilateral element and enforcing node ordering.
  • Introducing a reusable coding workflow using utility functions.

In this lecture, we begin translating finite element theory into Python code by setting up a basic computational environment and defining the key inputs required for a single element. We establish material properties such as Young’s modulus, shear modulus, and Poisson’s ratio, along with the element thickness. We then define how nodal coordinates and element connectivity are stored using structured NumPy arrays, emphasising that this approach will scale to much larger meshes. A key conceptual point is the importance of consistent node ordering, as it directly affects the formulation of shape functions used later.

We then construct the generalised constitutive matrix by assembling bending and shear components derived from earlier theory, demonstrating how these are combined into a single matrix representation. Finally, we visualise the element using Matplotlib, labelling nodes to reinforce their ordering and spatial arrangement. The lecture concludes by introducing a clean coding workflow, where reusable functionality, such as plotting, is moved into a separate utilities file.

Next up

In the next lecture, we will use these inputs to compute a complete element stiffness matrix using Gauss quadrature.

Tags

constitutive matrixquadrilateral elementnode orderingmatplotlib visualisation

Please log in or enroll to continue

If you've already enrolled, please log in to continue.

Finite Element Analysis of Plate and Shell Structures: Part 1 - Plates

An analysis pipeline for thick and thin plate structures, a roadmap from theory to toolbox

After completing this course...

  • You will understand how Reissner-Mindlin theory enables us to accurately capture both thin and thick plate behaviour.
  • You will understand how to turn the fundamental mechanics of plate behaviour into a custom finite element solver written in Python.
  • You will have developed meshing workflows that utilise the powerful open-source meshing engine, GMSH.
  • In addition to using your own custom finite element code, you will be comfortable validating your results using OpenSeesPy and Pynite.
Next Lesson
18. Calculating an element stiffness matrix