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
31. Extracting shear forces
Expanding to a full plate element solver
Please log in or enroll to access resources

Summary

In this lecture, we'll cover the following:

  • Fixing indexing inconsistencies when storing and retrieving element numbers in the evaluation grid
  • Refining the mesh density to improve visual resolution of results
  • Attempting to visualise transverse shear forces (Qx and Qy) using heat maps
  • Identifying issues with averaging shear values at shared nodes, leading to misleading plots
  • Demonstrating the “banding” artefact caused by opposing shear contributions from adjacent elements
  • Developing a method to remove non-unique data points using NumPy’s unique, inverse mapping, and counts
  • Constructing a Boolean mask to retain only uniquely defined coordinate points
  • Handling floating-point precision by converting coordinates into integer “keys”
  • Applying the filtering process to generate a reduced shear evaluation grid for accurate visualisation

In this lecture, we focus on visualising transverse shear forces across a slab and uncover why a straightforward plotting approach fails. We begin by correcting a small indexing issue in the evaluation grid and refining the mesh to improve resolution. When we attempt to plot shear forces directly from averaged data, we observe unrealistic artefacts that present as a banding effect, caused by averaging opposing shear values from adjacent finite elements. This highlights a key distinction between bending moments, which can be safely averaged, and shear forces, which cannot.

To address this, we develop a more robust approach by filtering out non-unique data points at locations where multiple elements contribute conflicting shear values. We walk through a simplified example to build intuition, then implement a masking technique using NumPy to retain only coordinates that appear once. To ensure numerical reliability, we convert floating-point coordinates into integer-based keys before comparison. By applying this filtering process, we obtain a refined set of evaluation points that allow us to clearly represent the shear distribution and are suitable for meaningful visualisation in the next step.

Next up

With the shear data cleaned, the next lecture focuses on visualising the shear force distributions using properly ordered and reshaped grid data.

Tags

transverse shear visualisationfinite element post-processingnumpy unique maskingshear force artefactsslab analysis

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
32. Visualising the plate shear forces