Computational Framework for the Finite Element Method in MATLAB® and Python aims to provide a programming framework for coding linear FEM using matrix-based MATLAB® language and Python scripting language. It describes FEM algorithm implementation in the most generic formulation so that it is possible to apply this algorithm to as many application problems as possible.
Readers can follow the step-by-step process of developing algorithms with clear explanations of its underlying mathematics and how to put it into MATLAB and Python code. The content is focused on aspects of numerical methods and coding FEM rather than FEM mathematical analysis. However, basic mathematical formulations for numerical techniques which are needed to implement FEM are provided. Particular attention is paid to an efficient programming style using sparse matrices.
- Contains ready-to-use coding recipes allowing fast prototyping and solving of mathematical problems using FEM
- Suitable for upper-level undergraduates and graduates in applied mathematics, science or engineering
- Both MATLAB and Python programming codes are provided to give readers more flexibility in the practical framework implementation
Table of Contents
1. Finite Element Method for the One-Dimensional Boundary Value Problem. 1.1 Formulation of the Problem. 1.2 Integral Equation. 1.3 Lagrange Interpolating Polynomials. 1.4 Illustrative Problem. 1.5 Algorithms of The Finite Element Method. 1.6. Quadrature Rules. 1.7. Defining Parameters of the FEM. 2. Programming One-Dimensional Finite Element Method. 2.1 Sparse Matrices in MATLAB. 2.2 Input Data Structures. 2.3 Coding Quadrature Rules. 2.4 Interpolating and Differentiating Matrices. 2.5. Calculating and Assembling Fem Matrices. 2.6 Python Implementation. 3. Finite Element Method for the Two-Dimensional Boundary Value Problem. 3.1 Model Problem. 3.2 Finite Elements Definition. 3.3. Triangulation Examples. 3.4. Linear System of the FEM. 3.5 Stiffness Matrix and Forcing Vector. 3.6. Algorithm of Solving Problem. 4. Building Two-Dimensional Meshes. 4.1. Defining Geometry. 4.2. Representing Meshes in Matrix Form for Linear Interpolation Functions. 4.3. Complementary Mesh. 4.4. Building Meshes in MATLAB. 4.5. Building Meshes in Python. 5. Programming Two-Dimensional Finite Element Method. 5.1. Assembling Global Stiffness Matrix. 5.2. Assembling Global Forcing Vector. 5.3. Calculating Local Stiffness Matrices. 5.4. Calculating Equation Coefficients. 5.5. Calculating Global Matrices. 5.6. Calculating Boundary Conditions. 5.7. Assembling Boundary Conditions 5.8. Solving Example Problem. 6. Nonlinear Basis Functions. 6.1. Linear Triangular Elements. 6.2. Curvilinear Triangular Elements. 6.3. Stiffness Matrix with Quadratic Basis. Conclusion Appendix A. Variational Formulation of a BVP. Appendix B. Discussion of Global Interpolation. Appendix C. Interpolatory Quadrature Formulas. Appendix D. Quadrature Rules and Orthogonal Polynomials. Appendix E. Computational Framework in Python.
Pavel Sumets is a research and development software engineer from New Zealand whose main interest and expertise are biomechanics, numerical methods, and scientific programming.
He received his master’s degree in applied mathematics and worked as a university lecturer teaching courses on mathematical modelling, numerical methods and programming. In 2017, he graduated from the University of Auckland with a PhD degree in engineering science. His PhD research revolved around building and solving mathematical models for multiphasic flow using boundary and finite element methods. He has published several scientific works on mathematical modelling biomechanical systems.
Currently, Pavel is working for a software development company on developing computational models in the area of computer-human interactions. His work involves creating software for digital character animation and implementing character physics simulator. Pavel holds a patent in the technology of processing three dimensional shapes.
Having background in applied mathematics along with both academic and industrial experience allows him to approach research task with solution implementation suitable for practical utilization. Pavel is passionate about magic tricks and in his spare time does magic shows.