About this Course
4.6
209 ratings
50 reviews
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....
Globe

100% online courses

Start instantly and learn at your own schedule.
Calendar

Flexible deadlines

Reset deadlines in accordance to your schedule.
Intermediate Level

Intermediate Level

Clock

Suggested: You should expect to watch about 3 hours of video lectures a week. Apart from the lectures, expect to put in between 3 and 5 hours a week.

Approx. 22 hours to complete
Comment Dots

English

Subtitles: English

Skills you will gain

Finite DifferencesC++C Sharp (C#) (Programming Language)Matrices
Globe

100% online courses

Start instantly and learn at your own schedule.
Calendar

Flexible deadlines

Reset deadlines in accordance to your schedule.
Intermediate Level

Intermediate Level

Clock

Suggested: You should expect to watch about 3 hours of video lectures a week. Apart from the lectures, expect to put in between 3 and 5 hours a week.

Approx. 22 hours to complete
Comment Dots

English

Subtitles: English

Syllabus - What you will learn from this course

1

Section
Clock
6 hours to complete

1

This unit is an introduction to a simple one-dimensional problem that can be solved by the finite element method....
Reading
11 videos (Total 200 min), 2 readings, 1 quiz
Video11 videos
01.02. Introduction. Linear elliptic partial differential equations - II 13m
01.03. Boundary conditions 22m
01.04. Constitutive relations 20m
01.05. Strong form of the partial differential equation. Analytic solution 22m
01.06. Weak form of the partial differential equation - I 12m
01.07. Weak form of the partial differential equation - II 15m
01.08. Equivalence between the strong and weak forms 24m
01.08ct.1. Intro to C++ (running your code, basic structure, number types, vectors) 21m
01.08ct.2. Intro to C++ (conditional statements, “for” loops, scope) 19m
01.08ct.3. Intro to C++ (pointers, iterators) 14m
Reading2 readings
Help us learn more about you!10m
"Paper and pencil" practice assignment on strong and weak formsm
Quiz1 practice exercise
Unit 1 Quiz8m

2

Section
Clock
3 hours to complete

2

In this unit you will be introduced to the approximate, or finite-dimensional, weak form for the one-dimensional problem....
Reading
14 videos (Total 202 min), 1 quiz
Video14 videos
02.01q. Response to a question 7m
02.02. Basic Hilbert spaces - I 15m
02.03. Basic Hilbert spaces - II 9m
02.04. The finite element method for the one-dimensional, linear, elliptic partial differential equation 22m
02.04q. Response to a question 6m
02.05. Basis functions - I 14m
02.06. Basis functions - II 14m
02.07. The bi-unit domain - I 11m
02.08. The bi-unit domain - II 16m
02.09. The finite dimensional weak form as a sum over element subdomains - I 16m
02.10. The finite dimensional weak form as a sum over element subdomains - II 12m
02.10ct.1. Intro to C++ (functions) 13m
02.10ct.2. Intro to C++ (C++ classes) 16m
Quiz1 practice exercise
Unit 2 Quiz6m

3

Section
Clock
7 hours to complete

3

In this unit, you will write the finite-dimensional weak form in a matrix-vector form. You also will be introduced to coding in the deal.ii framework....
Reading
14 videos (Total 213 min), 2 quizzes
Video14 videos
03.02. The matrix-vector weak form - I - II 17m
03.03. The matrix-vector weak form - II - I 15m
03.04. The matrix-vector weak form - II - II 13m
03.05. The matrix-vector weak form - III - I 22m
03.06. The matrix-vector weak form - III - II 13m
03.06ct.1. Dealii.org, running deal.II on a virtual machine with Oracle VirtualBox12m
03.06ct.2. Intro to AWS, using AWS on Windows24m
03.06ct.2c. In-Video Correction3m
03.06ct.3. Using AWS on Linux and Mac OS7m
03.07. The final finite element equations in matrix-vector form - I 22m
03.08. The final finite element equations in matrix-vector form - II 18m
03.08q. Response to a question 4m
03.08ct. Coding assignment 1 (main1.cc, overview of C++ class in FEM1.h) 19m
Quiz1 practice exercise
Unit 3 Quiz6m

4

Section
Clock
5 hours to complete

4

This unit develops further details on boundary conditions, higher-order basis functions, and numerical quadrature. You also will learn about the templates for the first coding assignment....
Reading
17 videos (Total 262 min), 1 quiz
Video17 videos
04.02. The pure Dirichlet problem - II 17m
04.02c. In-Video Correction 1m
04.03. Higher polynomial order basis functions - I 23m
04.03c0. In-Video Correction m
04.03c1. In-Video Correction m
04.04. Higher polynomial order basis functions - I - II 16m
04.05. Higher polynomial order basis functions - II - I 13m
04.06. Higher polynomial order basis functions - III 23m
04.06ct. Coding assignment 1 (functions: class constructor to “basis_gradient”) 14m
04.07. The matrix-vector equations for quadratic basis functions - I - I 21m
04.08. The matrix-vector equations for quadratic basis functions - I - II 11m
04.09. The matrix-vector equations for quadratic basis functions - II - I 19m
04.10. The matrix-vector equations for quadratic basis functions - II - II 24m
04.11. Numerical integration -- Gaussian quadrature 13m
04.11ct.1. Coding assignment 1 (functions: “generate_mesh” to “setup_system”) 14m
04.11ct.2. Coding assignment 1 (functions: “assemble_system”) 26m
Quiz1 practice exercise
Unit 4 Quiz8m
4.6

Top Reviews

By SSMar 13th 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 YWJun 21st 2018

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

Instructor

Krishna Garikipati, Ph.D.

Professor of Mechanical Engineering, College of Engineering - Professor of Mathematics, College of Literature, Science and the Arts

About University of Michigan

The mission of the University of Michigan is to serve the people of Michigan and the world through preeminence in creating, communicating, preserving and applying knowledge, art, and academic values, and in developing leaders and citizens who will challenge the present and enrich the future....

Frequently Asked Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

  • You will need computing resources sufficient to install the code and run it. Depending on the type of installation this could be between a 13MB download of a tarred and gzipped file, to 45MB for a serial MacOSX binary and 192MB for a parallel MacOSX binary. Additionally, you will need a specific visualization program that we recommend. Altogether, if you have 1GB you should be fine. Alternately, you could download a Virtual Machine Interface.

  • You will be able to write code that simulates some of the most beautiful problems in physics, and visualize that physics.

  • You will need to know about matrices and vectors. Having seen partial differential equations will be very helpful. The code is in C++, but you don't need to know C++ at the outset. We will point you to resources that will teach you enough C++ for this class. However, you will need to have done some programming (Matlab, Fortran, C, Python, C++ should all do).

  • Apart from the lectures, expect to put in between 5 and 10 hours a week.

More questions? Visit the Learner Help Center.