Summary
In this lecture, we will cover the following:
- How to assemble the primary structure stiffness matrix, element by element,
- How to reduce the primary stiffness matrix down to the structure stiffness matrix by removing rows and columns associated with restrained degrees of freedom.
This lecture is really the heart of our finite element implementation. We start by importing everything from our utils file so that we have access to the stiffness matrix calculation function we built and saved at the end of the last section.
We then loop through every element and, for each one, extract its transformation matrix and its local and coordinates. We pass these into our stiffness matrix calculation function which returns the local element stiffness matrix. We then transform this into a global stiffness matrix using our previously calculated element transformation matrix.
To work out where in the primary stiffness matrix this contribution slots in for the current element, we calculate the relevant degrees of freedom for each node that define the element. With a little help from Numpy, we turn the element degree of freedom list into an index array that lets us directly add the element's contribution into the correct rows and columns of the primary stiffness matrix in a single line. Once we have looped through every element, we delete the rows and columns corresponding to restrained degrees of freedom to produce the reduced structure stiffness matrix, which is the version we will ultimately invert.
Next up
In the next lecture, we will build the global force vector for our structure using the self-weight of the shell.
Tags
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.
