- All DegreesExplore Bachelor’s & Master’s degrees
- BusinessExplore MBA & Business degrees
- Computer Science & EngineeringExplore Computer Science & Engineering degrees
- Data ScienceExplore Data Science degrees
- MasterTrack™Earn credit towards a Master’s degree
- University CertificatesAdvance your career with graduate-level learning

Back to The Finite Element Method for Problems in Physics

stars

515 ratings

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....

SS

Mar 12, 2017

It is very well structured and Dr Krishna Garikipati helps me understand the course in very simple manner. I would like to thank coursera community for making this course available.

RD

Sep 4, 2020

Well worth the time if you wish to understand the mathematical origin of the FEM methods used in solving various physical situations such as heat/mass transfer and solid mechanics

Filter by:

By Benico v d W

•Aug 1, 2017

The videos are VERY long & VERY slow. It does not come to the point fast enough. It does not clearly define & explain what is to be achieved. There should be an exercise after each video. The handwriting-on-screen method is EXTREMELY slow, inefficient & frustrating. There are no handouts or textbooks. I have restarted this course 3 times - but I just can't get myself to flow with it. I like the lecturers and I can see they know their field. But this does not feel like a MOOC. It feels like varsity 25 years ago - only the chalk board is replaced by a video-recorded white screen. I try to do this in the evenings after work - but you are loosing me. Perhaps I do not have the right prerequisites, in spite of a B. Eng. degree (Mech). I am learning to use OpenFOAM & Code Aster at the moment. I also use Linux on all my computers since 2000. Yes my pde skills are a bit rusted - but so would be the pde skills of 70% of the students taking this course. I'm sorry to grade this course as a one - but in comparison with the other Moocs that I did - this one needs a lot of improvement.

By Jonathan L

•Apr 23, 2017

I really like the lectures of this course. But on the other hand this programming assignments are...

I am not able to see why using such a complicated main code template is useful to understand the principals of the finite element method. I spend 5 hours for trying to install all the libraries and finding the correct header files of deal.II and this visualization thing which is needed in the write_output.h file). Because otherwise you will not be able to compile the code. This is not the first time I did installation of complicated code in unix and I know by heart this can be cumbersome sometimes.

But why doing this for a simple programming assignment. I started this course because I want to learn about finite element method and not how to install deal.II software. But exactly installing is what the first assignment is about it is not about coding what will be only a small fraction of the whole assignment then.

And the next thing is there is not only one person facing this troubles there are quite a lot if you look in the discussion forums.

On the other hand if there would be sufficient help given for the installation it would be fine, but it is not.

The only help which is given are sending some links which is nice. But links I can also watch by myself.

So I really liked this course and found it interesting ( or I still find it interesting ), but I don't see what learn effect I should have from messing around with those deal.II libraries.

By Xiong N

•Mar 3, 2018

It's a great course. It could be even better if all the quizzes and assignments can give feedback after done. e.g. explanations and such

By Evgeniy K

•Mar 11, 2021

Sorry, but I do not understand how anyone gives this course 5 stars. Today, after much deliberation, I fnially made a decision to unenroll the course. Fortunately, I did not pay for the certificate yet.

The course can be roughly divided into two parallel parts: 1) FEM theory and 2) some related C ++ programming. As for the theoretical part, I don’t like it, but it more or less satisfies my needs in FEM. But the lectures are delivered very slowly, the written text is really chicken tracks and it is almost impossible to reread it. A separate disadvantage is that the authors do not provide slides of lectures, therefore, it is problematic to skim the text of the lecture on your own after listening. It is also very problematic to refresh the lecture in memory because of no readable text. Also, I have a habit of making Anki flashcards based on lecture notes to reinforce lecture-based material, and this is completely impossible here by the same reason.

