We may earn an affiliate commission when you visit our partners.
Take this course
Krishna Garikipati, Ph.D.

This course is an introduction to the finite element method as applicable to a range of problems in physics and engineering sciences. The treatment is mathematical, but only for the purpose of clarifying the formulation. The emphasis is on coding up the formulations in a modern, open-source environment that can be expanded to other applications, subsequently.

The course includes about 45 hours of lectures covering the material I normally teach in an

introductory graduate class at University of Michigan. The treatment is mathematical, which is

Read more

This course is an introduction to the finite element method as applicable to a range of problems in physics and engineering sciences. The treatment is mathematical, but only for the purpose of clarifying the formulation. The emphasis is on coding up the formulations in a modern, open-source environment that can be expanded to other applications, subsequently.

The course includes about 45 hours of lectures covering the material I normally teach in an

introductory graduate class at University of Michigan. The treatment is mathematical, which is

natural for a topic whose roots lie deep in functional analysis and variational calculus. It is not

formal, however, because the main goal of these lectures is to turn the viewer into a

competent developer of finite element code. We do spend time in rudimentary functional

analysis, and variational calculus, but this is only to highlight the mathematical basis for the

methods, which in turn explains why they work so well. Much of the success of the Finite

Element Method as a computational framework lies in the rigor of its mathematical

foundation, and this needs to be appreciated, even if only in the elementary manner

presented here. A background in PDEs and, more importantly, linear algebra, is assumed,

although the viewer will find that we develop all the relevant ideas that are needed.

The development itself focuses on the classical forms of partial differential equations (PDEs):

elliptic, parabolic and hyperbolic. At each stage, however, we make numerous connections to

the physical phenomena represented by the PDEs. For clarity we begin with elliptic PDEs in

one dimension (linearized elasticity, steady state heat conduction and mass diffusion). We

then move on to three dimensional elliptic PDEs in scalar unknowns (heat conduction and

mass diffusion), before ending the treatment of elliptic PDEs with three dimensional problems

in vector unknowns (linearized elasticity). Parabolic PDEs in three dimensions come next

(unsteady heat conduction and mass diffusion), and the lectures end with hyperbolic PDEs in

three dimensions (linear elastodynamics). Interspersed among the lectures are responses to

questions that arose from a small group of graduate students and post-doctoral scholars who

followed the lectures live. At suitable points in the lectures, we interrupt the mathematical

development to lay out the code framework, which is entirely open source, and C++ based.

Books:

There are many books on finite element methods. This class does not have a required

textbook. However, we do recommend the following books for more detailed and broader

treatments than can be provided in any form of class:

The Finite Element Method: Linear Static and Dynamic Finite Element Analysis, T.J.R.

Hughes, Dover Publications, 2000.

The Finite Element Method: Its Basis and Fundamentals, O.C. Zienkiewicz, R.L. Taylor and

J.Z. Zhu, Butterworth-Heinemann, 2005.

A First Course in Finite Elements, J. Fish and T. Belytschko, Wiley, 2007.

Resources:

You can download the deal.ii library at dealii.org. The lectures include coding tutorials where

we list other resources that you can use if you are unable to install deal.ii on your own

computer. You will need cmake to run deal.ii. It is available at cmake.org.

Enroll now

What's inside

Syllabus

1
This unit is an introduction to a simple one-dimensional problem that can be solved by the finite element method.
2
In this unit you will be introduced to the approximate, or finite-dimensional, weak form for the one-dimensional problem.
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Develops rigorous understanding of foundational finite element methods
Strong progression from one dimensional to three dimensional formulation provides a systematic and comprehensive approach
Incorporates coding tutorials with deal.ii framework to enhance practical skills
Requires background in partial differential equations and linear algebra
May require additional resources to set up deal.ii on personal computers
Suitable for graduate students or advanced undergraduates with strong mathematical background

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Rigorous fem theory and practice

