0% found this document useful (0 votes)
191 views29 pages

Short Introduction To Freefem

The document introduces the FreeFem++ software for solving partial differential equations (PDEs) using finite elements. It provides an overview of how to use FreeFem++ to solve steady-state and unsteady PDEs like the Laplace and heat equations. The key steps are to define the geometry and mesh, write the variational formulation, and plot the solution. FreeFem++ code examples are given for each step to demonstrate how problems can be solved in a simple way using this free and open-source finite element software.

Uploaded by

gurrune1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
191 views29 pages

Short Introduction To Freefem

The document introduces the FreeFem++ software for solving partial differential equations (PDEs) using finite elements. It provides an overview of how to use FreeFem++ to solve steady-state and unsteady PDEs like the Laplace and heat equations. The key steps are to define the geometry and mesh, write the variational formulation, and plot the solution. FreeFem++ code examples are given for each step to demonstrate how problems can be solved in a simple way using this free and open-source finite element software.

Uploaded by

gurrune1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

A short introduction to FreeFem++

M. Ersoy
Basque Center for Applied Mathematics
12 November 2010

Outline of the talk

Outline of the talk

Introduction

HOW TO
solve steady pdes : e.g. Laplace equation
solve unsteady pdes : e.g. Heat equation

M. Ersoy (BCAM)

Freefem++

12 November 2010

2 / 22

Outline

Outline

Introduction

HOW TO
solve steady pdes : e.g. Laplace equation
solve unsteady pdes : e.g. Heat equation

M. Ersoy (BCAM)

Freefem++

12 November 2010

3 / 22

A software for solving PDEs

FreeFem++ for 2D-3D 1 PDEs


Finite element method

1. in progress
M. Ersoy (BCAM)

Freefem++

12 November 2010

4 / 22

A software for solving PDEs


FreeFem++ for 2D-3D 1 PDEs
Finite element method
Free software : available at http://www.freefem.org/ff++/ 2 , it runs on
I
I
I

Linux
Windows
Mac

1. in progress
2. Useful documentation available at http://www.freefem.org/ff++/ftp/freefem++doc.
pdf
M. Ersoy (BCAM)

Freefem++

12 November 2010

4 / 22

A software for solving PDEs


FreeFem++ for 2D-3D 1 PDEs
Finite element method
Free software : available at http://www.freefem.org/ff++/ 2 , it runs on
I
I
I

Linux
Windows
Mac

