Offered By

University of Michigan

About this Course

4.6

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

Start instantly and learn at your own schedule.

Reset deadlines in accordance to your schedule.

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

Subtitles: English...

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

Start instantly and learn at your own schedule.

Reset deadlines in accordance to your schedule.

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

Subtitles: English...

Week

1This unit is an introduction to a simple one-dimensional problem that can be solved by the finite element method....

11 videos (Total 200 min), 2 readings, 1 quiz

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

Help us learn more about you!10m

"Paper and pencil" practice assignment on strong and weak formsm

Unit 1 Quiz8m

Week

2In this unit you will be introduced to the approximate, or finite-dimensional, weak form for the one-dimensional problem....

14 videos (Total 202 min), 1 quiz

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

Unit 2 Quiz6m

Week

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

14 videos (Total 213 min), 2 quizzes

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

Unit 3 Quiz6m

Week

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

17 videos (Total 262 min), 1 quiz

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

Unit 4 Quiz8m

4.6

50 ReviewsBy SS•Mar 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 YW•Jun 21st 2018

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

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

When will I have access to the lectures and assignments?

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.

What will I get if I purchase the Certificate?

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.

What is the refund policy?

Is financial aid available?

What resources will I need for this class?

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.

What is the coolest thing I'll learn if I take this class?

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

What background is expected for learners in this class?

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

How much work will this class involve?

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

More questions? Visit the Learner Help Center.

Coursera provides universal access to the world’s best education,
partnering with top universities and organizations to offer courses online.