According to learners, this course offers a deep and rigorous exploration of the Finite Element Method, balancing mathematical theory with practical implementation using the deal.ii library in C++. Students appreciate the clear and insightful lectures that build a strong foundation, moving from 1D to 3D problems across various physics domains. However, the course is described as very demanding and requires a solid background in linear algebra, PDEs, and C++. Many find the coding assignments challenging but ultimately highly rewarding, providing skills directly applicable to research and professional work. It is best suited for those with the necessary prerequisites seeking a comprehensive understanding and hands-on FEM experience.
Skills directly useful for advanced problems.
"The knowledge gained is directly applicable to my research problems."
"This course gave me the tools to implement FEM for real-world physics problems."
"I feel much more confident tackling simulation problems in my field now."
"Provides a great foundation for further study or professional application."
Instructor provides clear and insightful explanations.
"The professor is excellent, explaining complex topics very clearly."
"Lectures are well-structured and easy to follow despite the difficulty of the material."
"I found the instructor's explanations and insights invaluable."
"The lectures provided a solid understanding step-by-step."
Hands-on FEM implementation in C++.
"Learning to use deal.ii for practical implementation was a key takeaway."
"The coding assignments are challenging but essential for understanding the practical aspects."
"The integration of deal.ii coding alongside theory is excellent."
"I gained practical skills in C++ and FEM implementation."
Deep dive into the mathematical foundations.
"This course is a rigorous, mathematical introduction to the theory..."
"Provides a solid foundation in the variational formulation and mathematical analysis."
"I really appreciate how the course delves into the mathematical basis and theory behind FEM."
"The theoretical development is clear and helps understand why the method works."
Course is demanding and requires significant effort.
"This is definitely not an easy course, be prepared to invest a lot of time."
"The workload, especially the coding assignments, is substantial."
"I found the pace quite fast, requiring dedication to keep up."
"This course is very demanding but worth the effort if you are dedicated."
Demands solid background in math and programming.
"A very strong background in Linear Algebra, PDE, and especially C++ is essential."
"This course is quite challenging without the recommended background."
"Be prepared for a steep learning curve if you're not comfortable with C++ or advanced math."
"I struggled a bit with the prerequisites, making the course more difficult."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in The Finite Element Method for Problems in Physics with these activities:
Review notes and materials from previous courses on numerical methods
Reviewing notes and materials from previous courses on numerical methods will help you refresh your knowledge of the fundamentals and prepare you for the more advanced topics covered in this course.
Browse courses on Numerical Methods
Show steps
  • Gather notes and materials from previous courses on numerical methods.
  • Review the materials, focusing on the fundamental concepts and techniques.
  • Complete any practice problems or exercises that you find in the materials.
Read the textbook 'The Finite Element Method' by Hughes
Reading this textbook will provide you with a comprehensive overview of the finite element method, as well as in-depth coverage of advanced topics.
Show steps
  • Purchase or borrow a copy of the textbook.
  • Read the textbook carefully, taking notes and highlighting important passages.
  • Complete the exercises and problems at the end of each chapter.
Attend a workshop on finite element analysis
Attending a workshop on finite element analysis can help you to learn new techniques and stay up-to-date on the latest developments in the field.
Show steps
  • Find a workshop on finite element analysis that is relevant to your interests and schedule.
  • Register for the workshop and attend all sessions.
  • Take notes and ask questions during the workshop.
  • Follow up with the workshop organizers or presenters if you have any further questions.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Form a study group with classmates to discuss course materials
Discussing the course materials with classmates can help you to understand the concepts better and identify areas where you need additional support.
Show steps
  • Form a study group with classmates who have similar interests or schedules.
  • Meet regularly to discuss course materials, work on problem sets together, and ask each other questions.
