Está en la página 1de 12

Escuela de Ingeniería civil.

Elementos finitos.

Reporte sobre:
“MEF para Problemas de Contorno Bidimensionales.”

Profesor:
Msc. Esteban Samaniego.

Autor:
Danny Fernández Ojeda
1. Objetivos:
• Resolver 2 ejercicios utilizando el código descargado y la herramienta PDE del
programa MATLAB.
• Observar la convergencia de los resultados obtenidos mediante el código.

2. Introducción.

El MEF puede ser aplicado en la resolución y diagnóstico de problemas de análisis


estructural pala la obtención de desplazamientos, deformaciones y tensiones, también
permite representar diferentes escenarios y evaluar el rendimiento de productos con
aplicación de criterios de resistencia, rigidez o fatiga. También las variaciones del método
de los elementos finitos permiten profundizar análisis térmico, acústico, dinámico,
electromagnético y de flujos de los casos más simples de comportamiento linear al no
linear, como cuando se tienen grandes desplazamientos o contacto entre las partes de un
conjunto.
Por tanto, el presente trabajo se realizó con la finalidad de comprobar el funcionamiento
del código desarrollado Jochen Alberty, Carsten Carstensen and Stefan A. Funken. Este
código resuelve problemas mediante el método de los elementos finitos (2D). Se
realizaron dos ejercicios utilizando la aplicación PDE propia de MATLAB; los mismos
fueron resueltos usando PDE y el código descargado. Se compararon resultados de cada
programa a medida que se iban refinando las mallas y se observó la convergencia de
cada una.
El informe aborda la implementación del Método de Elementos Finitos para elementos
triangulares en 2 dimensiones de Laplace con condiciones de contorno de Dirichlet
(condiciones de Temperatura) y Neumann (condiciones de flujo de calor). En la
implementación se analizan 2 casos, el primero consta de un cuadrado simple mientras
que el otro caso analiza una figura de geometría compleja. Además, los 2 casos son
analizados por dos diferentes códigos, el primero adquirido por el docente y el otro
obtenido por la herramienta de matlab denominada pdetool. Dicha herramienta
incrementó el grado de discretización, ya que este contrasta y aproxima de mejor manera
la solución para las dos figuras expuestas. Por lo que el presente informe evidencia las
diferencias en desarrollo y uso de los códigos, pero brindan la correspondiente y similar
solución. De esta manera ambos códigos aportan el mismo flujo de calor para cualquier
figura a analizar.

2. Metodología:

El código utilizado para la implementación fue entregado por el docente, basado en 4


datos archivos tipo dat que determinan una discretización de triángulos y cuadriláteros.
Sin embargo, se modificó el código para el análisis de una discretización solamente de
triángulos. Mediante los 4 archivos (coordenadas, condiciones de Neumann, condiciones
de Dirichlet y elementos o nodos) con los cuales el programa genera una malla y
encuentra una solución aproximada. Para una mejor comprensión de la solución se hizo
uso de la herramienta “pdetool” que resuelve de modo iterativo varios tipos de ecuaciones
diferenciales parciales. Dicha herramienta generó un nuevo código, que además de
inicializar la malla permite refinarla para obtener una solución exacta.
3. Código.
1 % FEM2D two-dimensional finite element method for Laplacian.
2 % Initialisation
3 load coordinates.dat; coordinates(:,1)=[];
4 eval(’load elements3.dat; elements3(:,1)=[];’,’elements3=[];’);
5 eval(’load elements4.dat; elements4(:,1)=[];’,’elements4=[];’);
6 eval(’load neumann.dat; neumann(:,1) = [];’,’neumann=[];’);
7 load dirichlet.dat; dirichlet(:,1) = [];
8 FreeNodes=setdiff(1:size(coordinates,1),unique(dirichlet));
9 A = sparse(size(coordinates,1),size(coordinates,1));
10 b = sparse(size(coordinates,1),1);
11 % Assembly
12 for j = 1:size(elements3,1)
13 A(elements3(j,:),elements3(j,:)) = A(elements3(j,:), ...
14 elements3(j,:)) + stima3(coordinates(elements3(j,:),:));
15 end
16 for j = 1:size(elements4,1)
17 A(elements4(j,:),elements4(j,:)) = A(elements4(j,:), ...
18 elements4(j,:)) + stima4(coordinates(elements4(j,:),:));
19 end
20 % Volume Forces
21 for j = 1:size(elements3,1)
22 b(elements3(j,:)) = b(elements3(j,:)) + ...
23 det([1,1,1; coordinates(elements3(j,:),:)’]) * ... J. Alberty et al. / Matlab program
for FEM 133
24 f(sum(coordinates(elements3(j,:),:))/3)/6;
25 end
26 for j = 1:size(elements4,1)
27 b(elements4(j,:)) = b(elements4(j,:)) + ...
28 det([1,1,1; coordinates(elements4(j,1:3),:)’]) * ...
29 f(sum(coordinates(elements4(j,:),:))/4)/4;
30 end
31 % Neumann conditions
32 for j = 1 : size(neumann,1)
33 b(neumann(j,:))=b(neumann(j,:)) + ...
34 norm(coordinates(neumann(j,1),:)-coordinates(neumann(j,2),:))*...
g(sum(coordinates(neumann(j,:),:))/2)/2;
35 end
36 % Dirichlet conditions
37 u = sparse(size(coordinates,1),1);
38 u(unique(dirichlet)) = u_d(coordinates(unique(dirichlet),:));
39 b = b - A * u;
40 % Computation of the solution
41 u(FreeNodes) = A(FreeNodes,FreeNodes) \ b(FreeNodes);
42 % graphic representation
43 show(elements3,elements4,coordinates,full(u));

4. Explicación del código.


• Líneas 3–10: Carga de la geometría de malla e inicialización.

• Líneas 11–19: ensamblaje de la matriz de rigidez en dos bucles, primero sobre los elementos

triangulares, luego sobre los cuadriláteros.

• Líneas 20–30: Incorporación de la fuerza del volumen en dos bucles, primero sobre los elementos

triangulares, luego sobre los cuadriláteros.

• Líneas 31–35: Incorporando la condición de Neumann.

• Líneas 36–39: Incorporando la condición de Dirichlet.

• Líneas 40–41: Resolviendo el sistema lineal reducido.

• Líneas 42–43: Representación gráfica de la solución numérica.

5. Esquema de las figuras planteadas:.

Condiciones de frontera
Líneas de color rojo: Dirichlet.
Líneas de color azul: Neumann

5.1 Dibujo N°1

Ilustración 1. Dibujo correspondiente al ejercicio 1.


5.2 Dibujo N°2

Ilustración 2. Dibujo correspondiente al ejercicio 2.

6. Análisis de convergencia
Imágenes de la izquierda (PDE) – Imágenes de la derecha (código)
6.1 Ejercicio 1.
6.1.1 Malla gruesa – PDE vs código
6.1.2 Malla media – PDE vs código.
6.1.3 Malla fina – PDE vs código

Malla Nodos Triángulos Máximo Error Tiempo


% (seg)
1. Gruesa 72 102 69.3343 6.25 0.094
2. Media 245 408 74.464 3.43 0.139
3. Fina 17657 34688 77.4260 0 0.583

Malla Nodos Triángulos Máximo


1. Gruesa 72 102 69.3343
2. Media 245 408 74.464
3. Fina 17657 34688 77.374
6.2 Ejercicio 2.
6.2.1 Malla gruesa – Código vs PDE

6.2.2 Malla media – Código vs PDE


6.2.3 Malla fina – Código vs PDE
Malla Nodos Triángulos Máximo Error Tiempo
% (seg)
1. Gruesa 128 202 49.3884 8.75 0.148
2. Mediana 458 808 51.8856 4.22 0.172
3. Fina 1724 3232 54.1730 0 0.308

Mesh convergence
55
54.173
54

53
Temperature

51.8856
52

51

50
49.3884

49
0 200 400 600 800 1000 1200 1400 1600 1800 2000
Nodes

Malla Nodos Triángulos Máximo Promedio Error %


1. Gruesa 128 202 49.4328 26.9110 15.13
2. Mediana 458 808 51.8856 29.9210 5.63
3. Fina 1724 3232 54.1730 31.7067 0
Mean convergence
31.7067
32

31
29.921

Temperature
30

29

28
26.911
27

26
0 500 1000 1500 2000
# Nodes

7. Interpretación de Resultados.
La ejecución de la generación de los desplazamientos entre el código empleado respecto
a la herramienta pdetool no presenta errores en ninguno de los nodos; sin embargo, se
puede observar que en cada ejecución para las diferentes mallas, mientras que el error
para la convergencia de desplazamientos disminuye, el tiempo de ejecución con cada
malla es mayor, por lo que no resulta conveniente aumentar el número de nodos a tal
manera de querer conseguir un valor más preciso, si cada vez tarda más tiempo para ello.
Los resultados se determinaron en comparación a cuatro mallas de datos para un mejor
entendimiento.

8. Conclusiones.

Se desarrollo un modelo bidimensional partiendo del balance de la energía térmica, en donde:


Tasa de cambio de energía del cuerpo = Calor generado por fuentes en un cuerpo + Flujo Neto
entrante capaz de predecir la evolución de la conducción del calor.
Para implementar una posible solución de MEF es necesario expresar en términos diferenciales y
discretizándolo, para posteriormente aplicar condiciones de borde (Dirichlet y Neumann). Cabe
recordar que la partición realizada a lo largo del dominio de estudio fue puramente de elementos
triangulares.

Tanto Matlab como la herramienta “pdetool” nos proveerán una interfaz gráfica capaz de elegir
nuestra ecuación diferencial (Elíptica) y así crear, inspeccionar y refinar nuestra malla. El código
innovador implementado en la resolución proviene del Prof. Carsten Carstensen, el cual explica
brevemente, paso a paso el desarrollo de un modelo de transferencia de calor.

Partiendo del código expuesto anteriormente y comparando con el mallador (pdetool) se puede
apreciar en la gráfica de resultados que, de un punto en común el valor converge de forma
logarítmica, es decir permaneciendo de modo invariable a partir de un determinado número de
nodos. Por tal motivo no es necesario aumentar la cantidad de nodos, ya que esto se ve reflejado
en el costo computacional al no tener una mejora significativa.
Para el primer y segundo ejemplo el mallado grueso resulta una fuente de error sumamente alta,
sin embargo, la malla fina (refinada) nos da un error de 1.189 y 10.11 %, pasando por un mallado
fino con un error de 6.82 10.95 %.

Finalmente se puede concluir que el error generado depende fundamentalmente del problema
planteado, a su vez del tipo del mallado efectuado este siendo directamente proporcional al costo
computacional. Por lo que la elección del número de nodos (mallado) quedara a elección del
programador en cuestión.

9. Recomendaciones.
La malla de elementos finitos dependerá de dos factores:
• Precisión: Malla fina da mejor precisión, pero se tarda más tiempo en resolver el
problema.
• Tiempo: Sera menor a costo de la precisión de la malla
Se podrá doblar el tiempo de ejecución del programa para mejorar la precisión en 1%, no resulta
conveniente, se debe estimar/asumir la malla que mejor se acomode a la resolución.
Simetría: Se puede determinar simetrías para su espacio geométrico para disminuir el tiempo sin
sacrificar la precisión.

También podría gustarte