We have created a finite element analysis code integrating several open source tools to teach computational modeling with Python at the undergraduate and graduate level. Its modular structure allows the students to code their own analyses to solve specific models through Python scripts.
We have used the context of the well-known finite element analysis method (FEM) to integrate multiple teaching targets, namely:
All three of them reached within a single 48 hours course oriented to second year civil engineering students. After imparting the fundamentals of numerical modeling, the students are walked through the steps of conducting a mechanical simulation in terms of independent Python scripts required to define the SolidsPy model.
To create the model we have integrated the open-source three-dimensional mesh generator Gmsh and the Python module Meshio. The former is used to create and discretize the computational domain while the latter generates the required SolidsPy input files. With the model available and ready to be solved, the students create independent scripts using functions from the SolidsPy library in oder to find and visualize specific solution variables. The code, which is available as a GitHub Repo, is open-source and can be used as a stand-alone platform or through its independent functions. There is also a second GitHub Repo with several models (text files and Python scripts) which are continuously updated.