Practice coding finite element code from scratch
Coding finite element code from scratch will help you to develop a deeper understanding of the finite element method, as well as improve your programming skills.
Browse courses on Finite Element Method
Show steps
  • Choose a simple finite element code example from the course materials or the internet.
  • Implement the code from scratch using a preferred programming language and make sure it produces similar or identical results to the original code.
  • Experiment with different parameters and boundary conditions to observe their effects on the numerical solution.
  • Identify and fix any errors or inaccuracies in the code.
Contribute to the deal.ii library
Contributing to open-source software can be an excellent way to learn new technologies. The deal.ii library is used throughout this course, and contributing bug reports, documentation and code can help you master the technology.
Show steps
  • Get familiar with the deal.ii codebase by reading through the examples and documentation.
  • Find a bug or issue in the deal.ii codebase and write a bug report.
  • Fix a bug or issue in the deal.ii codebase and submit a pull request.
Create a blog post or video tutorial on a specific FEA topic
Creating a blog post or video tutorial on a specific FEA topic will help you to solidify your understanding of the topic and share your knowledge with others.
Browse courses on Finite Element Analysis
Show steps
  • Choose a specific FEA topic that you are interested in and have a good understanding of.
  • Research the topic thoroughly to gather the necessary information.
  • Write or record your blog post or video tutorial in a clear and concise manner.
  • Share your blog post or video tutorial with others online.
Participate in a finite element analysis competition
Participating in a finite element analysis competition can help you to test your skills, learn from others, and get feedback on your work.
Show steps
  • Find a finite element analysis competition that is relevant to your interests and schedule.
  • Form a team or work individually on a project.
  • Develop a solution to the competition problem.
  • Submit your solution to the competition.

Career center

Learners who complete The Finite Element Method for Problems in Physics will develop knowledge and skills that may be useful to these careers:
Mechanical Engineer
A Mechanical Engineer designs, develops, and tests mechanical systems. This course can provide Mechanical Engineers with a foundation in the finite element method, which is essential for understanding how mechanical systems behave under different loads and conditions.
Geotechnical Engineer
A Geotechnical Engineer designs, builds, and maintains structures in the ground. This course can provide Geotechnical Engineers with a foundation in the finite element method, which is essential for understanding how structures in the ground behave under different loads and conditions.
Materials Engineer
A Materials Engineer researches, develops, and tests new materials. This course can provide Materials Engineers with a foundation in the finite element method, which is essential for understanding how materials behave under different loads and conditions.
Aerospace Engineer
An Aerospace Engineer designs, develops, and tests aircraft, spacecraft, and other aerospace systems. This course can help Aerospace Engineers build a foundation in the finite element method, which is essential for understanding how aerospace structures behave under different loads and conditions.
Civil Engineer
A Civil Engineer designs, builds, and maintains infrastructure, such as bridges, buildings, and roads. This course can provide Civil Engineers with a strong foundation in the finite element method, which is essential for understanding how structures behave under different loads and conditions.
Petroleum Engineer
A Petroleum Engineer designs, develops, and operates oil and gas wells. This course can help Petroleum Engineers build a foundation in the finite element method, which is essential for understanding how oil and gas wells behave under different loads and conditions.
Chemical Engineer
A Chemical Engineer designs, develops, and operates chemical plants and processes. This course can help Chemical Engineers build a foundation in the finite element method, which is essential for understanding how chemical processes behave under different conditions.
Nuclear Engineer
A Nuclear Engineer designs, builds, and operates nuclear power plants. This course can help Nuclear Engineers build a foundation in the finite element method, which is essential for understanding how nuclear power plants behave under different loads and conditions.
Mining Engineer
A Mining Engineer designs, develops, and operates mines. This course can help Mining Engineers build a foundation in the finite element method, which is essential for understanding how mines behave under different loads and conditions.
Systems Engineer
A Systems Engineer designs, develops, and operates complex systems. This course can provide Systems Engineers with a foundation in the finite element method, which is essential for understanding how complex systems behave under different loads and conditions.
Biomedical Engineer
A Biomedical Engineer designs, develops, and tests medical devices and systems. This course can help Biomedical Engineers build a foundation in the finite element method, which is essential for understanding how medical devices and systems behave under different loads and conditions.
Environmental Engineer
An Environmental Engineer designs, develops, and operates systems to protect the environment. This course can provide Environmental Engineers with a foundation in the finite element method, which is essential for understanding how environmental systems behave under different loads and conditions.
Manufacturing Engineer
A Manufacturing Engineer designs, develops, and operates manufacturing processes. This course can provide Manufacturing Engineers with a foundation in the finite element method, which is essential for understanding how manufacturing processes behave under different conditions.
Industrial Engineer
An Industrial Engineer designs, develops, and operates industrial systems. This course can provide Industrial Engineers with a foundation in the finite element method, which is essential for understanding how industrial systems behave under different loads and conditions.
Materials Scientist
A Materials Scientist studies the structure and properties of materials, and designs new materials with improved properties. This course may be useful for Materials Scientists who want to learn about the finite element method and its applications in materials science.

