Numerical Methods (SEMEC0140)
This course is fully based on variational methods as introductory topic for application of CFD with the finite element method. In the current version, it is a 3-part course divided as follows:
- Part 1 (Tools): A general overview on numerical methods, basics on Python programming, and presentation of tools like Scipy ecosystem, solvers (FENICS, OpenFOAM etc.), mesh generators (meshio, Gmsh etc.), CAE/CAD open platforms, viewers (Paraview, Mayavi etc.) and support literature.
- Part 2 (Theory): Discussion of approximation theory, construction principles of FEM, topics on functional analysis, strong/weak form, n-dimensional IBVPs.
- Part 3 (Practice): project-based learning oriented to student’s research (generally CFD or multiphysics simulations with Gmsh/FENICS/Paraview trio), and state-of-the-art approaches.
Resources
Remark: resources for this course can be forked from GDCOC0072.
Books
- A First Course in Finite Elements, by J. Fish and T. Belytschko
- An Analysis of the Finite Element Method, by G. Strang and G. Fix
- Applied Numerical Linear Algebra, by J. Demmel
- Automated Solution of Differential Equations by the Finite Element Method, The FENICS book, by A. Logg et al.
- Introduction to Applied Mathematics, by G. Strang
- Introduction to the Finite Element Method, by J. Reddy 👍
- Introduction to Numerical Methods for Variational Problems, by H.P. Langtangen and K-A. Mardal 👍
- Numerical Linear Algebra, by L. Trefethen and D. Bau III
- The Finite Element Method: Theory, Implementation, and Applications, by M. G. Larson and F. Bengzon
- Theory and Practice of Finite Elements, by A. Ern and J-L Guermond 👍
- Research Software Engineering with Python, by D. Irving et al.
Booklets
Courses
- MSc Applied Computational Science & Engineering 2020 @ICL 👍
- ACSE 1 Modern Programming Methods @ICL
- FEA for coupled problems @UC San Diego
- Finite Elements: numerical analysis and implementation @ICL 👍
- Practical Numerical Methods with Python, by L. Barba’s group.
- Python Programming Primer @Southampton
- Research Software Engineering with Python @Turing
- Essential Software Engineering for Researchers @ICL
Misc
- A History of the FEM, by Prof. Ivo Babuska
- Def Element: An Encyclopedia of FEM
- SYMFEM: symbolic finite element definition library, by Matthew Scroggs
- Engineering Statistics Handbook @NIST/SEMATECH
- FENICS Project website
- Prof. Gustavo Rabello’s FEM notes @UFRJ/Brazil
- The Fenics X Tutorial by J. Dokken 👍
- Tutorials on bash scripting, regular expressions etc. by Ryan Chadwick
Papers
- Physics-informed machine learning, Karniadakis et al., Nature Reviews, 2021
- See: i) Table 1, for a list of PINN libraries; ii) subsection “Connection to classical numerical methods”;
- Hybrid FEM-NN models: Combining artificial neural networks with the finite element method, Mitusch et al., JCP, 2021
- Takeaways: i) may improve convergence speed; ii) fewer optimization steps; iii) generalization for spatial variability.
- Gaps: non-linearity solvable through training; PDE solvers not optimized for large batch training on GPU; iii) FEM weak form requires efficient quadrature integration over the NN, whose rules are unknown for now.