Beruflich Dokumente
Kultur Dokumente
Resumen
El presente trabajo describe los pasos para generar funciones de forma bidimensionales y tridimensionales
mediante producto matricial y tensorial.
Notacion
l(1) Funcion de forma unidimensional Lagrangiana
(1) 1 1
l1 = +
2 2
(1) 1 1
l2 = +
2 2
1
Funcion de forma Lagrangiana unidimensional de 3 nodos:
(1) 1 2 1
l1 =
2 2
(1)
l2 = 2 + 1
(1) 1 2 1
l3 = +
2 2
2
" #
(1)
12 + 12
l1
(1) = 1 1
l2 2 + 2
" # " #
(1) h (2) (2)
l1 l1 l4
i
(1) (1)
(1) l1 l2 = (2) (2)
l2 l2 l3
(2) 1 2 2 1 2 1 1
l1 = 2 +
4 4 4 4
(2) 1 2 2 1 2 1 2 1
l2 = + +
2 2 2 2
(2) 1 2 2 1 2 1 2 1
l3 = +
4 4 4 4
(2) 1 2 2 1 2 1 2 1
l4 = + +
2 2 2 2
3
(2) 1 2 2 1 2 1 1
l1 = 2 +
4 4 4 4
(2) 1 2 2 1 2 1 2 1
l2 = + +
2 2 2 2
(2) 1 2 2 1 2 1 2 1
l3 = +
4 4 4 4
(2) 1 2 2 1 2 1 2 1
l4 = + +
2 2 2 2
(2) 1 2 2 1 2 1 2 1
l5 = + + +
4 4 4 4
(2) 1 2 2 1 2 1 2 1
l6 = + +
2 2 2 2
(2) 1 2 2 1 2 1 2 1
l7 = +
4 4 4 4
(2) 1 2 2 1 2 1 2 1
l8 = + +
2 2 2 2
(2)
l9 = 2 2 2 2 + 1
4
5
3. Funciones de forma tridimensionales
3.1. Metodo
Las l(3) tambien se generar a partir de l(1) , realizando un producto tensorial [2].
h i h iT h iT h i
l(1) l(1) l(1) = l(3)
T
En donde l(1) es una matriz columna con j-elementos, l(1) es una matriz fila con j-elementos y l(3) es una
hipermatriz.
(3) 1 1 1 1 1 1 1 1
l1 = + + + +
8 8 8 8 8 8 8 8
(3) 1 1 1 1 1 1 1 1
l2 = + + +
8 8 8 8 8 8 8 8
(3) 1 1 1 1 1 1 1 1
l6 = + + + +
8 8 8 8 8 8 8 8
(3) 1 1 1 1 1 1 1 1
l5 = + + +
8 8 8 8 8 8 8 8
(3) 1 1 1 1 1 1 1 1
l4 = + + +
8 8 8 8 8 8 8 8
(3) 1 1 1 1 1 1 1 1
l3 = + + + +
8 8 8 8 8 8 8 8
(3) 1 1 1 1 1 1 1 1
l7 = + + + + + + +
8 8 8 8 8 8 8 8
(3) 1 1 1 1 1 1 1 1
l8 = + + + +
8 8 8 8 8 8 8 8
6
Elemento hexaedrico de 27 nodos:
(1)
1 2
12
l1 2
(1)
l2 = 2 + 1
(1) 1 2 1
l3 2 + 2
(1) (3) (3) (3) (3) (3) (3)
(3) (3) (3)
l l l l19 l8 l17 l26 l7 l16 l25
1(1) (1) 1(3) 10
h ih i
(1) (1) (1) (1) (1) (3) (3) (3) (3) (3) (3) (3) (3)
l2 l1 l2 l3 l1 l2 l3 = l2 l11 l20 l9 l18 l27 l6 l15 l24
(1) (3) (3) (3) (3) (3) (3) (3) (3) (3)
l3 l3 l12 l21 l4 l13 l22 l5 l14 l23
7
(3) 1 2 2 2 1 2 2 1 1 1 1 1 1
l1 = 2 2 + 2 2 2 + 2 + 2
8 8 8 8 8 8 8 8
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l2 = + + + +
4 4 4 4 4 4 4 4
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l3 = + + +
8 8 8 8 8 8 8 8
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l12 = + + + +
4 4 4 4 4 4 4 4
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l21 = + + +
8 8 8 8 8 8 8 8
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l20 = + + + +
4 4 4 4 4 4 4 4
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l19 = + + +
8 8 8 8 8 8 8 8
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l10 = + + + +
4 4 4 4 4 4 4 4
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l11 = + + +
2 2 2 2 2 2 2 2
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l8 = + + + +
4 4 4 4 4 4 4 4
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l9 = + + +
2 2 2 2 2 2 2 2
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l13 = + + + +
4 4 4 4 4 4 4 4
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l22 = + + +
2 2 2 2 2 2 2 2
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l27 = + + + +
4 4 4 4 4 4 4 4
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l26 = + + +
2 2 2 2 2 2 2 2
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l17 = + + + +
4 4 4 4 4 4 4 4
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l18 = + + +
2 2 2 2 2 2 2 2
(3)
l14 = 2 2 2 + 2 2 + 2 2 2 + 2 2 2 2 + 1
(3) 1 2 2 2 1 2 2 1 1 1 1 1 1
l7 = + 2 2 2 2 2 + 2 2 +
8 8 8 8 8 8 8 8
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l6 = + + + +
4 4 4 4 4 4 4 4
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l5 = + + +
8 8 8 8 8 8 8 8
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l14 = + + + +
4 4 4 4 4 4 4 4
8
(3) 1 2 2 2 1 2 2 1 1 1 1 1 1
l23 = + + 2 2 + 2 + 2 2 + 2 + 2 +
8 8 8 8 8 8 8 8
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l24 = + + + +
4 4 4 4 4 4 4 4
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l25 = + + +
8 8 8 8 8 8 8 8
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l16 = + + + +
4 4 4 4 4 4 4 4
(3) 1 2 2 2 1 2 2 1 2 2 1 2 1 2 2 1 2 1 2 1
l15 = + + +
2 2 2 2 2 2 2 2
9
Conclusiones
Se implemento la forma de calculo en Python [3], usando IPython notebook [4], Numpy [5], Sympy [6], Matplotlib
[7] y Mayavi [8]; tambien se realizo una tabla comparativa de los tiempos de ejecucion de las funciones:
10
Elemento 1D Elemento 2D Elemento 3D
2 nodos 0.003 seg. 4 nodos 0.021 seg. 8 nodos 0.060 seg.
3 nodos 0.003 seg. 9 nodos 0.006 seg. 27 nodos 0.014 seg.
4 nodos 0.055 seg. 16 nodos 0.345 seg. 64 nodos 4.637 seg.
5 nodos 0.074 seg. 25 nodos 0.469 seg. 125 nodos 7.197 seg.
6 nodos 0.167 seg. 36 nodos 1.530 seg. 216 nodos 57.337 seg.
Para generar elementos de mayor grado y reducir el tiempo de calculo se optimizara el codigo y se usara Numba
[9].
Se estudiaran las propiedades de las matrices l(2) :
Rango
Traza
Determinante
En el caso de las matrices l(3) :
Hiperdeterminante
Los archivos del trabajo se encuentran en https://github.com/ClaudioVZ/Teoria-FEM-Python.
Referencias
[1] O.C.Zienkiewicz; R.L.Taylor. El Metodo de los Elementos Finitos Volumen 1. McGrall-Hill; CIMNE. 1994.
[2] ClaudioVZ. Hipermatriz. 2013.
11