But the really awful part is the programming part. Starting from the complexities associated with the deal.II library settings, and ending with the general indistinctness in the formulation of programming problems. Added to all of this is the fact that the virtual image for dealing with deal.ii is very slow on my (not taht old) laptop, which makes the solving of assignments really a big problem. I may add that I have C++ programming background for over 5 years and a PhD in mathematics. With all this, I still find the course extremely difficult to follow for the reasons listed above. I do not recommend this course to anyone in the form in which it is now. The course requires significant improvement of both theoretical and practical parts. In my opinion, the programming part should be completely redone. I think you can still learn the basics of FEM with this course if you enjoy suffering.

By Lakshay S

•May 17, 2020

i started the course to learn about finite element methods and i won't deny that i have learnt many things but as a mechanical engineer who has zero exposure to the coding stuff this course seems too tough for me. even after knowing the basics of python (that too from MOOCS by Michigan university) its really difficult for mechanical students to learn all the coding languages like c, c++, python etc.

this course is great but i wanted it to be more digital software based approach rather than the coding approach as its not meant for everyone.

By Wei Y

•Jul 21, 2019

Need to improve his presentation skills. Most boring lectures in Cousera.

By Yuxiang W

•Jun 21, 2018

Great class! I truly hope that there are further materials on shell elements, non-linear analysis (geometric nonlinearity, plasticity and hyperelasticity).

By Muhammad H S

•May 20, 2017

I was expecting learning how to apply finite element as an engineer and designer, instead the course is about the mathematics & programming of the finite element method.

By Siva K s

•Jul 5, 2017

It is so difficult for mechanical students to do programming assignments with zero knowledge on C++

The lectures are too boring and non-practical. All the courses except this FEM is not a worthy one

By Jose G L G

•Jun 12, 2017

A must take course if you intend to one day tackle real world finite element based Physics simulations.

There are finite element method software packages that lead us to believe that we don't need to understand the finite element method (FEM) in order to make physics simulations.

That is true if you just want to study simple academic problems. However if you want to simulate the real world you need to understand the basics of the FEM. This course will provide you with these basic tools.

By Bowei " W

•Jan 9, 2019

Thank you Prof. Garikipati and Greg for the amazing course. I have learned a lot about the FEM and am going to apply the knowledge to my research project.

By Dimiter P

•Mar 6, 2017

Very weak presentation. Must be improved to keep attention.

By Chaitanya S

•Jun 9, 2020

I highly recommend this course to anyone who is looking to enter into the field of simulations and modelling. I would like to thank the coursera team and course instructors, Prof. Krishna Garikipati along with Gregory Teichert for making my learning experience enjoyable and convenient.

By Shubham s

•Mar 13, 2017

It is very well structured and Dr Krishna Garikipati helps me understand the course in very simple manner. I would like to thank coursera community for making this course available.

By Ishaan K

•Jul 21, 2019

The course is great and the tutors are very helpful. I just have a suggestion that there should be more coding assignment like one for every week.

Thank you

By Shaik K B

•Jan 17, 2017

This is the best course as iam learning I so happy about your lecturer's

It is an wounder full experience that iam getting from you

By Abhishek T

•Mar 26, 2019

Very interesting course

By Patrick H

•Dec 15, 2017

In my opinion the course material is a good base but needs further development.

This includes new recordings of old lectures which contain errors. Sometimes there is a correction video included directly in the lecture video with an additional correction video and same content placed afterwards in the timeline.

Also there should be updated version of coding assignments. As stated in the forum it was just possible to pass one assignment by 100 percent if a deal.ii version from 2015 is used. However, the provided link to the deal.ii VM provides a recent version 2017. When run the same code on the student computer with deal.ii from 2015 one could get full marks. However, using the recent version from 2017, the automatic grading just gave 80 percent. This should be for sure improved.

Additionally I would suggest to make a more even work distribution for each week. There are weeks with just 3 hours of videos and other weeks with up to 9 hours. It would be beneficial if that could be more balanced.

