Now that we have a sense of what’s causing the zero-energy displacements in our model, in this section, we’ll put things right and modify our code to eliminate these spurious displacements.
The changes we need to make to our code are surprisingly simple and are confined to our element stiffness matrix calculation. But, to make sure that we fully understand what’s needed, we’ll spend the first half of this section deriving the substitute transverse strain displacement matrix that we introduced at the end of the last section.
Once this is fully understood, we’ll jump back into the code and implement the fix. This will allow us to do a final comparison with our OpenSeesPy benchmark - our final validation of the course.
We could wrap things up here, but just to add a little polish to our model, I’ll walk through the implementation of point loads and patch loading. You should have no problem implementing these without me, but for completeness, I’ll cover this in the final two lectures.
By the time this section is complete, you’ll have a custom-coded finite element analysis solver that agrees exactly with an equivalent OpenSeesPy model.