++ extension of FreeFem and FreeFem+ (see Historic


http://www.freefem.org/ff++/ftp/HISTORY)

1. in progress
2. Useful documentation available at http://www.freefem.org/ff++/ftp/freefem++doc.
pdf
M. Ersoy (BCAM)

Freefem++

12 November 2010

4 / 22

A software for solving PDEs


FreeFem++ for 2D-3D 1 PDEs
Finite element method
Free software : available at http://www.freefem.org/ff++/ 2 , it runs on
I
I
I

Linux
Windows
Mac

++ extension of FreeFem and FreeFem+ (see Historic


http://www.freefem.org/ff++/ftp/HISTORY)
FreeFem++ team : Olivier Pironneau, Frederic Hecht, Antoine Le Hyaric,
Jacques Morice

1. in progress
2. Useful documentation available at http://www.freefem.org/ff++/ftp/freefem++doc.
pdf
M. Ersoy (BCAM)

Freefem++

12 November 2010

4 / 22

Outline

Outline

Introduction

HOW TO
solve steady pdes : e.g. Laplace equation
solve unsteady pdes : e.g. Heat equation

M. Ersoy (BCAM)

Freefem++

12 November 2010

5 / 22

Outline

Outline

Introduction

HOW TO
solve steady pdes : e.g. Laplace equation
solve unsteady pdes : e.g. Heat equation

M. Ersoy (BCAM)

Freefem++

12 November 2010

6 / 22

The problem
Given f L2 (), find H01 () such that :

= f
(x1 , x2 ) = 0

n := n = 0

M. Ersoy (BCAM)

Freefem++

in
on 1
on 2

12 November 2010

7 / 22

Variational formulation (VF)


Let w be a test function, the VF of the Laplace equation is :
Z
Z
w dx =
f w dx

or equivalently
A(, w) = l(w)
where the bilinear form is
Z
w dx

A(, w) =

and the linear one :

Z
l(w) =

f w dx

M. Ersoy (BCAM)

Freefem++

12 November 2010

8 / 22

Variational problem
Problem is now to find v H01 () such that, for every w H01 () :
A(, w) = l(w)
where the bilinear form is
Z
w dx

A(, w) =

and the linear one :

Z
l(w) =

f w dx

We set V = H 1 () in the next

M. Ersoy (BCAM)

Freefem++

12 November 2010

9 / 22

FEM : Galerkin method


Let Vh V with dimVh = nh ,
(
Vh =

u(x, y); u(x, y) =

nh
X

)
uk k (x, y), uk R

k=1

where k Ps is a polynom of degree s.


Now, the problem is to find h Vh such that :
w Vh , A(h , w) = l(w)
So, we have to solve :
i {1, . . . , nh }, A(j , i ) = l(i )

M. Ersoy (BCAM)

Freefem++

12 November 2010

10 / 22

Spaces Vh
Spaces Vh = Vh (h , P ) will depend on the mesh :
h =

n
[

Tk

k=1

and the approximation P


P0 piecewise constant approximation
P1 C 0 piecewise linear approximation
..
.
M. Ersoy (BCAM)

Freefem++

12 November 2010

11 / 22

With FreeFem++

To numerically solve the Laplace equation, we have to :


1

mesh the domain (define the border + mesh)

write the VF

show the result

its easy !

M. Ersoy (BCAM)

Freefem++

12 November 2010

12 / 22

Step 1 : mesh of the domain

if = 1 + 2 + . . . then
FreeFem++ define border commands :
I
I
I

border Gamma1(t = t0,tf){x = gam11(t), y = gam12(t)} ;


border Gamma2(t = t0,tf){x = gam21(t), y = gam22(t)} ;
...

where the set {x = gam11(t), y = gam12(t)} is a parametrisation of the


border Gamma1 with t [t0, tf ]

M. Ersoy (BCAM)

Freefem++

12 November 2010

13 / 22

Step 1 : mesh of the domain

if = 1 + 2 + . . . then
FreeFem++ define border commands :
I
I
I

border Gamma1(t = t0,tf){x = gam11(t), y = gam12(t)} ;


border Gamma2(t = t0,tf){x = gam21(t), y = gam22(t)} ;
...

where the set {x = gam11(t), y = gam12(t)} is a parametrisation of the


border Gamma1 with t [t0, tf ]
FreeFem++ mesh commands :
mesh MeshName = buildmesh(Gamma1(m1)+Gamma1(m2)+. . . ) ;
where mi are positive (or negative) numbers to indicate the number of point
should on j . example

M. Ersoy (BCAM)

Freefem++

12 November 2010

13 / 22

Step 2 : write the VF


Premliminar

To write the VF, we need to


define finite element space , we will use :
fespace NameFEspace(MeshName,P) ;
where P = P0 or P1 or P2, . . . . Example :
fespace Vh(Omegah,P2) ;

M. Ersoy (BCAM)

Freefem++

12 November 2010

14 / 22

Step 2 : write the VF


Premliminar

To write the VF, we need to


define finite element space , we will use :
fespace NameFEspace(MeshName,P) ;
where P = P0 or P1 or P2, . . . . Example :
fespace Vh(Omegah,P2) ;
use interpolated function, for instance,
Vh f = x+y ;
N.B. x and y are reserved key words

M. Ersoy (BCAM)

Freefem++

12 November 2010

14 / 22

Step 2 : write the VF


VF

VF is simply what we write on paper, for instance, for the Laplace equation, we
should have :
Vh phi, w, f ;
problem Laplace(phi,w)
int2d(Omegah)(dx(phi)*dx(w) + dy(phi)*dy(w))
- int2d(Omegah)(f*w)
+ boundary conditions
;
where w, phi belong to FE space Vh.

M. Ersoy (BCAM)

Freefem++

12 November 2010

15 / 22

Step 2 : write the VF


VF

VF is simply what we write on paper, for instance, for the Laplace equation, we
should have :
Vh phi, w, f ;
problem Laplace(phi,w)
int2d(Omegah)(dx(phi)*dx(w) + dy(phi)*dy(w))
- int2d(Omegah)(f*w)
+ boundary conditions
;
where w, phi belong to FE space Vh.
Next, to solve it, just write :
Laplace ;

M. Ersoy (BCAM)

Freefem++

12 November 2010

15 / 22

Step 2 : write the VF


VF

VF is simply what we write on paper, for instance, for the Laplace equation, we
should have :
Vh phi, w, f ;
problem Laplace(phi,w)
int2d(Omegah)(dx(phi)*dx(w) + dy(phi)*dy(w))
- int2d(Omegah)(f*w)
+ boundary conditions
;
where w, phi belong to FE space Vh.

or equivalently write directly :


solve Laplace(phi,w)
int2d(Omegah)(dx(phi)*dx(w) + dy(phi)*dy(w))
- int2d(Omegah)(f*w)
+ boundary conditions
;

M. Ersoy (BCAM)

Freefem++

12 November 2010

15 / 22

Step 2 : write the VF


Boundary conditions 3

Dirichlet condition u = g : +on(BorderName, u=g)


Neumann condition n u = g : -int1d(Th)( g*w)
...

3. see the manual p. 142


M. Ersoy (BCAM)

Freefem++

12 November 2010

16 / 22

Step 3 : show the result

to plot
plot(phi) ;
or
plot([dx(phi),dy(phi)]) ;
Laplace equation

M. Ersoy (BCAM)

Freefem++

12 November 2010

17 / 22

Outline

Outline

Introduction

HOW TO
solve steady pdes : e.g. Laplace equation
solve unsteady pdes : e.g. Heat equation

M. Ersoy (BCAM)

Freefem++

12 November 2010

18 / 22

The problem

Given f L2 (), find H 1 () such that :

t = f
(x1 , x2 ) = z(x1 , x2 )

n := n = 0

in
on 1
on 2

may be rewritten, after an implicit Euler finite difference approximation in time as


follows :
n+1 n
n+1 = f n
t

M. Ersoy (BCAM)

Freefem++

12 November 2010

19 / 22

Variational formulation

The Variational formulation for the semi discrete equation is : let w be a test
function, we write :
Z
Z
n+1 n
n+1
w +
w dx =
f n w dx
t

M. Ersoy (BCAM)

Freefem++

12 November 2010

20 / 22

The FreeFem formulation

Following the steady state case, the problem is then :


solve Laplace(phi,w)
int2d(Omegah)(phi*w/dt +dx(phi)*dx(w) + dy(phi)*dy(w))
- int2d(Omegah)(phiold*w/dt f*w)
+ boundary conditions
;
where we have to solve iteratively this discrete equation.

M. Ersoy (BCAM)

Freefem++

example

12 November 2010

21 / 22

Enjoy
Enjoy

yourself

yourself

M. Ersoy (BCAM)

Freefem++

12 November 2010

22 / 22

You might also like