In this section, we turn our attention to benchmarking or validation. We’ve written a lot of code, so it’s a good idea to test and see if it’s giving us meaningful results.
The simplest way to do this is to run some comparison tests against already established finite element solvers. In our case, we’ll actually test against two alternative solvers, OpenSeesPy and Pynite. Both are free open-source Python libraries that are perfect for this exercise.
If our code yields the same results as these two libraries, we can be extra confident in its output. This also gives us a chance to explore how to use OpenSeesPy and Pynite for plate analysis, which is a valuable skill in its own right.
You’ll see that both libraries have emerged from very different backgrounds. OpenSeesPy has been in development for a very long time and comes from the world of academia and research. It’s feature-rich and capable of both static and dynamic finite element analysis.
Pynite, on the other hand, is a much newer library with a more direct, practice-focused approach to modelling. It can perform static analysis only, doesn’t have the feature depth of OpenSeesPy, but is arguably more straightforward to use.
This section has three distinct parts, first, we introduce OpenSeesPy; we’ll build our plate model and process the results. Then we’ll repeat this exercise using Pynite. In the final part, we’ll focus on comparing the results from our solver, OpenSeesPy and Pynite.
In addition to getting familiar with OpenSeesPy and Pynite, one key takeaway from this section will be an understanding of a phenomenon known as shear locking, which is currently affecting our solver. Our validation exercise will surface this issue, we’ll explore what’s actually happening and then introduce the simple fix to address it.