Reading list

We've selected 29 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in The Finite Element Method for Problems in Physics.
May be useful as additional reading because it provides a comprehensive overview of the finite element method for partial differential equations.
May be useful as additional reading because it provides more detailed and broader treatments of the finite element method than can be provided in any form of class.
Provides a comprehensive treatment of partial differential equations and finite element methods. It valuable resource for readers who want to gain a deep understanding of the mathematical foundations of the finite element method.
Provides a comprehensive treatment of both the finite volume and finite element methods for solving partial differential equations.
Offers a comprehensive treatment of the finite element method, providing a solid foundation for understanding the course material. Serves as a valuable reference for both current and future studies.
May be useful as additional reading because it covers linear static and dynamic finite element analysis.
Provides a comprehensive treatment of the finite element method, with a focus on engineering applications. It valuable resource for readers who want to gain a deep understanding of the finite element method and its applications in engineering.
Provides an overview of parallel computing methods for solving partial differential equations, including the finite element method. It is suitable for advanced users of the finite element method, and it can be used as a reference for specific topics.
Provides a clear and concise introduction to the finite element method. It valuable resource for readers who are new to the finite element method and want to learn the basics.
May be useful as additional reading because it provides an introduction to isogeometric analysis, which relatively new approach to the finite element method that has the potential to revolutionize the way that engineering problems are solved.
Provides a practical introduction to the finite element method. It valuable resource for readers who want to learn how to use the finite element method to solve real-world problems.
Offers a comprehensive treatment of the finite element method, with a focus on practical applications in engineering. Provides valuable insights into the use of the method in real-world scenarios.
Provides a more mathematical treatment of the error analysis of the finite element method. It useful reference tool for those who want to learn more about the mathematical foundations of the finite element method.
Provides a more mathematical treatment of the finite element method for partial differential equations. It useful reference tool for those who want to learn more about the mathematical foundations of the finite element method.
Provides a more mathematical treatment of the finite element method for elliptic problems. It useful reference tool for those who want to learn more about the mathematical foundations of the finite element method.
Provides a more in-depth treatment of the finite element method for ocean engineering problems. It useful reference tool for those who want to learn more about the application of the finite element method to this specific area.
Provides a practical introduction to the finite element method, with a focus on applications in engineering and science. Reinforces the concepts covered in the course with real-world examples and exercises.
Provides a more practical treatment of the finite element method. It useful reference tool for those who want to learn more about the application of the finite element method to specific engineering problems.
May be useful as background reading because it provides a good overview of numerical methods for solving partial differential equations.
Offers a comprehensive mathematical treatment of the finite element method, providing a deeper understanding of the theoretical foundations. Useful for students with a strong mathematical background.
Provides a rigorous mathematical introduction to the finite element method, with a focus on partial differential equations. Offers valuable insights into the theoretical underpinnings.
Focuses on the application of the finite element method in heat transfer and fluid dynamics. Provides practical insights into the use of the method for solving real-world problems in these domains.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser