Documentos de Académico
Documentos de Profesional
Documentos de Cultura
M DIS Diapositiva EFDF Unidad 4 V02
M DIS Diapositiva EFDF Unidad 4 V02
Miguel Ampuero
TEMARIO
PROBLEMA
4.2. Método de los Elementos Finitos
El modelo es descrito por una ecuación diferencial que en su forma adimensional trae
el número de Péclet que caracteriza la razón entre los términos difusivos y
𝐿𝑈
convectivos como 𝑃𝑒 = siendo 𝐿 y 𝑈 la longitud y velocidad características e 𝛼 , la
𝛼
difusividad térmica.
𝑑2 𝑢 𝑑𝑢
𝐿𝑈 2
− 𝑃𝑒 = 0, 0<𝑥<1
𝑃𝑒 = 𝑑𝑥 𝑑𝑥
𝛼 𝑑𝑢
0 = 𝑢 0 − 1; 𝑢 1 = 0.
𝑑𝑥
• Integrando por partes obteniéndose la formulación débil presentada anteriormente, con eso
la segunda derivada de la función aproximada es evitada y aparecen los términos del
contorno:
1 1
𝑑𝑢ℎ 𝑑𝜙𝑖 𝑑𝑢ℎ 𝑑𝑢ℎ 𝑑𝑢ℎ
𝑅𝑖 = − න 𝑑𝑥 + 1 𝜙𝑖 1 − 0 𝜙𝑖 0 − 𝑃𝑒 න 𝜙𝑖 𝑑𝑥.
0 𝑑𝑥 𝑑𝑥 𝑑𝑥 𝑑𝑥 0 𝑑𝑥
• El objetivo es que la proyección sea encontrada de forma que el error sea lo menor posible.
Haciendo 𝑅𝑖 = 0, manipulando las ecuaciones algebraicamente y aun usando que la
función peso es escogida de forma que garantice las condiciones de contorno, con eso en
la frontera cuya proyección es impuesta (Dirichlet) 𝜙𝑖 vale cero, tenemos:
1
𝑑𝑢ℎ 𝑑𝜙𝑖 𝑑𝑢ℎ 𝑑𝑢ℎ 𝑑𝑢ℎ
⟹න + 𝑃𝑒 𝜙𝑖 𝑑𝑥 = 1 𝜙𝑖 1 − 0 𝜙𝑖 0
0 𝑑𝑥 𝑑𝑥 𝑑𝑥 𝑑𝑥 𝑑𝑥
𝑢ℎ 0 −1
1
𝑑𝑢ℎ 𝑑𝜙𝑖 𝑑𝑢ℎ 𝑑𝑢ℎ
⟹න + 𝑃𝑒 𝜙 𝑑𝑥 = 1 𝜙𝑖 1 − 𝑢ℎ 0 − 1 𝜙𝑖 0
0 𝑑𝑥 𝑑𝑥 𝑑𝑥 𝑖 𝑑𝑥
=0
1
𝑑𝑢ℎ 𝑑𝜙𝑖 𝑑𝑢ℎ
𝑅𝑖 = න + 𝑃𝑒 𝜙 𝑑𝑥 + 𝑢ℎ 0 − 1 𝜙𝑖 0 = 0. (1)
0 𝑑𝑥 𝑑𝑥 𝑑𝑥 𝑖
• Siguiendo el Método de Galerkin, el campo aproximado 𝑢ℎ (𝑥) va ser escrito como una
combinación lineal de las funciones 𝜙𝑖 ,
𝑁
𝑢ℎ 𝑥 = 𝑈𝑖 𝜙𝑖 . (2)
𝑖=1
1 2 3 4 5 6 7 8 𝑖 elementos
puntos nodales
1 2 3 4 5 6 7 8 9
1
𝑑𝑢ℎ 𝑑𝜙𝑖 𝑑𝑢ℎ
𝑅𝑖 = න + 𝑃𝑒 𝜙 𝑑𝑥 + 𝑢ℎ 0 − 1 𝜙𝑖 0 = 0.
0 𝑑𝑥 𝑑𝑥 𝑑𝑥 𝑖
𝑥 = 0 nodo 1 𝜙1 0 = 1 𝜙𝑗 0 = 0 , ∀𝑗 ≠ 1 𝜙1 𝜙2
𝑁 1
𝑑𝜙𝑖 𝑑𝜙𝑗 𝑑𝜙𝑗
𝑅𝑖 = න + 𝑃𝑒 𝜙𝑖 𝑑𝑥 𝑈𝑗 + 𝑈1 − 1 𝜙𝑖 0 .
𝑑𝑥 𝑑𝑥 𝑑𝑥 1 2
𝑗=1 0
c.c. esencial: ⟹ 𝑢 1 = 0 ⟹ 𝑈𝑗 𝜙𝑗 1 ,
𝑗=1
𝑥 = 1 y en el nodo N ⟹ 𝑢 1 = 0 ⟹ 𝑈𝑁 𝜙𝑁 1 = 0
𝑁 1
𝑑𝜙1 𝑑𝜙𝑗 𝑑𝜙𝑗
𝑖=1⟹ 𝑅1 = න + 𝑃𝑒 𝜙 𝑑𝑥 𝑈𝑗 = − 𝑈1 − 1 ,
𝑑𝑥 𝑑𝑥 𝑑𝑥 1
𝑗=1 0
𝑁 1
𝑖 = 2, … 𝑁 − 1 ⟹ 𝑑𝜙𝑖 𝑑𝜙𝑗 𝑑𝜙𝑗
𝑅𝑖 = න + 𝑃𝑒 𝜙 𝑑𝑥 𝑈𝑗 = 0,
𝑑𝑥 𝑑𝑥 𝑑𝑥 𝑖
𝑗=1 0
𝑖=𝑁⟹ 𝑅𝑁 ⟹ 𝑈𝑁 = 0.
⋮
se muestra aquí, en la cual la dispersión de la 𝑈2 0
×
matriz está directamente relacionada en la 0 𝑈3 0
selección de las funciones base/peso ⋮
⋮ ⋮ ⋮
0 =
• En este ejemplo vamos usar elementos lineales × ×
y con eso la matriz global es bastante dispersa × × 0 𝑈8 0
una vez que la matriz tiene una dimensión 2 × 2. 0 0 1 𝑈9 0
⋮
UNIDAD IV - PROBLEMA UNIDIMENSIONAL LINEAL (1D)
4.3. Punto de Vista Local
Lo ideal es ensamblar las matrices y vectores elementales sin preocuparse con las
condiciones de contorno y después modificarlas en función de estas.
𝑒 𝑒 𝑒
𝑒
𝐴11 𝐴12 𝑒
𝑓1 𝑑𝜉 2
𝑨 = 𝑒 𝑒
; 𝒇 = 𝑒
; =
𝐴21 𝐴22 𝑓2 𝑑𝑥 ℎ 𝑒
1 1
𝑒 2 𝑑𝜙𝑗 𝑑𝜙𝑖 𝑑𝜙𝑗 𝑒
𝐴𝑖𝑗 = 𝑒 න 𝑑𝜉 + 𝑃𝑒 න 𝜙𝑖 𝑑𝜉; 𝑓𝑖 =0 …(3)
ℎ 𝑑𝜉 𝑑𝜉 𝑑𝜉
−1 −1
donde
𝑒 1 − 𝜉 𝑑𝜙1 1 𝑒 1 + 𝜉 𝑑𝜙2 1
𝜙1 𝜉 = → =− y 𝜙2 𝜉 = → =
2 𝑑𝜉 2 2 𝑑𝜉 2
𝑒 1 𝑃𝑒
𝐴11 = 𝑒 −
ℎ 2
y así en todos.
Después de obtener las matrices elementales, tenemos que preocuparnos con las
condiciones de contorno. Los términos correspondientes a las condiciones de contorno
son nulas al menos en el primero y ultimo nodo, es decir 𝜙𝑖 (0) ≠ 0, solamente para 𝑖 = 1
y 𝜙𝑖 (1) ≠ 0, apenas para 𝑖 = 𝑁.
𝜙1 𝜙2 𝜙𝑁−1 𝜙𝑁
𝑁 1
𝑑𝜙𝑖 𝑑𝜙𝑗 𝑑𝜙𝑗
… න + 𝑃𝑒 𝜙𝑖 𝑑𝑥 𝑈𝑗 =
𝑑𝑥 𝑑𝑥 𝑑𝑥
𝑗=1 0
− 𝑈1 − 1 𝜙𝑖 0
1 2 N-1 N
𝑥=0 𝑥=1
𝑥
1
En el primer elemento, tenemos que adicionar න = − 𝑈1 − 1 ⟹ 𝑈𝑗 + 𝑈1 = +1
0
1 1 1 1
𝐴11 = 𝐴11 + 1 y 𝑓1 = 𝑓1 + 1.
9
Si la condición de contorno fuese 𝑢 1 = 𝑔 entonces, 𝑓2 ← 𝑔. 𝜙8 𝜙9
= 8 9
…
𝑥=1
9 9 9
𝐴11 𝐴12 𝑈8 𝑓1
9 9 9
𝐴21 𝐴22 𝑈9 𝑓2
• Para calcular los elementos de cada matriz, tenemos que integrar funciones a lo largo
del elemento. De un modo general, calculamos:
1
න 𝐹 𝜉 𝑑𝜉
−1
න 𝐹 𝜉 𝑑𝜉 = 𝐹 𝜉 𝑊𝑖
−1 𝑖=1
1 𝑁𝐺𝑃
La Tabla 1 nos da el valor de 𝜉𝑖 y 𝑊𝑖 para diferentes 𝑁𝐺𝑃 න 𝐹 𝜉 𝑑𝜉 = 𝐹 𝜉 𝑊𝑖
−1 𝑖=1
• El problema presentado a lo largo de esta unidad será usado como ejemplo para
la presentación del código. La solución obtenida es comparada con la solución
analítica de la ecuación diferencial:
𝑒 𝑃𝑥𝑒 − 𝑒 𝑃𝑒
𝑢 𝑥 =
1 − 𝑃𝑒 − 𝑒 𝑃𝑒
figure (2)
plot(x,Error,'LineWidth',2,'MarkerSize',10)
xlabel('x','FontSize',14); ylabel('Error relativo(x)','FontSize',14);
title('Error relativo','FontSize',12)
% =========================================================================
UNIDAD IV - PROBLEMA UNIDIMENSIONAL LINEAL (1D)
4.5. Ejemplo de Implementación del Código en Matlab
% GlobalPointer.m
%=========================================================================
% Funcao Mapeamento Local/Global
% Fecha: Julio 2020
% Autor: Miguel Angel Ampuero Suarez
%=========================================================================
GlobalPointer function [nnodes, DomNodeID] = GlobalPointer(Nele)
nnodes = Nele + 1;
DomNodeID = zeros(Nele, 2);
for i = 1:Nele
DomNodeID(i,1) = i;
DomNodeID(i,2) = i+1;
end
end
%========================================================================
% Mesh.m
%=========================================================================
% Función para el cálculo de la malla problema 1D
% Fecha: Julio 2020
% Autor: Miguel Angel Ampuero Suarez
%=========================================================================
function [x, dx] = Mesh(L, nnodes, Nele, DomNodeID)
Mesh x = zeros(nnodes,1);
dx = zeros(Nele,1);
for i = 1:nnodes
x(i) = L*((i-1)/(nnodes-1));
end
% cálculo de las longitudes del elemento
for iele = 1:Nele
dx(iele) = x(DomNodeID(iele,2)) - x(DomNodeID(iele,1));
end
end
%=========================================================================
UNIDAD IV - PROBLEMA UNIDIMENSIONAL LINEAL (1D)
4.5. Ejemplo de Implementación del Código en Matlab
• Las funciones base y sus derivadas en cada punto de Gauss son calculadas por la
función BasicsFunc, como sigue:
% BasisFunc.m
%=========================================================================
% Función para cálculo de las funciones base
% Fecha: Julio 2020
% Autor: Miguel Angel Ampuero Suarez
%=========================================================================
function [Phi, GradPhi] = BasisFunc(X)
Phi(1) = (1.0 - X)/2;
Phi(2) = (1.0 + X)/2;
GradPhi(1) = -0.5;
GradPhi(2) = 0.5;
end
%=========================================================================