An introduction to scientific computing using free software FreeFem++

[ Abstract ]
This course provides a hands-on introduction to the foundations and implementation of numerical algorithms to solve various PDE problems in 1D/2D/3D domains with the finite element method. Each session contains a short theoretical presentation of the numerical method, directly followed by its implementation in the form of computer programs. The free software FreeFem++ (www.freefem.org) offers an ideal framework to start a scientific computing activity: all the technicalities of the finite-element implementation are hidden from the user and the syntax is very close to mathematical formulations. For advanced users, FreeFem++ allows to focus on numerical algorithms to solve complex problems. A graduate-level presentation of theoretical and technical aspects will enable a fast progress in mastering numerical methods and the software: from linear to non-linear PDEs, from 2D to 3D problems, from sequential to parallel computing. A large variety of PDEs will be addressed: heat and wave equation, problems arising in linear elasticity, Stokes and Navier-Stokes-Boussinesq systems, etc.
The sessions of the second week will be followed by short technical presentations of complex problems solved with FreeFem++: Navier-Stokes-Boussinesq equations for phase-change materials, Schrodinger equation for Bose-Einstein condensates, fluid-structure interaction.
Instructors: Prof I. Danaila (University of Rouen, France), Prof F. Hecht (University Pierre et Marie Curie, France)
Features: Theory and Examples, Computer Implementation.
Prerequisites: basic programming skills, elementary calculus. Participants are advised to bring their laptops.
Week 1: Introduction and basic notions: solving 2D linear and non-linear PDEs
Week 2: Advanced notions: non-linear PDEs, 3D domains, parallel computing
[ Course 8 ]
Problems solved with FreeFem++. General presentation of the software.
 |
Abstract:
 |
general presentation of FreeFem++, |
 |
install FreeFem++ on each computer,
|
 |
examples of problems solved with FreeFem++,
|
 |
test of examples from the documentation of the software.
|
|
 |
Course files:
|
[ Course 7 ]
Building a finite-element triangular mesh
 |
Abstract:
 |
building a 2D finite element mesh,
|
 |
identify boundaries,
|
 |
identify subdomains,
|
 |
define finite-element spaces. |
|
 |
Course files:
|
[ Course 6 ]
Solving the 2D Poisson/Laplace problem
 |
Abstract:
 |
weak formulation of the Poisson problem,
|
 |
solving the problem, visualize the solution,
|
 |
convergence of the method,
|
 |
boundary conditions.
|
|
 |
Course files:
|
[ Course 5 ]
Solving stationary or time-dependent linear PDEs in 2D domains
 |
Abstract:
 |
solving the steady heat equation with various BC, |
 |
solving the steady heat equation in complex domains,
|
 |
solving the time-dependent heat equation,
|
 |
solving the wave equation.
|
|
 |
Course files:
|
[ Course 4 ]
From linear to non-linear PDEs
 |
Abstract:
 |
solving the linear elasticity problem (vectorial FE spaces), |
 |
solving the non-linear problem of the minimal surface (Newton method).
|
|
 |
Course files:
|
[ Course 3 ]
Advanced notions and tricks
 |
Abstract:
 |
matrix formulation and optimization of programs,
|
 |
mesh adaptivity.
|
|
 |
Course files:
|
[ Course 2 ]
Incompressible Fluid Dynamics
 |
Abstract:
 |
solving the convection equation,
|
 |
solving the Stokes and Navier-Stokes equations.
|
|
 |
Course files:
|
[ Course 1 ]
Soving 3D problems, eigenvalue problems, parallel computing
 |
Abstract:
 |
solving the eigenvalue problem (2D and 3D),
|
 |
moving boundaries, parallel computing.
|
|
 |
Course files:
|