ACCESS THE COMPLETE LIBRARY OF COURSES & TUTORIALS 
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
51. Generating a QUAD mesh with GMSH
Meshing with GMSH and Python
Please log in or enroll to access resources

Summary

In this lecture, we'll cover the following:

  • How to set up and reference the Gmsh library and its Python API.
  • How to define geometry using points, lines, loops, and surfaces.
  • How to implement a function to generate a finite element mesh for a polygon.
  • The difference between transfinite meshing for quadrilaterals and general meshing for arbitrary shapes.
  • How to extract and structure mesh data (nodes and elements) for further analysis.

In this lecture, we build our first finite element mesh using Gmsh within a Python environment. We begin by exploring the available documentation and examples, then move on to installing and initialising the Gmsh library. We define a simple rectangular geometry using corner points and develop a reusable function that can accept arbitrary polygonal inputs. The workflow in Gmsh is introduced step by step: adding points, connecting them with lines, forming a curve loop, and finally defining a surface to be meshed.

We then focus on meshing strategies, distinguishing between structured transfinite meshing for quadrilateral domains and a more flexible, option-driven approach for general polygons. We configure meshing algorithms, control mesh density, and discuss practical considerations such as mesh size and computational cost. Finally, we generate the mesh and extract key data - node coordinates and element connectivity, organising it into a structured dictionary suitable for downstream finite element analysis.

Next up

With the mesh generated, the next lecture focuses on building a visualisation function to inspect and verify the mesh.

Tags

Gmsh Python APItransfinite meshingquadrilateral elementsmesh generation functionfinite element preprocessing

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
52. Visualising the custom mesh