Programaci¶
on del MEF (I)
4.1 Introducci¶
on
En los cap¶³tulos anteriores se ha visto que el MEF moderno no es un procedimiento nove-
doso desde el punto de vista matem¶ atico. Puede asimilarse al procedimiento de residuos
ponderados de Galerkin o al m¶etodo de Ritz, m¶etodos num¶ericos publicados medio siglo
antes de que aparecieran los elementos ¯nitos.
Lo innovador del MEF es la forma sistem¶ atica y general que se da a estos procedimien-
tos num¶ericos, de manera que resultan f¶ acilmente automatizables empleando un ordenador
digital.
El uso pr¶actico del MEF es impensable sin la ayuda de los ordenadores. Todos los
desarrollos te¶
oricos y sus justi¯caciones matem¶ aticas acaban convertidos en l¶³neas de un
programa de ordenador. Una de las mejores formas de estudiar el MEF es analizar y
tratar de entender la estructura interna de un programa de c¶ alculo basado en el mismo.
O, mejor todav¶³a, programar de principio a ¯n un programa que resuelva un problema
sencillo. Esto proporciona una visi¶ on pr¶actica del m¶etodo, de c¶omo se hacen en realidad
las cosas, que es casi imposible conseguir de otro modo.
El objetivo del presente cap¶³tulo es ver cu¶ ales son los componentes b¶ asicos de un
programa de c¶ alculo basado en el MEF y, a la vez, analizar una de las posibles arquitecturas
internas. Como primer paso, se proporciona la sistem¶ atica b¶asica o \receta" del MEF,
que fue previa a cualquiera de sus justi¯caciones matem¶ aticas.
27
u 2 H1 j u
S = f~ ¹ en Sd g
~ =d
u 2 H 1 j ±~
V = f±~ u = 0 en Sd g
La receta es la siguiente:
1. Dividir el dominio de c¶
alculo l en subdominios o elementos:
[ \
l= li li = ;
i i
3. Las integrales que aparecen en 4.1 se hacen sumando las contribuciones de los dis-
tintos elementos, es decir, 8±~
u 2 V:
X
u)l ¡ [¹t; ±~
0 = (su ; e±u )l ¡ (b; ±~ u]St = u)li ¡ [¹t; ±~
f(su ; e±u )li ¡ (b; ±~ u]Sti g
i
4. La contribuci¶
on de cada elemento a la suma anterior es, sustituyendo 4.2:
±aei t (Bt D B)li aei ¡ ±aei t (Nt b)li ¡ ±aei t [Nt¹t]Sti = ±aei t (Kei aei ¡ fei )
donde Kei ´ (Bt D B)li es la matriz de rigidez del elemento i; y fei ´ (Nt b)li +
[Nt¹t]Sti es el vector de cargas del elemento i.
28
5. La suma de las contribuciones de los distintos elementos se hace a trav¶es del llamado
proceso de ensamblaje.
N¶otese que algunos de los coe¯cientes inc¶
ognita ae de¯nidos a nivel de cada elemento
ser¶
an normalmente compartidos por los elementos adyacentes, ya que existir¶ an nodos
comunes. Podr¶ a entonces establecerse una numeraci¶ on de car¶
acter global para estos
coe¯cientes. Llamaremos a al vector de los coe¯cientes inc¶ognita de¯nidos para todos
los elementos. As¶³, un mismo coe¯ciente tendr¶ a una u¶nica numeraci¶on global, como
componente del vector a, y una o varias numeraciones locales, como componente de
uno o varios vectores locales ae .
El proceso de ensamblaje consiste en ir acumulando las contribuciones de cada ele-
mento en matrices y vectores de car¶ acter global, esto es, ordenados seg¶
un la nume-
raci¶
on global de grados de libertad. La forma discreta de 4.1 queda:
X
±aei t (Kei aei ¡ fei ) ´ ±at (K a ¡ f ) = 0 8 ±a (4.3)
elementos
De todos los puntos anteriores, quiz¶ a el m¶as dif¶³cil de ver para el novicio es el del
ensamblaje (paso 5). El concepto se visualiza f¶acilmente con un ejemplo. Sea un problema
unidimensional en el que se utilizan los tres elementos ¯nitos de dos nodos representados
en la ¯gura, y supongamos que s¶ olo se tiene un grado de libertad por nodo.
1 2 3 4
x x x x
1 2 3
29
" #
K111 K112
K1 =
K121 K122
el vector de cargas:
( )
f11
f1 =
f12
Y an¶
alogamente para los elementos 2 y 3. La relaci¶
on entre grados de libertad locales
y globales es:
4.3 C¶
alculos por el MEF: datos y resultados
Los datos b¶asicos que se requieren para llevar a cabo un c¶
alculo por el MEF son los
siguientes:
30
1. De¯nici¶
on de la geometr¶³a del dominio de c¶
alculo y discretizaci¶
on del mismo.
Esto se hace dando una lista de nodos y de elementos. Cada nodo es un punto
dentro del dominio de c¶
alculo y se de¯ne mediante un n¶ umero de orden o etiqueta
identi¯cativa (n¶
umero de nodo) y sus coordenadas en el sistema de referencia elegido.
Cada elemento corresponde a uno de los subdominios en que se divide el dominio de
c¶
alculo. Se de¯ne mediante un n¶umero de orden o etiqueta identi¯cativa (n¶ umero de
elemento) y una lista de n¶
umeros de nodo, la cual se conoce tambi¶en con el nombre
de conectividad del elemento. Como se ver¶
a m¶as adelante, la geometr¶³a del elemento
queda completamente de¯nida a partir de la formulaci¶ on interna del elemento y de
las coordenadas de sus nodos.
El conjunto de nodos y elementos constituye lo que se conoce como mallado o malla
de elementos ¯nitos.
4. Condiciones de contorno.
En problemas mec¶ anicos se distinguen dos clases de condiciones de contorno: las
condiciones de contorno en desplazamientos y las condiciones de contorno en fuer-
zas. Las primeras son restricciones de tipo cinem¶ atico y corresponden normalmente
a las condiciones de contorno que hemos llamado esenciales en el planteamiento va-
riacional. En los manuales de usuario de los programas de elementos ¯nitos estas
restricciones se conocen como condiciones de contorno propiamente dichas. Se carac-
terizan porque afectan directamente a la variable de campo del problema. Ejemplos
t¶³picos son los desplazamientos restringidos o los desplazamientos impuestos. Estas
condiciones se aplican directamente sobre los nodos, limitando o anulando sus des-
plazamientos, y se dan mediante una lista de nodos a los que se asocia un c¶ odigo
que corresponde a la condici¶ on de contorno que se desea aplicar.
Las condiciones de contorno en fuerzas son las que normalmente se conoce como
acciones en los manuales de usuario de los programas de elementos ¯nitos. Se trata
31
de fuerzas aplicadas sobre nodos (cargas puntuales), presiones sobre la super¯cie de
los elementos o fuerzas distribuidas por unidad de volumen en los elementos.
En otro tipo de problemas, no mec¶ anicos, tambi¶en puede hacerse la distinci¶
on entre
estas dos clases de condiciones de contorno. Por ejemplo, en problemas de trans-
ferencia de calor, las condiciones de contorno en desplazamientos corresponden a
temperaturas impuestas; y las condiciones de contorno en fuerzas o acciones corres-
ponden a °ujos o fuentes de calor.
5. Otros datos.
Los datos que se mencionan en los puntos anteriores son imprescindibles en cual-
quier c¶alculo por elementos ¯nitos. Existen otras clases de datos que pueden no ser
necesarios en funci¶ on del tipo de problema que se trate de resolver. Se puede pen-
sar, por ejemplo, en datos de condiciones iniciales del dominio (tensi¶on, velocidad,
temperatura, . . . ), en relaciones impuestas entre el movimiento de diferentes nodos
(v¶³nculos cinem¶aticos) . . .
1. Variables nodales.
Son los resultados que de¯nen la variable de campo inc¶ ognita b¶asica o sus derivadas
con respecto al tiempo. Dependiendo del problema, son los desplazamientos, giros,
velocidades, temperaturas, etc. . . . Se trata de valores que se obtienen directamente
en los nodos del mallado y su orden de aproximaci¶ on suele ser bastante bueno, aun
con discretizaciones muy gruesas. En esta categor¶³a se incluyen tambi¶en las reaccio-
nes en los puntos a los que se aplican condiciones de contorno en desplazamientos.
2. Variables elementales.
Son los resultados que corresponden a campos derivados del campo inc¶ ognita b¶
asica
a trav¶es de derivadas espaciales. Son, por ejemplo, los campos de deformaciones,
tensiones, °ujo de calor, etc. . . . Se trata de resultados calculados en puntos internos
de los elementos, aunque a veces se extrapolen luego a los nodos. Su orden de
aproximaci¶ on es peor que el de las variables nodales: si se utilizan discretizaciones
gruesas pueden cometerse errores importantes.
32
matriz de rigidez global y el vector global de cargas), resolver el sistema de ecuaciones
y, ¯nalmente, obtener los resultados necesarios a partir de la soluci¶ on del sistema de
ecuaciones.
El °ujo general de un programa de elementos ¯nitos para c¶ alculo lineal podr¶³a ser el
siguiente:
1. Entrada de datos
En esta etapa se realiza la lectura y/o generaci¶
on de los datos y su acoplamiento den-
tro de la estructura de datos del programa. Se realizan tambi¶en las comprobaciones
o chequeos b¶ asicos de consistencia de los datos introducidos por el usuario.
2. Tareas preliminares
En esta fase realizan las labores previas al ensamblaje del sistema global de ecuacio-
nes. Por ejemplo, la numeraci¶ on global de grados de libertad, el c¶
alculo del semian-
cho de banda, las comprobaciones de que se dispone de espacio su¯ciente (memoria,
disco), etc. . . .
3. Construcci¶
on de la matriz de rigidez global K y del vector global de cargas f
El proceso puede estructurarse en dos etapas: un bucle que recorre los elementos y,
luego, la imposici¶
on de las acciones nodales directas:
4. Resolver el sistema K a = f
6. Elaboraci¶
on y salida de resultados elementales
Esta parte se organiza tambi¶en mediante un bucle que recorre los elementos:
N¶otese que el n¶
ucleo del programa es el c¶
alculo de la matriz de rigidez elemental y del
vector elemental de cargas. En ese punto intervienen la llamada tecnolog¶³a de elementos, o
33
t¶ecnicas de construcci¶ on del espacio de aproximaci¶ on, y los modelos matem¶ aticos de leyes
de comportamiento de los materiales.
El otro punto importante es la forma de resolver el sistema de ecuaciones, que es la
etapa donde m¶ as tiempo de ordenador se gasta en los problemas lineales. La tecnolog¶³a
de elementos, los modelos matem¶ aticos de leyes de comportamiento y los procedimientos
de soluci¶on forman los tres pilares de las t¶ecnicas de elementos ¯nitos.
El resto de las etapas del programa, las de organizaci¶on y transferencia de informaci¶on,
constituyen lo que se conoce como interfase con el usuario. Son etapas muy importantes,
sobre todo desde el punto de vista de la facilidad de uso del programa, y se abordan hoy
en d¶³a con apoyo gr¶ a¯co. Sin embargo se han dejado fuera del alcance de estas notas, por
no corresponder estrictamente al c¶ alculo con elementos ¯nitos.
34