In general, finite element method (FEM) is used as an effective numerical method to solve differential equations and widely employed in engineering and mathematical modeling, where a mechanical system is divided into discrete subdomains known as finite elements. The technical process of creating finite element meshes and using Gaussian numerical integration to calculate the stiffness of each element, assembly process, and solving the obtained system of equations have always been challenging to implement and understand by both undergrad and graduate students in engineering fields such as Civil Engineering, Mechanical Engineering, Aerospace Engineering, etc. Therefore, as a TA in FEM and advanced FEM course, who also held several sessions and workshops for MATLAB programming and developing FEM codes, I started to develop many demonstrations and educational toolboxes to help students internalize these technical steps. The following is the datails regarding these packages and codes predented in the three sub-sections.
(1) FEM Educational Demos
The first set includes interactive demonstrations that I created to teach the concepts of shape functions, and the transformation between natural and global coordinates, which is important for numerical integrations and obtaining the element stiffness matrices and equivalent nodal forces. I found these visualizations very helpful and effective in classrooms; therefore, decided to share and make them available for other students and instructors.
The source codes are also uploaded on GitHub and MathWorks File Exchange, and the links are available in the download sections. Please, don’t hesitate to contact me if there are any error or questions.
(2) FEM Toolbox
In addition to the set of snippets and demos, I have also developed a general FEM toolbox in MATLAB that can be used for both educational and research purposes. This package is based on the implementation of the book, “Applied Mechanics of Solids”, by Allan F. Bower, and handled by a simple, yet user-friendly, graphical user interface (GUI) in MATLAB, and can be employed to analyze 2D and 3D mechanical structures, including trusses, frames, plane stress and plane strain, and general 3D solid.
A complete handbook is provided for this toolbox, and both installation file and the source codes are uploaded on my GitHub account and the MathWorks File Exchange. The links are available in download section and teaching section below the corresponding courses.
(3) MATLAB Assignments and Projects
Finally, during my teaching assistantship in these engineering course, I have also designed and developed a set of weekly programming assignments and group projects to help student go beyond the textbooks theories and get practically engaged in developing actual FEM software. Some of these materials are also available for download in the teaching section. The solutions of the programming assignments have already been provided. The solutions and auto-grader codes for automatic evaluations of students’ submissions will also be available upon requests.