MyFEM is a comprehensive, MATLAB-based FEM solver, developed for ME C180 at UC Berkeley. It implements finite element analysis to solve structural and thermal boundary value problems.
The Finite Element Method (FEM) is a numerical technique for solving complex physical problems (differential equations). These include how heat spreads through a material or how a beam bends under load. For a class at UC Berkeley, I undertook the project of creating my own FEM code from scratch. This project demanded a rigorous, ground-up implementation of the finite element method, emphasizing both analytical understanding and practical execution. The result is a fully functional solver capable of handling nontrivial physical systems with minimal computational overhead. The code is modular, scalable, and runs on resource-constrained hardware without performance loss. It is designed to be runnable on weak hardware, including laptops and mobile phones.
The solver handles both Dirichlet and Neumann boundary conditions and is capable of:
Developing this solver required deep integration of mathematical theory with software engineering practices. Each feature from p-refinement, to adaptive meshing was implemented by hand, and validated through benchmark problems to confirm correctness and stability.
Core methods are based on The Basics, by Tarek Zohdi (SpringerLink), a rigorous treatment of finite element fundamentals.