Solución de un problema eliptico elementos finitos matlab
1. UNIVESIDAD NACIONAL DE INGENIERIA
FACULTA DE CIENCIAS- MAESTRIA EN MATEMÁTICA APLICADA
PROGRAMA PARA LA SOLUCIÓN DE UN PROBLEMA
ELIPTICO POR EL METODO DE
ELEMENTOS FINITOS
ALUMNO: WILDER FERNANDO, RAMIREZ VENTURA
PROFESORA: IRLA MANTILLA
CURSO: METODO DE ELEMENTOS FINITOS
AÑO: 2005
2. PROCEDIMIENTO DE PROGRAMA
RESOLVER PROBLEMA BIDIMIENSIONAL DE LA FORMA:
),().),(( yxfuyxkdiv
),(0 yxgu
Sobre la frontera:
ETAPA 1: PRE-PROCESO
Implementación del Mallado
Generación de la malla
Condiciones de contorno: g(x,y)
Función f(x,y)
Función k(x,y)
ETAPA 2: PROCESO
Función U de aproximación
Generación de la matriz de rigidez (k) y del vector
fuerza (f)
Generación del sistema K y F
Aplicando condiciones de frontera
Solución: KU=F
ETAPA 3: POST-PROCESO
Grafico de la Solución
Comprobación de la Solución
Análisis del error
dcxba ,,
3
1i
iiH uu
3. RESOLUCIÓN DE PROBLEMA BIDIMIENSIONAL
Para la resolución del problema bidimensional de la forma:
),().),(( yxfuyxkdiv
),(0 yxgu
Se ha implementado un aplicativo en MATLAB que resuelve
automáticamente la ecuación por el método de elementos finitos. La
utilización del programa es muy sencilla.
Primero se carga los archivos del programa elíptico. Segundo se ejecuta
en la barra de comandos la palabra “menufem.m” y aparecerá el menú
que aparece líneas más abajo.
- En este menú se tiene que ingresar los intervalos del dominio regular
para los valores de x e y, en el cuadro denominado dominio.
- Luego se define cuantos nodos va a ver en el eje x e y, este se
encuentra en el cuadro de particiones.
- Luego se ingresara la función f(x,y) e k(x,y) con la condición de que sea
lineal y derivable de orden uno. También esta puede ser una función
constante.
dcxba ,,
4. - Se ingresara los valores de contorno para cada lado de la frontera.
También puede ser una constante o una función.
- Se presionara el botón calcular.
- El resultado será un grafico de mallado con la conexión de nodos y el
gráfico de la solución de la ecuación.
- Los valores de U, se pueden recuperar en el Workspace recuperando el
archivo “menufemtemp.mat”. El código es de la solución es “ug”.
5. DESCRIPCIÓN DETALLADA DEL PROCESO
La aproximación por elementos finitos sigue por lo general un
procedimiento paso a paso. El procedimiento general es el que sigue:
ETAPA 1: PRE-PROCESO
Discretización
Este paso involucra dividir el dominio de la solución en elementos finitos.
Los puntos de intersección de las líneas que unen los lados de los
elementos son conocidos como nodos.
Implementación del Mallado
Pasos:
Dominio de la función
- Se utilizara en el programa un dominio rectangular
[a,b]x[c,d];
Partición del Dominio
- Se dividirá el dominio rectangular [a,b]x[c,d] en
partes alícuotas iguales;
- Se debe establecer la cantidad de nodos en cada
lado del rectángulo:
m: Número de Nodos en el eje X
n: Número de Nodos en el eje Y
Enumeración de nodos globales
- Se enumerará los nodos de forma ordenada de
abajo hacia arriba y de izquierda a derecha;
- Cada nodo se encontrara en cada vértice de la
división alicuota;
Elementos Triangulares
- Se utilizará elementos triangulares para la solución
de la ecuación por métodos de elementos finito;
6. - Para ello se dividirá cada parte alícuota en dos
tomando la diagonal como separación;
Enumeración de elementos
- Se enumerara cada elemento
- La numeración será de la forma ordenada de abajo
hacia arriba y de izquierda a derecha;
Enumeración de nodos locales
- Previamente enumerado los elementos, se
enumerará los nodos de cada elemento de forma
ordenada en sentido anti-horario comenzando del
ángulo más agudo;
- Se identificará cada nodo local con el nodo global;
En el programa Matlab:
Dominio de la función
Se requiere: Identificar el dominio regular de la función
a través del ingreso de valores [a,b]x[c,d]
Grafico Nº 1
Partición del Dominio
Se dividirá el dominio rectangular en partes alícuotas iguales; a
través de la determinación de la cantidad de nodos % en el Eje
X e Eje Y
a b
c
d
7. m=5 % Cantidad de Nodos en el eje X
n=3 % Cantidad de Nodos en el eje Y
Tamaño de las divisiones
h=(b-a)/(m-1); %Tamaño de X en cada parte alicuota
k=(d-c)/(n-1); %Tamaño de Y en cada parte alícuota
Distancia de separación del dominio
dx=a:h:a+(m-1)*h;
dy=c:k:c+(n-1)*k;
Enumeración de nodos globales
% Se obtendrá primero del número de nodos a través de la
% multiplicación m por n.
nnode=m*n;
% Posición XY de cada nodo en el dominio
[gcoord]=corde(m,n,dx,dy);
Enumeración de elementos
Se obtendrá primero el número de elementos
nel=(m-1)*(n-1)*2;
Enumeración de nodos locales
Se hará de forma ordenada en sentido anti-horario
comenzando del ángulo más agudo a través de la función;
[nodes]=nodos(m,n);
Esta función se encarga de identificar la conexión de los
elementos con cada nodo. Esta identificación entre elementos y
nodos se hace de forma antihoraria, del nodo con el ángulo
más agudo hasta finalizar la conexión.
8. Grafico Nº 2
Ejecutando el programa del mallado se obtiene:
a b
d
c1
2
3
4
6
5
9
8
7
1 2
3
12
3
1
2
3
4 8
7
6
5
9. Condiciones de contorno: g(x,y)
Pasos:
-Condiciones de Frontera
Para que el programa funcione se necesita el ingreso de las funciones
que gobiernan cada lado extremo del dominio: Por ejemplo
u(0,y) = ‘0’
u(1,y) = ‘0’
u(x,0)='x*x-b*x';
u(x,1)='x*x-b*x';
Observando el gráfico número 1:
Gráfico Nº 1:
Función Contorno:
Luego que ya se tiene identificado previamente como se comporta la
función u(x,y) en los puntos extremos del dominio y el mallado respectivo,
el programa de contorno realiza las siguientes funciones:
- Identifica que nodos se encuentran en el contorno;
- Localiza cada elemento en el mallado a través de su posición en el
plano XY.
- Se guarda en una matriz para ser utilizada posteriormente en la
solución del sistema
En el programa Matlab:
%Insumos
0 1
1
u(x,0)=x*x-x
u(x,1)=x*x-x
u(1,y)=0u(0,y)=0
10. %Valores de Frontera
val_1='0';
val_2='0';
val_3='x*x-b*x';
val_4='x*x-b*x';
%Función que
[bcdof,bcval]=conto(a,b,c,d,m,n,gcoord,val_1,val_2,val_3,val_4)
Donde:
bcdof : Matriz conteniendo el numero de nodo de la frontera
bcval : Matriz conteniendo el valor del nodo en la frontera
Función f(x,y)
- Puede ser cero, constante real diferente de cero;
- Una función lineal;
- Toda función diferente a la lineal integrable;
Función k(x,y)
- Puede ser uno, o una constante real diferente de cero;
- Una función lineal;
- Toda función diferente a la lineal integrable;
ETAPA 2: PROCESO
Ecuaciones de los elementos
El siguiente paso consiste en desarrollar ecuaciones para aproximar la
solución de cada elemento. Se sigue dos pasos. Primero se debe elegir la
función apropiada con coeficientes desconocidos, que será utilizada para
aproximar la solución. Segundo se evalúa los coeficientes de tal forma
que aproxime la solución óptima.
Función U de aproximación
Elección de la función de aproximación.-
u(x,y)=a0+ a1*x+ a2*y
3
1i
iiH uu
11. Generación de la matriz de rigidez (k) y del vector
fuerza (f); y Generación del sistema K y F
Se implementa un programa en MATLAB que genera la matriz
de rigidez k y de carga f. Al ser elementos triangulares se
genera una matriz del orden 3x3.
Después que se deducen las ecuaciones de cada elemento
individual, éstas se deben enlazar o ensamblar para
caracterizar la conducta unificada de todo el sistema. El
proceso de ensamblaje está determinado por el concepto de
continuidad.
Es decir, las soluciones para los elementos contiguos son
acopladas de tal manera que los valores de las incógnitas en
los nodos comunes sean equivalentes. Así la solución total
será continua.
Estas se ensamblan, expresándose el sistema completo por:
K.U=F
Aplicando condiciones de frontera
Antes de proceder a resolver el sistema, debemos modificarla
para tomar en cuenta las condiciones de frontera del sistema.
Estos ajustes dan como resultado:
FUK
__:
Solución: FUK
__:
Las solución de la ecuación puede obtenerse a través del
operador de matrices de MATLAB “”el cual aplica la división
inversa de matrices. La solución de la ecuación dependerá de
la estructura de los coeficientes de la matriz “K” para eso
12. MATLAB procede a seleccionando el algoritmo apropiado para
la solución del problema.
FKU
__:
ETAPA 3: POST-PROCESO
Una vez obtenida la solución, se puede fácilmente hacer el
gráfico de la solución y un análisis del error.
Grafico de la Solución
Se utiliza el grafico tridimensional cuyas coordenadas son los
datos (x,y) del mallado y las U de la solución por FEM.
Comprobación de la Solución
Análisis del error
13. Para el análisis del error se utilizará el estimador insesgado del
error cuadrático medio. Esta se calcula en base a la diferencia
entre la solución por FEM y la solución exacta.
1
)),(),((:
n
yxuyxu
ECM
h
Como se muestra en la figura adjunta si el método es bueno, el error debe
converger a cero en la medida que se incrementa el número de elementos
del sistema.