PIC
Third Edition, Version 3.2
http://www.freefem.org/ff++
 
  
PIC PIC
Laboratoire Jacques-Louis Lions, Université Pierre et Marie Curie, Paris

FreeFem++
 
Third Edition, Version 3.2
http://www.freefem.org/ff++
 Frédéric Hecht1,4

mailto:frederic.hecht@upmc.fr

http://www.ann.jussieu.fr/~hecht

The main participants of the documentation and of the developement are:

PIC PIC

Acknowledgments We are very grateful to l’École Polytechnique (Palaiseau, France) for printing the second edition of this manual (http://www.polytechnique.fr), and to l’Agence Nationale de la Recherche (Paris, France) for funding of the extension of FreeFem++ to a parallel tridimensional version (http://www.agence-nationale-recherche.fr) Référence : ANR-07-CIS7-002-01.

Contents
Preface
1 Introduction
 1.1 Installation
 1.2 How to use FreeFem++
 1.3 Environment variables, and the init file
 1.4 History
2 Getting Started
 2.1 The Development Cycle: Edit–Run/Visualize–Revise
3 Learning by Examples
 3.1 Membranes
 3.2 Heat Exchanger
 3.3 Acoustics
 3.4 Thermal Conduction
 3.5 Irrotational Fan Blade Flow and Thermal effects
 3.6 Pure Convection : The Rotating Hill
 3.7 A Projection Algorithm for the Navier-Stokes equations
 3.8 The System of elasticity
 3.9 The System of Stokes for Fluids
 3.10 A Large Fluid Problem
 3.11 An Example with Complex Numbers
 3.12 Optimal Control
 3.13 A Flow with Shocks
 3.14 Classification of the equations
4 Syntax
 4.1 Data Types
 4.2 List of major types
 4.3 Global Variables
 4.4 System Commands
 4.5 Arithmetic
 4.6 One Variable Functions
 4.7 Functions of Two Variables
 4.8 Arrays
 4.9 Loops
 4.10 Input/Output
 4.11 Exception handling
5 Mesh Generation
 5.1 Commands for Mesh Generation
 5.2 Boundary FEM Spaces Built as Empty Meshes
 5.3 Remeshing
 5.4 Regular Triangulation: hTriangle
 5.5 Adaptmesh
 5.6 Trunc
 5.7 Splitmesh
 5.8 Meshing Examples
 5.9 How to change the label of elements and border elements of a mesh in FreeFem++ ?
 5.10 Mesh in three dimension
 5.11 Meshing examples
 5.12 Write solution at the format .sol and .solb
 5.13 Call medit with the keyword medit
6 Finite Elements
 6.1 Lagrange finite element
 6.2 P1 Nonconforming Element
 6.3 Other FE-space
 6.4 Vector valued FE-function
 6.5 A Fast Finite Element Interpolator
 6.6 Keywords: Problem and Solve
 6.7 Parameters affecting solve and problem
 6.8 Problem definition
 6.9 Numerical Integration
 6.10 Variational Form, Sparse Matrix, PDE Data Vector
 6.11 Interpolation matrix
 6.12 Finite elements connectivity
7 Visualization
 7.1 Plot
 7.2 link with gnuplot
 7.3 link with medit
8 Algorithms
 8.1 conjugate Gradient/GMRES
 8.2 Optimization
9 Mathematical Models
 9.1 Static Problems
 9.2 Elasticity
 9.3 Nonlinear Static Problems
 9.4 Eigenvalue Problems
 9.5 Evolution Problems
 9.6 Navier-Stokes Equation
 9.7 Variational inequality
 9.8 Domain decomposition
 9.9 Fluid/Structures Coupled Problem
 9.10 Transmission Problem
 9.11 Free Boundary Problem
 9.12 nolinear-elas.edp
 9.13 Compressible Neo-Hookean Materials: Computational Solutions
10 Parallel version experimental
 10.1 Schwarz in parallel
11 Mesh Files
 11.1 File mesh data structure
 11.2 bb File type for Store Solutions
 11.3 BB File Type for Store Solutions
 11.4 Metric File
 11.5 List of AM_FMT, AMDBA Meshes
12 Add new finite element
 12.1 Some notation
 12.2 Which class of add
A Table of Notations
 A.1 Generalities
 A.2 Sets, Mappings, Matrices, Vectors
 A.3 Numbers
 A.4 Differential Calculus
 A.5 Meshes
 A.6 Finite Element Spaces
B Grammar
 B.1 The bison grammar
 B.2 The Types of the languages, and cast
 B.3 All the operators
C Dynamical link
 C.1 A first example myfunction.cpp
 C.2 Example Discrete Fast Fourier Transform
 C.3 Load Module for Dervieux’ P0-P1 Finite Volume Method
 C.4 Add a new finite element
 C.5 Add a new sparse solver
FreeFem++ LGPL License
D Keywords
Bibliography