Coding assignment 1 is placed with a deadline in week 3. However, the required material for passing this is taught in week 4 and 5. Therefore, I would suggest to push CA1 to week 5.

By Kiran A

•Dec 23, 2017

Intense development of FEM. Although its more of classroom type of teaching, its effective and Prof. Krishna has done a great job in explaining the concepts well. The assignments are good and check the understanding of the subject. Week 3 Assignment could be pushed to Week 5 may be, or it could be split into two assignments. The number of attempts for quizzes could be perhaps reduced. Presently, it is very easy to score in these quizzes. Overall a great course, and I feel confident knowing the fundamentals of FEM.

By Harold M

•May 12, 2018

This is an excellent course on Finite Element Method. It's a very complete one. This course includes the mathematical theory of finite elements and the practice by using deal.II C/C++ library. This course requires a lot of effort, but the gain of knowledge worth the effort.

I highly recommend it to both engineers and mathematicians interested in solving PDEs with the finite element method.

Thank you very much professor Krishna Garikipati !!!

By 李晨曦

•Jun 6, 2017

Instructions (in lecture and coding assignment) are clear and easy to follow. Contents of the lectures are somewhat repetitive, but I think it's OK because it allows you to go over previous materials just by watching the lecture and taking notes. Talking about potential improvement, I think it would be nice to give some more explanations to certain details, such as how the connectivity matrix is constructed.

By Солин В А

•Apr 2, 2019

Это отличный курс по МКЭ. Он не легкий, совсем нет. Я пытался пройти его больше года, но в итоге осилил. Он действительно помог мне разобраться в МКЭ.

This is exxelent course about FEM. It's not easy to complete. I've managed to finish it about year. It's very usefull. It hepled me to understand FEM.

Спасибо большое за эту возможность.

Thank you for this opportunity.

By Pratik M S

•May 8, 2020

I JUST LOVE COURSERA! The flexibility, the depth of knowledge and the way practical skills are developed among learners...just love it! This course is an example of how a 'Practical Skill' oriented course should be! The software taught here not only helped me in my research but also aided me to secure a prize for the same. LOVE IT!

By Deepak K

•Jul 1, 2020

This is an exceptionally good course for someone seeking to develop a deeper understanding of the finite element method. The focus is on mathematical constructs leading to numerical methods. It's a challenging course and requires a certain understanding of matrix algebra and vector calculus, and also C++ programming.

By Ruhul F

•Mar 29, 2017

I've encountered very few courses that demonstrate the detailed connection between what we learn in theory and applying them in programming languages. The instructions on programming assignments are limpid, can get through them even with very little programming experience.

- AWS Cloud A Practitioner's Guide
- Basics of Computer Programming with Python
- Beginners Python Programming in IT
- Developing Professional High Fidelity Designs and Prototypes
- Get Google CBRS-CPI Certified
- Introduction to MATLAB Programming
- Learn HTML and CSS for Building Modern Web Pages
- Learn the Basics of Agile with Atlassian JIRA
- Managing IT Infrastructure Services
- Mastering the Fundamentals of IT Support

- Basics of Computer Programming with Python
- Beginners Python Programming in IT
- Building a Modern Computer System from the Ground Up
- Getting Started with Google Cloud Fundamentals
- Introduction to Cryptography
- Introduction to Programming and Web Development
- Introduction to UX Design
- Learn HTML and CSS for Building Modern Web Pages
- Mastering the Fundamentals of IT Support
- Utilizing SLOs & SLIs to Measure Site Reliability

- Building an Agile and Value-Driven Product Backlog
- Foundations of Financial Markets & Behavioral Finance
- Getting Started with Construction Project Management
- Getting Started With Google Sheets
- Introduction to AI for Non-Technical People
- Learn the Basics of SEO and Improve Your Website's Rankings
- Mastering Business Writing
- Mastering the Art of Effective Public Speaking
- Social Media Content Creation & Management
- Understanding Financial Statements & Disclosures