13
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

Solución de un problema eliptico elementos finitos matlab

Embed Size (px)

Citation preview

Page 1: Solución de un problema eliptico elementos finitos matlab

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

Page 2: Solución de un problema eliptico elementos finitos matlab

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

Page 3: Solución de un problema eliptico elementos finitos matlab

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 ,,

Page 4: Solución de un problema eliptico elementos finitos matlab

- 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”.

Page 5: Solución de un problema eliptico elementos finitos matlab

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;

Page 6: Solución de un problema eliptico elementos finitos matlab

- 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

Page 7: Solución de un problema eliptico elementos finitos matlab

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.

Page 8: Solución de un problema eliptico elementos finitos matlab

Grafico Nº 2

Ejecutando el programa del mallado se obtiene:

a b

d

c 1

2

3

4

6

5

9

8

7

1 2

3 1 2

3

1

2

3

4 8

7

6

5

Page 9: Solución de un problema eliptico elementos finitos matlab

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)=0 u(0,y)=0

Page 10: Solución de un problema eliptico elementos finitos matlab

%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

Page 11: Solución de un problema eliptico elementos finitos matlab

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

Page 12: Solución de un problema eliptico elementos finitos matlab

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

Page 13: Solución de un problema eliptico elementos finitos matlab

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

yxuyxuECM

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.