Académique Documents
Professionnel Documents
Culture Documents
PeojetfinalN1 PDF
PeojetfinalN1 PDF
Métiers, ENSAM-Casablanca
Projet 1 :
MEF
Réalisé par : MOUTAOUAKKIL Salma Et Kadari Fatima-Zahra
Année : 2015/2016
MEF [PROJET 1 :]
2
MEF [PROJET 1 :]
I. Introduction :
La méthode des éléments finis fait partie des outils de mathématiques appliquées. En analyse
numérique, la MEF est utilisé pour résoudre numériquement des équations aux dérivées
partielles. Celles-ci peuvent représenter analytiquement le comportement dynamique de
certains systèmes physiques comme la mécanique, la thermodynamique, l’acoustique.
Introduite pour les besoins de la mécanique newtonienne, l’équation de Laplace apparaît dans
de nombreuses autres branches de la physique théorique : astronomie, électrostatique,
mécanique des fluides, propagation de la chaleur, diffusion, mouvement brownien, mécanique
quantique.
1. Aspect physique :
Il peut être résolu par différentes méthodes numériques (différences finies, éléments finis,
volumes finis, méthodes spectrales, méthodes probabilistes...). Ici, nous allons mettre en
œuvre la méthode des éléments finis.
3
MEF [PROJET 1 :]
• déformation d’une membrane : Il s’agit ici du cas d’une membrane soumise à une charge
uniforme f. La membrane est encastrée (pour y = 0, 1), et a des cotés libres (pour x = 0, 1). La
fonction u représente la d´déformation dans la membrane.
2. Aspect mathématique :
Dans cette section, on approche la solution du problème par la méthode des éléments finis.
1. Formulation discrète :
On considère le problème de Dirichlet homogène en dimension n=2 :
∫ 𝛼𝑢". 𝑣 + ∫ 𝛽𝑢. 𝑣 = ∫ 𝑓. 𝑣
4
MEF [PROJET 1 :]
𝜕Ω
∫Ω 𝛼𝛻𝑢. 𝛻𝑣𝑑𝑥 +∫𝜕Ω 𝑣 𝜕𝑛 𝑑𝑠 + ∫Ω 𝛽𝑢𝑣𝑑𝑥 = ∫Ω 𝑓. 𝑣𝑑𝑥
Supposons que v=0 p.p. sur ∂Ω ce qui est le cas si v ϵ𝐻01 (Ω). Alors on obtient le problème
suivant :
L’espace 𝑉ℎ de dimension finie est considéré comme l’ensemble des fonctions continues sur
[0, 𝐿] et étant polynomiales de degré deux sur chaque sous-intervalle.
Un polynôme de degré deux est fixé par ses valeurs en trois points. On prend les extrémités et
le milieu de chaque élémentEi . On est ainsi amené à considérer une discrétisation de [0, L] en
N sous-intervalles comportant eux-mêmes 3 points, ce qui nous conduit globalement à une
discrétisation par 2N+1 points où les nœuds xi sont donnés par :
x1 = 0 < x2 <…<x2N+1 = L
x2i−1+ x2i+1
Avec x2i = et Ei =[x2i−1, x2i+1 ] Pour i=1,…, N
2
Soit encore la base {φi } avec i=1,..2N+1 de données par les conditions :
φi (xi ) =δij ∀i = 1, … 2N + 1 et ∀j = 1, … 2N + 1
5
MEF [PROJET 1 :]
(x−xi−1 )(x−xi+1 )
si x ∈ [xi−1 , xi+1 ]
Et φi (xi ) = {(xi −xi−1 )(xi −xi+1 )
0 si x ∉ [xi−1 , xi+1 ]
2. Système linéaire :
On pose :
L
Fi = ∫ f(x)φi (x)dx
0
L L
Ai,j = ∫ αφ′i (x)φ′j (x)dx + ∫ βφi (x)φj (x)dx
0 0
6
MEF [PROJET 1 :]
AU = F
Où les inconnues sont les valeurs de u aux nœuds(𝑥𝑖 )𝑖 représentées par le vecteur
𝑢1
.
U= .
.
(𝑢𝑁 )
La matrice A apparait comme la somme de deux matrices K et M :
𝐿
𝑀𝑖𝑗 = ∫ 𝛽𝜑 𝑖
(𝑥)𝜑 𝑗
(𝑥)𝑑𝑥
0
Les φi sont sous forme de polynômes de degré 2 donc s’écrivent de la façon suivante :
φi (xi ) = 1 = ai x²i + bi xi + ci
{ φi (xi+1 ) = 0 = ai x²i+1 + bi xi+1 + ci
φi (xi+2 ) = 0 = ai x²i+2 + bi xi+2 + ci
7
MEF [PROJET 1 :]
D’où
−1
ai ai+1 ai+2 x²i xi 1
[b i bi+1 bi+2 ] = [ x²i+1 xi+1 1]
ci ci+1 ci+2 x²i+2 xi+2 1
Avec
x²i xi 1 1 −1 1
[x²i+1 xi+1 1] = [0 0 1 ]
x²i+2 xi+2 1 1 1 1
D’où l’inverse de
1 1
x²i xi 1 −1
2 2
[x²i+1 xi+1 1]est[− 1 0
1]
2 2
x²i+2 xi+2 1
0 1 0
On pose :
On exprime alors Les fonctions de base dans [xi, xi+2 a l’aide des trois fonctions suivantes
définies sur [−1, 1] par :
1 2 1 t(t − 1)
̂ 1 (t) =
φ t − t =
2 2 2
2
̂ 2 (t) = −t + 1
φ
1 1 t(t + 1)
φ
̂ 3 (t) = t² + t =
{ 2 2 2
Avec leurs dérivées :
1
φ
̂ 1 ′(t) = t −
2
φ
̂ 2 ′(t) = −2t
1
{ φ
̂ 3 ′(t) = t +
2
8
MEF [PROJET 1 :]
Par φ2i+k οFi =φˆ2i+k avec la fonction Fi est définie par le changement de variable
précédent et les coefficients de la matrice de masse pour l’élément[𝑥𝑖, 𝑥𝑖+2 ]sont :
xi+2 −xi 1
β ̂ i (t)φ
∫−1 φ ̂ j (t)dt pour i,j=1 ,2,3
2
1 1 1
∫−1 𝜑̂1 (𝑡) 𝜑̂1 (𝑡)𝑑𝑡 ∫−1 𝜑̂1 (𝑡) 𝜑̂2 (𝑡)𝑑𝑡 ∫−1 𝜑̂1 (𝑡) 𝜑̂3 (𝑡)𝑑𝑡
ℎ 1 1 1
M=𝛽 2 * ∫−1 𝜑̂2 (𝑡) 𝜑̂1 (𝑡)𝑑𝑡 ∫−1 𝜑̂2 (𝑡) 𝜑̂2 (𝑡)𝑑𝑡 ∫−1 𝜑̂2 (𝑡) 𝜑̂3 (𝑡)𝑑𝑡
1 1 1
[∫−1 𝜑̂3 (𝑡) 𝜑̂1 (𝑡)𝑑𝑡 ∫−1 𝜑̂3 (𝑡) 𝜑̂2 (𝑡)𝑑𝑡 ∫−1 𝜑̂3 (𝑡) 𝜑̂3 (𝑡)𝑑𝑡]
9
MEF [PROJET 1 :]
𝑁 𝑁 𝑥2𝑘+1
𝐹𝑖 = ∑ 𝐹𝑖𝑘 = ∑∫ 𝑓(𝑥)𝛷𝑖 (𝑥)𝑑𝑥
𝑘=1 𝑘=1 𝑥2𝑘−1
Où les 𝐹𝑖𝑘 désignent les contributions des éléments k. On utilise des formulations
d’intégration numérique. Dans ce cas, nous allons opter pour la méthode de Gauss.
10
MEF [PROJET 1 :]
3. Maillage :
4. Quadrature de gauss :
Elle fait appel à la fonction function [x,w]=lgwt(N,a,b)qui donne les poids et les sous forme
de 2 tableaux, ce qui donne la quadrature de gauss. La quadrature de gauss à n points admet
un degre d’exactitude de 2n - 1 et Les polynomes qu’on va traiter est d’ordre 2. Donc on va
se contenter seulement de 3 points.
11
MEF [PROJET 1 :]
if p==2
phi=inv([1 -1 1;0 0 1;1 1 1]);
grad=[2*phi(1,1) 2*phi(1,2) 2*phi(1,3);phi(2,1) phi(2,2) phi(2,3)];
end
end
12
MEF [PROJET 1 :]
w1=1; w2=1;
h=(b-a)/(n-1);
K=zeros(3,3);
gauss=[-1/sqrt(3);1/sqrt(3)];
v=[2/3*prodk(1,1)+2*prodk(3,1) 2/3*prodk(1,4)+2*prodk(3,4)
2/3*prodk(1,6)+2*prodk(3,6)];
K=h^3/8*diag(v);
for i=2:3
K(1,i)=h^3/8*(2/3*prodk(1,i)+2*prodk(3,i));
end
K(2,3)=h^3/8*(2/3*prodk(1,5)+2*prodk(3,5));
K(2,1)=K(1,2);
K(3,1)=K(1,3);
K(3,2)=K(2,3);
end
13
MEF [PROJET 1 :]
for i=1:3
M(1,i)=h/2*((w1*(gauss(1,1))^4+w2*(gauss(1,2))^4+w3*(gauss(1,3))^4+
w4*(gauss(1,4))^4)*prodm(1,i)+(w1*(gauss(1,1))^3+w2*(gauss(1,2))^3+
w3*(gauss(1,3))^3+w4*(gauss(1,4))^3)*prodm(2,i)+(w1*(gauss(1,1))^2+
w2*(gauss(1,2))^2+w3*(gauss(1,3))^2+w4*(gauss(1,4))^2)*prodm(3,i)+(
w1*gauss(1,1)+w2*gauss(1,2)+w3*gauss(1,3)+w4*gauss(1,4))*prodm(4,
i)+(w1+w2+w3+w4)*prodm(5,i));
end
k=4;
for i=2:3
M(2,i)=h/2*((w1*(gauss(1,1))^4+w2*(gauss(1,2))^4+w3*(gauss(1,3))^4+
w4*(gauss(1,4))^4)*prodm(1,k)+(w1*(gauss(1,1))^3+w2*(gauss(1,2))^3+
w3*(gauss(1,3))^3+w4*(gauss(1,4))^3)*prodm(2,k)+(w1*(gauss(1,1))^2+
w2*(gauss(1,2))^2+w3*(gauss(1,3))^2+w4*(gauss(1,4))^2)*prodm(3,k)+(
w1*gauss(1,1)+w2*gauss(1,2)+w3*gauss(1,3)+w4*gauss(1,4))*prodm(4,
k)+(w1+w2+w3+w4)*prodm(5,k));
k=k+1;
end
M(3,3)=h/2*((w1*(gauss(1,1))^4+w2*(gauss(1,2))^4+w3*(gauss(1,3))^4+
w4*(gauss(1,4))^4)*prodm(1,6)+(w1*(gauss(1,1))^3+w2*(gauss(1,2))^3+
w3*(gauss(1,3))^3+w4*(gauss(1,4))^3)*prodm(2,6)+(w1*(gauss(1,1))^2+
w2*(gauss(1,2))^2+w3*(gauss(1,3))^2+w4*(gauss(1,4))^2)*prodm(3,6)+(
w1*gauss(1,1)+w2*gauss(1,2)+w3*gauss(1,3)+w4*gauss(1,4))*prodm(4,
6)+(w1+w2+w3+w4)*prodm(5,6));
M(2,1)=M(1,2);
M(3,1)=M(1,3);
M(3,2)=M(2,3);
End
14
MEF [PROJET 1 :]
x2=X(T(i,2));
x1=X(T(i,1));
xm=(X(T(i,2))+X(T(i,1)))/2;
f1=@(x) x.*(x-1)/2; %Changement de variable pour phi1
f2=@(x) -(x-1).*(x+1); %Changement de variable pour phi2
f3=@(x) x.*(x+1)/2; %Changement de variable pour phi3
phi1=@(x) f1(x).*f(xm+(x2-x1)/2*x); %Produit des phi et f (après
changement de variable)
phi2=@(x) f2(x).*f(xm+(x2-x1)/2*x);
phi3=@(x) f3(x).*f(xm+(x2-x1)/2*x);
if p==1
elemf(1,1)=(x2-
x1)/2*(w1*phi1(gauss(1,1))+w2*phi1(gauss(1,2))+w3*phi1(gauss(1,3))+
w4*phi1(gauss(1,4)));
elemf(2,1)=(x2-
x1)/2*(w1*phi2(gauss(1,1))+w2*phi2(gauss(1,2))+w3*phi2(gauss(1,3))+
w4*phi2(gauss(1,4)));
end
if p==2
elemf(1,1)=(x2-
x1)/2*(w1*phi1(gauss(1,1))+w2*phi1(gauss(1,2))+w3*phi1(gauss(1,3))+
w4*phi1(gauss(1,4)));
elemf(2,1)=(x2-
x1)/2*(w1*phi2(gauss(1,1))+w2*phi2(gauss(1,2))+w3*phi2(gauss(1,3))+
w4*phi2(gauss(1,4)));
elemf(3,1)=(x2-
x1)/2*(w1*phi3(gauss(1,1))+w2*phi3(gauss(1,2))+w3*phi3(gauss(1,3))+
w4*phi3(gauss(1,4)));
end
end
15
MEF [PROJET 1 :]
prodk=zeros(3,6);
for i=1:3
prodk(1,i)=grad(1,1)*grad(1,i);
prodk(2,1)=2*grad(1,1)*grad(2,1);
prodk(2,2)=grad(1,1)*grad(2,2)+grad(1,2)*grad(2,1);
prodk(2,3)=grad(1,1)*grad(2,3)+grad(1,3)*grad(2,1);
prodk(3,i)=grad(2,1)*grad(2,i);
end
k=2;
for i=4:5
prodk(:,i)=grad(1,2)*grad(1,k);
prodk(3,i)=grad(2,2)*grad(2,k);
k=k+1;
prodk(2,4)=2*grad(1,2)*grad(2,2);
prodk(2,5)=grad(1,2)*grad(2,3)+grad(1,3)*grad(2,2);
end
prodk(:,6)=[grad(1,3)*grad(1,3);2*grad(1,3)*grad(2,3);grad(2,3)*grad(2,3)
];
end
16
MEF [PROJET 1 :]
prodm=zeros(5,6);
for i=1:3
prodm(1,i)=phi(1,1)*phi(1,i);
prodm(2,i)=phi(1,1)*phi(2,i)+phi(1,i)*phi(2,1);
prodm(3,i)=phi(1,1)*phi(3,i)+phi(1,i)*phi(3,1)+phi(2,1)*phi(2,i);
prodm(4,i)=phi(2,1)*phi(3,i)+phi(3,1)*phi(2,i);
prodm(5,i)=phi(3,1)*phi(3,i);
end
k=2;
for i=4:5
prodm(1,i)=phi(1,2)*phi(1,k);
prodm(2,i)=phi(1,2)*phi(2,k)+phi(2,2)*phi(1,k);
prodm(3,i)=phi(1,2)*phi(3,k)+phi(1,k)*phi(3,2)+phi(2,2)*phi(2,k);
prodm(4,i)=phi(2,2)*phi(3,k)+phi(3,2)*phi(2,k);
prodm(5,i)=phi(3,2)*phi(3,k);
k=k+1;
end
prodm(:,6)=[phi(1,3)*phi(1,3);2*phi(1,3)*phi(2,3);2*phi(1,3)*phi(3,3)+phi(2,3)
*phi(2,3);2*phi(2,3)*phi(3,3);phi(3,3)*phi(3,3)];
end
17
MEF [PROJET 1 :]
6. Assemblage :
[X,T]=maillage2P(a,b,n);
[ phi, grad ] = ref( p );
[ prodk ] = produitk( grad );
[ prodm ] = produitm( phi );
[ K ] = Calcul_K( a,b,n,prodk );
[ M ] = Calcul_M( a,b,n,prodm );
Kf=zeros(n,n);
Mf=zeros(n,n);
for k=1:(n-1)/2
for j=1:3
for i=1:3
I=2*k+i-2;
J=2*k+j-2;
Kf(I,J)=Kf(I,J)+K(i,j);
Mf(I,J)=Mf(I,J)+M(i,j);
end
end
end
A=alpha*Kf+beta*Mf;
F=zeros(n,1);
for j=1:(n-1)/2
[elemf] = Second_membre(X,T,j,f);
for i=1:3
I=2*j+i-2;
F(I)=F(I)+elemf(i);
end
end
end
18
MEF [PROJET 1 :]
7. Les résultats :
function [X,T,A,F,U]=Resolution1D(a,b,n,alpha,beta,f,p)
[ X,T ] = Maillage1D(a,b,n,p);
[ A,F ] = Assemblage( a,b,n,alpha,beta,f,p );
A(1,:)=0;
A(n,:)=0;
F(1,1)=0;
F(n,1)=0;
A(1,1)=1;
A(n,n)=1;
U=A\F;
19
MEF [PROJET 1 :]
Pour tester le résultat obtenu, on va introduire la fonction resolution1D qui vérifie les
conditions du problème et la comparer ainsi avec la solution approchée qu’on a trouvé via
MATLAB.
20