FINITE ELEMENT ANALYSIS OF SHELLS - NEW LECTURES 
25. Visualising element reference frames
Building a complete shell element solver
Please log in or enroll to access resources

Summary

In this lecture, we'll cover the following:

  • How to build a function that draws the local xx, yy and zz axes on every element,
  • How to position those axes at the centroid of each element and extract the direction vectors from the rotation matrix,
  • How to optionally label each axis with text and tie the new plotting function into our existing figure.

We start with a quick clean-up. At the end of the previous lecture, we left out a small step: converting our list of elements into a NumPy array. We add that step in so that array operations like subtracting one from every entry will work as expected. With that fixed, we move on to the main task of the lecture, which is plotting the local reference frame on each element so that we can visually verify the rotation matrices we built. We define a new function called draw_all_axes that takes our figure, the rotation matrices, the nodes, the elements, an axis scale, and a Boolean flag controlling whether or not to display text labels on the axes.

Inside the function, we set up a small dictionary that ties each axis name (x,y,z)(x, y, z) to the corresponding row index in the rotation matrix and to a colour (red, green and blue). For every element, we calculate its centroid as the origin of the local frame, extract the relevant rotation matrix, and then iterate through each axis to plot a short line from the centroid in the direction of that axis. We use Plotly's scatter3d for the lines, optionally add text labels at the ends, and finally return the modified figure. When we re-plot the mesh and overlay the axes, we can see that the x-axis aligns with the first edge of every element, the z-axis is normal to the surface, and the y-axis sits mutually perpendicular to both, exactly as we expect.

Next up

In the next lecture, we will identify which nodes and degrees of freedom are restrained on our shell.

Tags

local axesreference frame visualisationPlotlyelement axesdebugging plots

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 2 - Shells

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

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.
Next Lesson
26. Identifying shell restraints