UNIVERSIDAD NACIONAL DE
CAJAMARCA
Facultad de Ingeniera Civil
TESIS
Para Obtener Titulo de Ingeniero Civil
Anlisis Estructural por el Mtodo de Elementos Finitos Asistido por Computadora
(Vigas-Prticos,Placas,Slidos de Revolucin.)
Tesista: Bach.Christian Gonzalo Salcedo Malaver.
Asesor: Ing.Marco Mendoza Linares.
Marzo del 2014.
SECCIN PRELIMINAR.
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
DEDICATORIA:
Dedico esta tesis a mis padres ya que a ellos les debo la vida y
mis estudios y lo que puedo ser ms adelante.
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
AGRADECIMIENTOS:
* A mi madre a la cual le debo la vida, lo que soy y lo que pretendo
ser, por que siempre estuvo en mis aciertos y mis fracasos y me
enseo la constancia de la vida con su ejemplo.
* A mi padre al que le debo su ejemplo y su coraje para enfrentar
los problemas,el que me demostr que los fracasos de la vida son
solo retos para algo mas grande.
* A mis profesores que con su esfuerzo y buen nimo me aconsejaron y me ensearon en todos estos aos.
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
RESUMEN
La presente tesis trata en forma objetiva del anlisis de estructuras con el mtodo de elementos finitos, lo cual se empezar primero con el aprendizaje del mtodo y despus con la aplicacin
a diferentes sistemas tanto sencillos como complejos,para lo cual
se desarrollar un software en python en el sistema windows para
ejemplos tericos y simples, el objetivo principal de la tesis es demostrar que los resultados obtenidos por el mtodo de elementos
finitos en este caso representado con el script programado llamado FEMAX son los ms cercanos posibles a los resultados aceptados por la comunidad de ingeniera,ya que estos fueron comparados con el software aceptados en forma estandard como el
SAP 2000 V14,en el mbito comparativo se vio que los resultados
obtenidos con el script programado en este caso por objetivos de
la tesis FEMAX fueron satisfactorios obteniendo un error hasta de
0.01 % por lo que se da como resultados aceptables y que se ha
llegado a un caso satisfactorio de la presente tesis.
ndice general
1. Problema de Investigacin.
15
1.1. Ubicacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1.2. Poblacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1.3. Introduccin y Planteamiento del Problema. . . . . . . . . . . . . . . .
15
1.3.1. Planteamiento del Problema. . . . . . . . . . . . . . . . . . . .
15
1.3.2. Formulacin del Problema. . . . . . . . . . . . . . . . . . . . .
16
1.3.3. Elementos Continuos y Discretos. . . . . . . . . . . . . . . . .
16
1.3.4. Justificacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
1.3.5. Alcances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.3.6. Hiptesis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.3.7. Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.3.8. Limitaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.4. Breve Historia de los Elementos Finitos. . . . . . . . . . . . . . . . . .
18
1.5. Aplicaciones del Mtodo. . . . . . . . . . . . . . . . . . . . . . . . . .
20
1.5.1. Aplicaciones al Anlisis Estructural. . . . . . . . . . . . . . . .
20
1.5.2. Aplicacin en Mecnica de Fluidos. . . . . . . . . . . . . . . .
20
1.5.3. Objetivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2. MTODO DE ELEMENTOS FINITOS
23
2.1. Deformaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.2. Tensiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.3. Fuerzas nodales equivalentes . . . . . . . . . . . . . . . . . . . . . .
26
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
3. ANLISIS DE VIGAS.
28
3.1. Vigas Sometidas a Fuerza Axial. . . . . . . . . . . . . . . . . . . . . .
28
3.2. Anlisis de Flexin de Vigas. . . . . . . . . . . . . . . . . . . . . . . .
34
3.2.1. Teora de Flexin de Viga de Euler y Bernoulli. . . . . . . . . .
34
3.2.2. Discretizacin de elementos finitos de dos nodos. . . . . . . . .
36
3.2.3. Matriz de Rigidez Viga Bernoulli. . . . . . . . . . . . . . . . . .
40
3.2.4. Teora de Flexin de Viga de Timoshenko . . . . . . . . . . . .
42
3.2.5. Elementos finitos para flexin de vigas de Timoshenko.
. . . .
44
3.2.6. Matriz de Rigidez Total V.Timoshenko y Efecto de Bloqueo. . .
46
3.3. Programacin para Vigas hecho en Python. . . . . . . . . . . . . . . .
51
3.3.1. Que es Python?. . . . . . . . . . . . . . . . . . . . . . . . . . .
51
3.3.2. Libreras Principales de python. . . . . . . . . . . . . . . . . .
53
3.3.3. Programa hecho en python . . . . . . . . . . . . . . . . . . . .
54
4. PROBLEMAS DE ELASTICIDAD BIDIMENSIONAL.
63
4.1. Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.2. Teoria de la Elasticidad Bidimensional. . . . . . . . . . . . . . . . . . .
65
4.2.1. Campo de Desplazamientos. . . . . . . . . . . . . . . . . . . .
65
4.2.2. Campo de Deformaciones. . . . . . . . . . . . . . . . . . . . .
66
4.2.3. Campo de Tensiones. . . . . . . . . . . . . . . . . . . . . . . .
67
4.2.4. Relacin Tensin - Deformacin. . . . . . . . . . . . . . . . . .
67
4.2.5. Formulacin de Elementos Finitos.Elemento de tres Nodos. . .
71
4.2.6. Discretizacin del Campo de Desplazamiento. . . . . . . . . .
72
4.2.7. Discretizacin del campo de deformaciones.
. . . . . . . . . .
76
4.2.8. Discretizacin del campo de tensiones. . . . . . . . . . . . . .
78
4.2.9. Ecuaciones de Equilibrio de la Discretizacin. . . . . . . . . . .
79
4.3. Otros Elementos Bidimensionales y el Mtodo de Interpolacin de Lagrange. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
4.3.1. Elementos Lineales. . . . . . . . . . . . . . . . . . . . . . . . .
85
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
4.3.2. Interpolacin de alta jerarqua de clase C0 ,Interpolacin Lagrangiana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
4.3.3. Elementos de Transicin. . . . . . . . . . . . . . . . . . . . . . 104
4.3.4. Elementos Triangulares y tetahedricos de clase C 0 . . . . . . . . 106
4.4. Clculo Analtico sobre Elementos Triangulares y Rectangulares de lados rectos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5. SLIDOS DE REVOLUCIN.
114
5.1. Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.2. Formulacin Bsica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.2.1. Campo de Desplazamiento.
. . . . . . . . . . . . . . . . . . . 115
5.2.2. Campo de Deformaciones. . . . . . . . . . . . . . . . . . . . . 115
5.2.3. Campos de Tensiones. . . . . . . . . . . . . . . . . . . . . . . 116
5.2.4. Ecuacin Constitutiva. . . . . . . . . . . . . . . . . . . . . . . . 116
5.2.5. Expresin del Principio de los Trabajos Virtuales. . . . . . . . . 117
5.3. Formulacin de Elementos Finitos. . . . . . . . . . . . . . . . . . . . . 119
5.3.1. Discretizacin del campo de desplazamientos. . . . . . . . . . 119
5.3.2. Discretizacin del campo de deformaciones y tensiones. . . . . 120
5.3.3. Matriz de Rigidez del Elemento. . . . . . . . . . . . . . . . . . 121
5.3.4. Vectores de fuerzas nodales equivalentes.
. . . . . . . . . . . 122
6. Metodologa de Estudio.
124
7. Ejemplos y Problemas de Elementos Finitos.
127
7.1. Vigas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.1.1. Problema N01: . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.2. Prticos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.2.1. Problema N02. . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8. Programacin general del Femax.
139
8.1. Caractersticas del Programa Femax. . . . . . . . . . . . . . . . . . . 139
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
8.1.1. Puesta de Datos. . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.1.2. Matriz de Rigidez. . . . . . . . . . . . . . . . . . . . . . . . . . 156
8.1.3. Clculo de Deformaciones. . . . . . . . . . . . . . . . . . . . . 163
8.1.4. Clculo de Fuerzas Internas. . . . . . . . . . . . . . . . . . . . 167
8.1.5. Grficos y Tablas de Resultados. . . . . . . . . . . . . . . . . . 170
9. Conclusiones y Recomendaciones.
180
9.1. Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
9.2. Recomendaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
10. Codigo Fuente del Programa Femax.
183
11. Figuras y Otros.
211
ndice de figuras
2.1. Anlisis de un sistema continuo. . . . . . . . . . . . . . . . . . . . . .
24
2.2. Estado general de Esfuerzos . . . . . . . . . . . . . . . . . . . . . . .
25
3.1. funciones de forma de viga C0 . . . . . . . . . . . . . . . . . . . . . .
29
3.2. funciones de forma de viga C0 . . . . . . . . . . . . . . . . . . . . . .
31
3.3. funciones del Sistema Natural de tres nodos. . . . . . . . . . . . . . .
32
3.4. Viga Convencional Euler-Bernulli . . . . . . . . . . . . . . . . . . . . .
35
3.5. Funciones de forma N1 y N1 . . . . . . . . . . . . . . . . . . . . . . .
37
3.6. Funciones de forma N2 y N2 . . . . . . . . . . . . . . . . . . . . . . .
37
3.7. Viga con giro Adicional . . . . . . . . . . . . . . . . . . . . . . . . .
43
3.8. Anlisis de Vigas tanto en Momento como en Cortante. . . . . . . . .
44
3.9. Anlisis de Viga en Voladizo V.Timoshenko. . . . . . . . . . . . . . . .
49
3.10.Una de las libreras de python. . . . . . . . . . . . . . . . . . . . . . .
51
3.11.Smbolo de Numpy . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
4.1. Elementos en Tensin Plana y Deformacin Plana. . . . . . . . . . . .
64
4.2. Tensin Plana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
66
4.3. Material Orttropo con direcciones principales de ortotropa x y y
. .
71
4.4. Discretizacin de una Estructura con Elementos Triangulares. . . . . .
73
4.5. Elemento discretizado en forma Triangular. . . . . . . . . . . . . . . .
75
4.6. Funciones de forma del elemento triangular de tres nodos. . . . . . . .
77
4.7. Fuerza Sobre un elemento triangulo de tres nodos . . . . . . . . . . .
79
4.8. Interpolacin de Coordenadas . . . . . . . . . . . . . . . . . . . . . .
82
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
4.9. Espacios Triangular y Rectangular . . . . . . . . . . . . . . . . . . . .
83
4.10.Mapeo entre los puntos del espacio Natural y el Espacio Cartesiano .
83
4.11.Mapeo del espacio natural al espacio real para un elemento lineal unidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
85
4.12.Funciones de forma para un elemento lineal Unidimensional. . . . . .
87
4.13.Elemento bilineal de cuatro nodos. . . . . . . . . . . . . . . . . . . . .
90
4.14.Mapeo del espacio natural bidimensional al espacio cartesiano real.
90
4.15.Elemento Unidimensional de dos nodos. . . . . . . . . . . . . . . . . .
94
4.16.Elemento Unidimensional de tres nodos.
95
. . . . . . . . . . . . . . . .
4.17.Funciones de Forma Cuadrtica Lagrangiana.
. . . . . . . . . . . . .
96
4.18.Elemento bidimensional de cuatro nodos. . . . . . . . . . . . . . . . .
97
4.19.Discretizacin del elemento bidimensional de cuatro nodos N1 . . . . .
99
4.20.Discretizacin del elemento bidimensional de cuatro nodos N2 . . . . . 100
4.21.Discretizacin del elemento bidimensional de cuatro nodos N3 . . . . . 101
4.22.Discretizacin del elemento bidimensional de cuatro nodos N4 . . . . . 101
4.23.Elemento Bidimensional de nueve nodos. . . . . . . . . . . . . . . . . 102
4.24.Elementos de Discretizacin lineal y bidimensional. . . . . . . . . . . . 103
4.25.Transicin de Malla Cuadrtica. . . . . . . . . . . . . . . . . . . . . . 104
4.26.Elemento de transicin lineal cuadrtico.
. . . . . . . . . . . . . . . . 105
4.27.Elemento Triangular de tres nodos definido en coordenadas triangulares.107
4.28.Patrn para generar elementos de alta jerarqua en coordenadas triangulares. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.29.Elemento Triangular de 6 nodos. . . . . . . . . . . . . . . . . . . . . . 110
4.30.Coordenadas x,y para el clculo analtico de las integrales de elementos triangulares y rectangulares. . . . . . . . . . . . . . . . . . . . . . 112
5.1. Slido de Revolucin. . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
5.2. Tensiones actuando sobre un elemento diferencial de un solido de revolucin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.3. Elemento slido de Revolucin triangular de tres nodos. . . . . . . . . 119
10
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
6.1. Esquema de Investigacin. . . . . . . . . . . . . . . . . . . . . . . . . 125
7.1. Primer Problema para uso del Programa Femax. . . . . . . . . . . . . 127
7.2. Puesta de Datos de Materiales.
. . . . . . . . . . . . . . . . . . . . . 128
7.3. puesta de datos total del esquema a prueba. . . . . . . . . . . . . . . 128
7.4. Puesta de datos en Sap 2000 V14. . . . . . . . . . . . . . . . . . . . . 129
7.5. Matriz de Rigidez obtenida por Femax.
. . . . . . . . . . . . . . . . . 130
7.6. Comparacin de Resultados de Desplazamientos. . . . . . . . . . . . 131
7.7. Comparacin de Resultado de Fuerzas Int. . . . . . . . . . . . . . . . 132
7.8. Comparacin de Grficos del Femax con Sap 2000 V14. . . . . . . . . 133
7.9. Esquema del Problema N02. . . . . . . . . . . . . . . . . . . . . . . . 134
7.10.Puesta de Datos en Sap 2000 V14. . . . . . . . . . . . . . . . . . . . 135
7.11.Puesta de Datos en Femax 1.01 . . . . . . . . . . . . . . . . . . . . . 135
7.12.Comparacin de los desplazamientos en Femax y Sap 2000 V14. . . . 136
7.13.Matriz de Rigidez General del Esquema.
. . . . . . . . . . . . . . . . 136
7.14.Comparacin de Fuerzas Internas del Femax y el Sap 2000 V14. . . . 137
7.15.Comparacin Grfica del Sap 2000 V14 y el Femax. . . . . . . . . . . 137
8.1. Diagrama de flujo del programa Femax. . . . . . . . . . . . . . . . . . 141
8.2. Entorno Grfico del Femax y su funcin de Grilla y su resultado . . . . 144
8.3. Descripcin de trazo de Barras en Femax. . . . . . . . . . . . . . . . . 146
8.4. Trazo de las barras en el Programa Femax. . . . . . . . . . . . . . . . 147
8.5. Subrutina de Materiales del programa Femax . . . . . . . . . . . . . . 151
8.6. Apoyo Fijo y sus propiedades de contorno. . . . . . . . . . . . . . . . 152
8.7. Apoyo Empotrado y sus propiedades de contorno. . . . . . . . . . . . 152
8.8. Apoyo Mvil y sus propiedades de contorno. . . . . . . . . . . . . . . 152
8.9. Apoyos en el cuadro de dilogo del Femax. . . . . . . . . . . . . . . . 156
8.10.Marco de Referencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
8.11.Procedimiento del ensamblaje global por medio del mtodo i . . . . . 158
8.12.Tabla de Resultado de la Matriz de Rigidez Total Femax. . . . . . . . . 164
11
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
8.13.Generacin de tabla de Resultados de la tabla de las deformadas Femax.167
8.14.Tabla de Resultados para el clculo de Fuerzas Internas del programa
Femax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
8.15.Grfica de Resultados del Anlisis del Femax de ui ,i ,Mi ,Vi . . . . . . . 178
11.1.Interaccin suelo Estructura. . . . . . . . . . . . . . . . . . . . . . . . 211
11.2.Aplicaciones del FEM(Finite Element Method.) . . . . . . . . . . . . . 212
11.3.Mecnica de Fluidos FEM(Finite Element Method) . . . . . . . . . . . 212
11.4.Idealizacin de un sistema de Fluidos. . . . . . . . . . . . . . . . . . . 213
11.5.Puente Idealizado con Elementos Finitos. . . . . . . . . . . . . . . . . 213
12
ndice de cuadros
3.1. Valores por cada caso de discretizacin de la Barra. . . . . . . . . . .
36
4.1. Relacin entre nodos de los elementos lineales y sus coordenadas
naturales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
4.2. Relacin de los nodos del elemento bilineal y sus coordenadas naturales. 91
4.3. Ordenamiento de elementos en dos dimensiones. . . . . . . . . . . .
98
4.4. Tabla nodal del problema de nueve nodos. . . . . . . . . . . . . . . . 102
7.1. Matriz de Rigidez General hallada por el programa Femax.
. . . . . . 129
7.2. Matriz simplificada copiada del Femax. . . . . . . . . . . . . . . . . . 130
7.3. Tabla de Comparacin del Clculo de los Desplazamientos. . . . . . . 131
7.4. Comparacin de Resultados de Fuerzas Internas de Sap 2000 V14 y
Femax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.5. Tabla de comparacin de las Deformaciones Sap y Femax. . . . . . . 134
7.6. Tabla de Comparaciones de Clculo de Reacciones del esquema.
13
. . 136
Planteamiento del Problema.
14
Captulo 1
Problema de Investigacin.
1.1.
Ubicacin.
La investigacin por tener carcter terico no se menciona el lugar de la investigacin,pero por motivos de formalismos,se propondr el sitio de estudios a la Universidad Nacional de Cajamarca.
1.2.
Poblacin.
No se menciona por el carcter terico de la tesis.
1.3.
1.3.1.
Introduccin y Planteamiento del Problema.
Planteamiento del Problema.
Aplicar el mtodo de elementos finitos al campo del anlisis estructural con la
finalidad de disear un software para el clculo de estructuras planas;as como el
aprendizaje del mtodo para sistemas estructurales como vigas-prticos, placas y
slidos de revolucin.
15
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
1.3.2.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Formulacin del Problema.
En que medida se ajusta el mtodo de elementos finitos al estudio del anlisis
estructural,y por que los software comerciales trabajan con dicho mtodo?
1.3.3.
Elementos Continuos y Discretos.
Las limitaciones de la mente humana son tales que no pueden captar el comportamiento que el complejo mundo que lo rodea en una sola operacin global.Por
ello,una forma natural de proceder de ingenieros consiste en separar los sistemas en
sus componentes individuales,o Elementos,cuyo comportamiento pueden conocerse sin dificultad,y a continuacin reconstruir el sistema original para estudiarlo a partir
de dichos componentes.
En muchos casos se obtiene un modelo adecuado usando un numero finito de componentes bien definidos.A tales problemas los denominaremos discretos. En otros,las
subdivisin prosigue indefinidamente y el problema solo puede definirse haciendo uso
de la ficcin matemtica infinitesimal.
Ello nos conduce a ecuaciones diferenciales o expresiones equivalentes con un numero infinito de elementos implicados. a tales sistemas los llamaremos continuos.
Su campo de aplicacin de este mtodo es muy amplio,y en consecuencia es una
herramienta importante en las nuevas formulas de analizar y simular fenmenos estructurales,as como tambin en el campo de la hidrulica y la geotcnia. [1, pag.4]
1
1.3.4.
Justificacin.
Los avances tecnolgicos obligan el conocimiento cabal de los mtodos ms
precisos para el clculo en la ingeniera, donde el error cada da se vuelve
1
[1]Prez Villar Luis Alberto,Tesis:Anlisis de Estructuras por el Mtodo de Elementos Finitos
A.Computadora
16
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
mnimo por lo tanto es necesario el conocimiento analtico y computacional de
teoras de clculo ms precisas y exactas.
Difundir el uso del mtodo de los elementos finitos.
1.3.5.
Alcances.
Al ser una tesis de carcter terico a lo que queremos llegar es primero, al conocimiento formal del mtodo,as como demostrar la fiabilidad del mtodo programado en
la computadora y tratar de demostrar de por que los programas comerciales trabajan
con el mtodo de elementos finitos.
1.3.6.
Hiptesis.
Se comprobar que el mtodo de elementos finitos es un mtodo fiable para el
anlisis y clculo de elementos estructurales,por eso es que los software comerciales
trabajan con dicho mtodo.
1.3.7.
Variables.
Las variables de la investigacin son muchas y seria muy apresurado al decidir
que variable es mas importante o cual seria las variables principales de la investigacin por lo tanto este item queda para observarse en el marco terico de la tesis.
1.3.8.
Limitaciones.
El programa femax de clculo de elementos planos, tiene como limitacin el
clculo de elementos como placas y slidos de revolucin las cuales sern
resueltos en forma aparte por medio scripts generados en el lenguaje de programacin python.
17
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
el programa femax tiene como problema el sistema de instalacin ya que su ejecucin cuenta con libreras especiales la cual complica el sistema de instalado
o de generacin de un archivo.exe.
1.4.
Breve Historia de los Elementos Finitos.
Los Conceptos de discretizacin numrica para resolver problemas de Ciencia e
ingeniera son la base para la formulacin del mtodo de elemento finito.La aproximacin geomtrica mas antigua lleva a las pirmides egipcias de 5000 aos.Por otro
lado la aproximacin numrica podra registrarse histricamente en China,Egipto y
Grecia.
Los registros muestran que los chinos calcularon el valor aproximado de en el
primer siglo de nuestra era,con un valor de 3.1547 siendo usado para calcular el volumen de un cilindro.
En el segundo siglo E.C el astrnomo Chang Heng aproximo el valor de como
3.1466
142
,en
45
la Dinasta oriental de Jihn(265-317 E.C) en su comentario de matem-
ticas uso un polgono regular inscrito en una circunferencia para poder aproximar la
cual hallo un valor de 3.1416 (3927/1250);es interesante notar que el uso un polgono
de 3072 lados,es decir elementos finitos. De acuerdo con el manuscrito Ahmes, se
muestra que para 1500 A.C. , los Egipcios usaban como valor de = 3,1416. Un
papiro de tiempos mas tempranos, ahora en Mosc, indica que los egipcios usaron
la frmula para el volumen de una pirmide y el rea de un crculo de manera aproximada en 1800 A. C.. Arqumedes uso el concepto de elementos finitos para calcular
volmenes.
En el contexto estructural, las soluciones tanto en elasticidad como en anlisis es-
18
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
tructural tuvieron un inicio del Mtodo del Elemento Finito con Timoshenko, pero si
se considera que el anlisis de marcos establece el inicio del mtodo del Elemento
Finito, entonces los pioneros fueron Castigliano, Mhor y Maxwell, entre otros, en el
periodo 1850-1875.
En 1915, Maney de los Estados Unidos de Norteamrica, present el mtodo
pendiente-deformacin, expresando los momentos en trminos de desplazamientos
lineales y angulares en los nodos de la estructura, lo cual es una de las formulaciones para plantear el mtodo de las rigideces y un desarrollo similar, fue planteado
por Ostenfeld en Dinamarca. En el ao 1929, Hardy Cross hizo pblico un mtodo
para analizar marcos basado en distribuciones angulares, el cual se utiliz por los
siguientes 35 aos.
En forma paralela a los primeros trabajos sobre anlisis de estructuras reticulares,
se resolvieron problemas de mecnica del medio continuo usando una analoga con
estructuras formadas por barras diagonales para generar mallas con elementos triangulares. A principios de los aos cuarenta Courant propuso funciones de interpolacin
polinomiales por secciones para formular sub regiones triangulares como un caso especial del mtodo variacional de Rayleigh-Ritz, que obtiene soluciones aproximadas.
Actualmente, el mtodo del elemento finito es utilizado con la ayuda de las computadoras, lo cual ha contribuido a su desarrollo al mismo ritmo que las computadoras.
Las publicaciones clsicas por Argyris y Kelsey a mediados de los 50-as , hicieron
surgir los conceptos de anlisis de marcos discretizando no solo en nodos sino adems en puntos intermedios de las barras y anlisis de un continuo, lo que marc un
crecimiento explosivo en el mtodo del elemento finito.
Basndose en el planteamiento esttico del elemento finito, se han ampliado las
19
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
aplicaciones que incluyen diversos efectos fsicos y vibraciones en el Anlisis dinmico, pandeo y post-pandeo, no linealidades en la geometra y en el material,
efectos trmicos, interaccin entre fluidos y estructuras, aero elasticidad, interaccin
acstica-estructura, teora de la fractura, estructuras laminadas, propagacin de oleaje, dinmica estructural, respuesta dinmica aleatoria, y muchas ms aplicaciones.
Como una consecuencia de tantos campos de estudio, el uso de los programas de
computadora orientados a cada caso, se han convertido en una prctica en los sitios
involucrados en el anlisis estructural. [1, pag.5]
1.5.
Aplicaciones del Mtodo.
Existen gran nmero de estructuras que su paso de revisin tanto como post y
pre proceso de diseo,son sometidos a rigurosos procesos de evaluacin tales como
para verificacin de cortantes y flectores y saber si el diseo dado esta correcto.
1.5.1.
Aplicaciones al Anlisis Estructural.
En programas como el sap el staad pro tanto en el anlisis de Int-estructuraestructura y anlisis de suelo-estructura como el safe o el plaxis que son de uso para
el clculo por elementos finitos.
1.5.2.
Aplicacin en Mecnica de Fluidos.
El mtodo de elementos finitos tambin puede ser usado en el anlisis de mecnica de fluidos libreras en python como ECOASTER o el Fenics o programas como
Abaqus,Nastram nos pueden dar una idea de como este elemento fsico se mueve
e interacciona con el mundo aplicando soluciones particulares a la formulacin de
de la ecuacin general de los fluidos Navier y Stokes,idealizaciones de presas as
como simulaciones de comportamiento de las turbulencias de los fluidos en turbinas
hidrulicas.
20
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
1.5.3.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Objetivos.
Objetivos Generales.
Anlisis Estructural por el mtodo de elementos finitos asistido por computadora(VigasPrticos,Placas,Slidos de Revolucin).
Objetivos Especficos.
Crear un pequeo software en lenguaje de programacin python,as como la
comprobacin de los resultados obtenidos con programas comerciales en este
caso el sap 2000 v14.
21
MARCO TERICO
22
Captulo 2
MTODO DE ELEMENTOS FINITOS
Las recetas para deducir las caractersticas de un elemento finito de un continuo,
sern presentadas bajo una forma matemtica ms detallada. Es conveniente obtener los resultados de una forma general aplicable a cualquier situacin, pero para
evitar la introduccin de conceptos ms complicados se ilustraran las expresiones
generales con un ejemplo. [2, Pag.21]
a1
X
a2
u = N a
Ni xai = [N1 , N2 . . . Nn ]
..
.
i
(2.1)
Un elemento tpico e, se define por sus nodosi, j, m etc y por su contorno formado por lneas rectas. Aproximemos los desplazamientos u de cualquier punto del
elemento mediante un vector u, como en la formula anterior. [2, Pag.22]
En el caso particular de tensin plana.
u(x, y)
u=
v(x, y)
(2.2)
representa los movimientos horizontales y verticales de un punto cualquiera del elemento.
u
i
ai =
v
i
23
(2.3)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 2.1: Anlisis de un sistema continuo.
Los correspondientes desplazamientos de un nodo i.
Las funciones Ni , Nj , Nm han de escogerse de manera que al sustituir de la ecuacin,las coordenadas de los nodos se obtengan los correspondientes desplazamientos nodales. [2, pag.24] 1
2.1.
Deformaciones.
Una vez conocidos los desplazamientos para todos los puntos del elemento,pueden
determinarse las deformaciones en cualquier punto.stas darn siempre resultado en
relacin que podr escribirse como sigue en forma matricial.
= Su
(2.4)
= Ba
(2.5)
B = SN
(2.6)
Donde S es un operador lineal apropiado en los casos de la tensin plana las deformaciones se expresan en funcin de los desplazamientos mediante las conocidas
1
Bibliogrfica [2] O.CZienkiewichz-RTaylor,Mtodo de Elementos Finitos(Formulacin Bsi-
ca,Problemas Lineales).
24
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 2.2: Estado general de Esfuerzos
relaciones que definen al operador S .
x
x
=
= 0
y
(2.7)
determinadas ya las funciones de forma es fcil obtener la matriz B .
2.2.
Tensiones.
Conociendo el contorno del material o elemento puede estar sujeto a deformaciones iniciales,tales como las debidas a cambios de temperatura etc.Debern diferenciarse entre Esfuerzos iniciales y Esfuerzos 0 que muy bien podran medirse,pero
25
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
cuya prediccin seria imposible sin un conocimiento completo de la historia del material.estas tensiones pueden sencillamente aadirse a las ecuaciones generales asumiendo un comportamiento elstico lineal. [3, Pag 27]
x
y
xy
2.3.
Ev y
1
= Ev
Ev x
E y
0
G xy
1
E x
i = D( 0 ) + 0
x
i =
y
xy
Ev 0
x
1
y
0
E
xy
0 G
(2.8)
(2.9)
(2.10)
Fuerzas nodales equivalentes
Son fuerzas que estn en la misma direccin de los desplazamientos de posicin
ai correspondientemente y deben ordenarse en direccin apropiada.
Las fuerzas distribuidas b son por definicin las que actan por unidad de volumen
en direccin correspondientes a las de desplazamientos u de ese punto. [2, Pag 30]
q1
qe
2
qi =
...
qe
bi =
be
(2.11)
(2.12)
Para mejor entendimiento se debe dar desplazamientos arbitrarios o virtuales a los
nodos para darle mas sentido fsico. e igualando el trabajo exterior con el interior.
26
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Z Z Z
Z
(i )dV +
Z Z Z
e T
(ub)dV =
((u)Xi )
(2.13)
([ae ]T (NiT b)dV )) = [ae ]T qi
(2.14)
K i ai + f i = q i
Z
Ki = (B T DB)dV
VZ
fi = (N T b)dV
(2.15)
([a ] B DBa)dV ) +
V
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
[2]
27
(2.16)
(2.17)
Captulo 3
ANLISIS DE VIGAS.
El anlisis de vigas para el estudio de elementos finitos,se hace para entender
en forma elemental las diferentes tipos de discretizaciones a elementos de simples a
complejos,ya que para poder entender los anlisis y clculo de placas y slidos de
revolucin es necesario entender los diferentes items del estudio de vigas tanto sometidas a fuerzas axiales como a flexiones que pueden ser tratadas por teoras muy
conocidas como Bernully y Timoshenko sobre todo entendimiento de condiciones de
contorno para pasar a estadios mas complejos. [2, Pag.22]
3.1.
1
Vigas Sometidas a Fuerza Axial.
Una vez deducida las ecuaciones principales tanto de Tensin como de defor-
macin,rigideces y fuerzas nodales,aplicaremos esas formulas generales al caso de
vigas sometidas a fuerza axial con la cual empezaramos los casos de aplicacin y
anlisis de FEM. [3, Pag.28]
i = E = E
du
dx
(3.1)
con E que es el mdulo de elasticidad de la barra;en la configuracin de equilibrio
de la barra,las tensiones las fuerzas exteriores satisfacen el (Principio de Trabajos
1
Bibliografia 3 H.Partll:Eugenio Oate,Clculo de Estructuras por el Mtodo de Elementos
finitos,MGGraw-Hill,(1998)
28
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Virtuales) y en este caso en particular el principio quedara expresado de la siguiente
manera.
Z Z Z
Z
()dV =
p
X
(ub)dx +
(ui Xi )
EA
0
du
=
dx
(3.2)
i=1
p
ubdx +
0
ui Xi
(3.3)
i=1
Bueno usando la aproximacin de una deformacin ui la cual estara aproximada a
una ecuacin lineal ui = u0 + a1 x,como ya se vio en el capitulo anterior lo que tiene
es hallar las funciones de forma. [3, Pag.28]
ui = N1 a1 + N2 a2
(3.4)
(3.5)
Analizando la generalizacin de las deformaciones de la ecuacin lineal tendramos.
u 1 = a0 + a1 x 1
(3.6)
u 2 = a0 + a1 x 2
(3.7)
Solucionando el problema de los casos tanto de a0 y a1 se propondra:
Figura 3.1: funciones de forma de viga C0
29
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
u1 u2
x1 x2
x2 u 1 x1 u 2
a1 =
x2 x1
a0 =
(3.8)
(3.9)
Para una mejor trabajabilidad de los dos casos hay que tomar en cuenta las secciones
anteriores donde tendramos Ni ...Nm los cuales son las funciones de forma entonces
sabiendo que x2 x1 = le ,se tendra que: [3, pag.28]
x2
x1
dN1
dN2
(
u1 )AE(
u2 )
dx
dx
x2
[N1 u1 + N2 u2 ] = u1 X1 + u2 X2
(3.10)
x1
Agrupando trminos tanto en u1 como 2 u2 ,se obtendra la formula siguiente:
x2
dN1
dN1
(
(EA)
u1 +
dx
dx
x1
Z x2
dN2
dN2
(EA)
u1 +
(
dx
dx
x1
Z x2
dN1
dN2
(EA)
u2 )dx
N1 bdx X1 = 0
dx
dx
x1
Z x2
dN2
dN1
(EA)
u2 )dx
N1 bdx X2 = 0
dx
dx
x1
(3.11)
(3.12)
Acomodando con un arreglo matricial:
x2
x1
1
1
2
1
( dN
(EA) dN
) ( dN
(EA) dN
)
dx
dx
dx
dx
dx
dN2
dN2
dN2
dN1
u
( dx (EA) dx ) ( dx (EA) dx )
2
N
Z x2
1
x1
N
2
bdx =
(3.13)
X
2
con la cual obtenemos que para este caso de vigas sometidas a tension tendramos
las siguientes formulas:
x2
Ki =
x1
1
1
1
2
( dN
(EA) dN
) ( dN
(EA) dN
)
dx
dx
dx
dx
2
2
2
1
( dN
(EA) dN
) ( dN
(EA) dN
)
dx
dx
dx
dx
k i ai + f i = q i
(3.14)
Z x2
(BiT DBi)dx
dx =
x1
(3.15)
fi =
Z x2
1
x1
bdx
(3.16)
En elementos finitos se hablan de coordenadas naturales,pues se analizan en espacio natural la mayora de sus geometras,llevando esta solucin ah espacio natural.
[3, Pag.34]
30
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 3.2: funciones de forma de viga C0
Por interpolacin del polinomio de lagrange se hace un anlisis de interpretacin
geomtrica.
Ni =
( 1 )( 2 ) . . . ( n )
(i 1 )(i 2 ) . . . (i n )
n
Y
j
)
Ni =
(
i
j
i=1
(3.17)
(3.18)
Resolviendo la formulacin por el polinomio de lagrange para el caso de dos nodos
quedara de la siguiente manera.
1
)
2
1+
N2 = (
)
2
N1 = (
(3.19)
(3.20)
Con esto ya tendramos la posibilidad de calcular tanto el Ki y fi de la cual obtendramos los parmetros ya dados en la parte anterior.
x2 x1 = le
2(x x1 )
s =
1
(x2 x1 )
d
2
=
dx
le
31
(3.21)
(3.22)
(3.23)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Se pondra en accin de las funciones Bi y Di con ello empezaramos a formular la
Matriz de Rigidez y de fuerza.
N1 2 N2 2
,
]
le
le
(3.24)
N1 2 N2 2 le
,
])( )d
(AE)[
le
le 2
(3.25)
Bi = [
(
KI =
1
N1
N2
2
le
2
le
KI =
AE 1 1
L
1 1
ble 1
fe =
2 1
(3.26)
(3.27)
Recordando esto seria la formula clsica de matriz de rigidez sometido a tensin
pura.Pero en elementos finitos se puede aproximar ms a la solucin real del sistema
apoyndonos en mas nodos con la cual tendramos mas cercana de la solucin
correcta del problema fsico.Por eso resolveremos el mismo problema solo que esta
vez lo haremos con 3 nodos. [3, Pag.35]
Figura 3.3: funciones del Sistema Natural de tres nodos.
32
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Como vemos en la figura el elemento de tres nodos se analizara de la siguiente
manera:
( 2 )( 3 )
( 1)
=
(1 2 )(1 3 )
2
( 1 )( 3 )
( + 1)
L(2,2) =
=
(2 1 )(2 3 )
2
( 1 )( 2 )
= (1 2 )
L(2,3) =
(3 1 )(3 2 )
L(2,1) =
(3.28)
(3.29)
(3.30)
Ahora resolviendo el caso de i para el caso de solucin del caso general de los tres
nodos:
x = N1 x1 + N2 x2 + N3 x3
dN1
dN2
dN3
dx
=
x1 +
x2 +
x3
d
d
d
d
dx
2 1
2 + 1
=
x1 +
x2 2x3
d
2
2
d
2
=
dx
2(x1 + x2 2x3 ) + le
d
2
=
dx
le
(3.31)
(3.32)
(3.33)
(3.34)
(3.35)
Usando las Ecuaciones EC(2.16) y EC(2.17) de Matriz de Rigidez para poder solucionar la aproximacin en el caso de tres nodos la cual quedara de la siguiente
manera:
( 1 ) 2
Z 1
2 le
(
(2) l2e
1
( + 1 )( 2 )
2 le
2
1 2
le
1 2
AE{( ) , (2) , ( + )( )}( ))d
2 le
le
2 le
2
(3.36)
Como estamos asumiendo que el elemento es isotrpico y es un sistema Elstico
33
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
lineal donde A,E ,son constantes Resolviendo el sistema anterior. [3, Pag.45]
14 16 2
EA
Ke = (
) 16 32 16
6
2 16 14
(3.37)
(1)
fi =
1 2
1
(+1)
2
l
e
b d
2
1
l
e
fi = 4 b
6
1
3.2.
(3.38)
(3.39)
Anlisis de Flexin de Vigas.
EL clsico problemas de vigas puede ser resuelto con el mtodo tradicionales de
Resistencia de materiales sin embargo resolver el problema con el mtodo sofisticado del MEF es de gran inters didctico pues en este particular problema cada nodo
puede ser trabajado con dos variables y puede servir como conceptos primarios para
estudio de placas y lminas.
Entre estos principios y conceptos bsicos existen dos formas planteadas como estudio generalizado de las mismas como son el Estudio de vigas por el mtodo Viga
Bernoulli y el estudio de vigas por el mtodo Viga Timoshenko. [3, Pag.101]
3.2.1.
Teora de Flexin de Viga de Euler y Bernoulli.
Consideremos una viga de longitud L,seccin transversal de rea A y mdulo de
inercia I sobre la cual actan una serie de cargas verticales(flechas) y momentos
contenidos en el plano XZ .
34
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 3.4: Viga Convencional Euler-Bernulli
dw
dx
d2 w
= y = y 2
dx
d2 w
= Ey 2
dx
d2 w
dFi = (Ey 2 )dA
dx
2
dw
dMi = (E 2 )y 2 dA
dx
d2 w
Mi = EI 2
dx
=
35
(3.40)
(3.41)
(3.42)
(3.43)
(3.44)
(3.45)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
3.2.2.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Discretizacin de elementos finitos de dos nodos.
La Incgnita fundamental del problema es la flecha w.No obstante debido a que
en la expresin del trabajo virtual interno aparecen segundas derivadas de w, se
deben usar elementos continuos de clase C1 (la variable y su primera derivada han de
ser continuas) para evitar singularidades en el clculo de las integrales.Esta condicin
se puede interpretar fsicamente de manera sencilla teniendo en cuenta
dw
,coincide
dx
con la pendiente de la deformada del eje de la viga.Por tanto,dicha derivada debe
ser continua para garantizar que la deformada del eje de la viga,de tal manera dicha
derivada debe ser continua para garantizar que la deformada del eje describa una
curva suave.
El elemento mas sencillo de la viga clase C1 es el unidimensional de dos nodos la
cual estara dada de la siguiente manera: [3, Pag.104]
w = 0 + 1 + 2 2 + 3 3
(3.46)
w = 1 + 22 + 33 2
(3.47)
Por las condiciones de contorno la ecuacin de deformacin quedara sintetizada de
la siguiente manera:
dw
dw
w = N1 w1 + N 1 ( )1 + N2 w2 + N 2 ( )2
dx
dx
(3.48)
Analizaremos para cada caso las Condiciones frontera con la cual sacamos el siguiente cuadro comparativo :
H1
H 1
H2
H 2
H3
H 3
H4
H 4
Cuadro 3.1: Valores por cada caso de discretizacin de la Barra.
Empezaremos a resolver las ecuaciones formadas por las condiciones de contorno.
36
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 3.5: Funciones de forma N1 y N1
Figura 3.6: Funciones de forma N2 y N2
37
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
1 1
0 1 2
1 1
1
0 1
2
1 1 1
0 1 2
1 1
1
0 1
2
1 1 1
0 1 2
1 1
1
0 1
2
1 1 1
0 1 2
1 1
1
0 1
2
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
3
1
1
2
0
3
3
1
0
3
1
1
2
0
3
3
1
0
3
1
1
1
2
0
3
3
1
0
0
0
1
0
2
3
3
1
1
38
(3.49)
(3.50)
(3.51)
(3.52)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Resolviendo las ecuaciones matriciales anteriores se obtendrn los coeficientes
de la formula general
Hi = 0 + 1 + 2 2 + 3 3
con la cual tendramos los coeficientes para cada caso de las condiciones de Contorno.
39
(3.53)
(3.54)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
1
2
3
4
1
4
14
1
4
1
4
(3.55)
(3.56)
Con esto obtendramos las funciones de forma para el caso de flexin de Viga Bernoulli.
1
N1 = (2 3 + 3 )
4
1
N1 = (1 2 + 3 )
4
1
N2 = (2 + 3 3 )
4
1
N2 = (1 + 2 + 3 )
4
3.2.3.
(3.57)
(3.58)
(3.59)
(3.60)
Matriz de Rigidez Viga Bernoulli.
Con todos los datos anteriores empezaremos con la propuesta de encontrar la
Matriz de rigidez para el caso de viga Bernoulli, aplicaremos la formula
R
V
BiT DBi dv
con la cual veremos las particularidades flectores y complementaramos con el sistema Axial de fuerzas para completar la matriz de rigidez de una viga.
Para ello haremos uso de la discretizacin de dos nodos para los ejes x en la cual
40
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
estableceramos lo siguiente: [3, Pag.103,104]
x=
1
1+
x1 +
x2
2
2
(3.61)
Empezaremos a resolver el paso de un sistema natural al cartesiano de la siguiente
manera:
dx
le
=
d
2
(3.62)
Reemplazando en la ecuacin(2.16)para lo cual ya hallamos las funciones de forma
y el traslado de un sistema por medio del Jacobiano anterior.
Ki =
1
4
le2
dN1
d
dN1
d
dN2
d
dN2
d
EI{
dN1 dN1 dN2 dN2 le
,
,
,
} d
d d d d 2
(3.63)
12
6le 12 6le
2
2
6l
4l
6l
2l
EI
e
e
e
e
Ki = 2
le
12 6le 12 6le
6le
2le2 6le 4le2
(3.64)
Como se pueden ver es la matriz de rigidez aprendida en el curso de Anlisis Estructural ;estaramos estableciendo ya en este momento la matriz de K(6x6) para lo cual
nos agenciaramos de la Ec(3.26)y tambin la ecuacin EC(3.64).[3, Pag.107]
41
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
AE
le
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
AE
le
0
6 EI
12 EI
le3
le2
0
6 EI
4 EI
le2
le
KT =
AE
l
0
0
e
0
12 EI
6 EI
le3
le2
2 EI
0
6 EI
l2
le
e
12 EI
l3
e
6 EI
l2
6 EI
l2
2 EI
le
AE
le
12 EI
l3
6 EI
l2
6 EI
l2
4 EI
le
(3.65)
Para hallar las fuerzas en las vigas en forma general usaremos la ecuacin general
de Ki ai + f e = q la cual f e es igual a
R
v
NiT qdv que en este caso seria de la siguiente
manera: [3, Pag.107]
3.2.4.
N1
N
1
N
2
qdx =
ql2
ql12
ql2
ql2
12
V1
V2
M
2
(3.66)
Teora de Flexin de Viga de Timoshenko
La teora de vigas de Timoshenko comparte hiptesis de la teora clsica.Por contrapartida,la nueva hiptesis establece que Las secciones planas normales al eje
de viga antes de la deformacin,permanecen planas pero no necesariamente
normales al eje despus de la deformacin.
Esta hiptesis representa una mayor aproximacin a la deformacin real de la seccin
42
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
transversal en vigas de gran canto.A medida que la relacin longitud/canto disminuye,las secciones transversales dejan de conservarse planas despus de la deformacin. [3, Pag.119]
Figura 3.7: Viga con giro Adicional
dw
dx
du
d
x =
= z
dx
dx
dw du
dw
=
+
=
=
dx
dz
dx
=+
xz
(3.67)
(3.68)
(3.69)
Por consiguiente la teora de Timoshenko equivale a considerar el efecto de la deformacin por cortante transversal,coincidiendo la magnitud de dicha deformacin
adicional de la norma los dos esfuerzos tanto de x y xz se relacionan con las
correspondientes deformaciones por: [3, Pag.121]
d
dx
dw
d
xz = G(
)Mi = EI
dx
dx
dw
Qi = GA(
) = GAxz
dx
x = Ex = zE
43
(3.70)
(3.71)
(3.72)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 3.8: Anlisis de Vigas tanto en Momento como en Cortante.
Ahora aplicando el principio de trabajo virtuales pero con la condicin de hacerlo
lineal o constante al elemento cortante de la Viga Timosheko xz = Gxz ,donde
es la cortante de forma o de distorsin A = A.
Z Z Z
Z
(x + xz xz )dV =
qdx +
l
n
X
i=1
X
dw
( )i Mi +
wi Zi
dx
i=1
(3.73)
Ahora simplificando la expresin con los datos anteriores deducidos anteriormente
quedara de la siguiente manera: [3, Pag.123]
Z
[(
l
3.2.5.
d
d
dw
dw
)EI( ) + (
)GA ( )]dx
dx
dx
dx
dx
(3.74)
Elementos finitos para flexin de vigas de Timoshenko.
La flecha de la viga Timoshenko esta en funcin en este caso de y w variables
independientes de continuidad C0 por lo tanto se pueden interpolar por separado
44
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
cada una de ellas por:
w() = N1 ()w1 + N2 ()w2
(3.75)
() = N1 ()1 + N2 ()2
(3.76)
Donde w1 ,1 y w2 ,2 son flechas y giros de los nodos 1 y 2 del elemento.
d
N1 ()
N2 () d
=(
1 +
2 )
dx
dx
dw
d
N1 ()
N2 ()
d
=
=
=(
w1 +
w2 ) N1 1 N2 2
dx
dx
dx
=
xy
(3.77)
(3.78)
Utilizando una formulacin isoparametrica idntica a la empleada para el elemento
d
dx
barra de dos nodos se obtiene que
2
le
las ecuaciones Ec.3.79 y Ec.3.78 pueden
ser escritas de la siguiente manera:
= Bf a
(3.79)
xz = Bc a
(3.80)
2 N1
2 N2
, 0,
]
le
le
2 N1
2 N2
Bc = [
, N1 ,
, N2 ]
le
le
ai = [w1 , 1 , w2 , 2 ]
Bf = [0,
(3.81)
(3.82)
(3.83)
Resolviendo las derivadas de los vectores se tendra:
1
1
Bf = [0, , 0, ]
le
le
1 1 1 1
Bc = [ ,
, ,
]
le
2 le
2
(3.84)
(3.85)
Con las formulas anteriores calcularemos la Matriz de Rigidez general de la Viga
segn teora Timoshenko. para eso volveremos a resolver o simplificar la ecuacin
Ec(3.74) que segn las formulas deducidas en las ecuaciones 3.79 y 3.80 reemplazando en la formula 2.13 o el Principio de Trabajo Virtual.
e T
[a ]
le
[BfT (EI)Bf
BcT (GA)Bc ]dx(ae )
e T
= [a ]
le
45
N (q)dx + [ae ]T qe (3.86)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
tras Simplificacin de la formula queda de la siguiente manera :
[Kfe + Kce ]ae f e = qe
(3.87)
Deduciendo de la Primera parte de la formula anterior quedara:
=
BfT (EI)Bf dx
Z le
Kce =
BcT (GA )Bc dx
Kfe
(3.88)
(3.89)
le
El vector de fuerzas nodales equivalentes debidas a las cargas repartidas q; y
f =
N qdx
(3.90)
N = [N1 , 0, N2 , 0]
(3.91)
le
El vector de Fuerzas nodales de equilibrio que permite ensamblar las contribuciones
de los distintos elementos de la matriz de rigidez y en el vector de las fuerzas globales.
Todas las integrales anteriores pueden transformarse sobre el dominio normalizado
del elemento.As,teniendo en cuenta que dx =
le
d ,las
2
ecuaciones Ec(3.88,3.89,3.90)
se escribiran como: [3, Pag 124-126]
le
BfT (EI)Bf d
2
1
Z 1
le
Kg =
BgT (EI)Bg d
2
1
Z 1
T le
fe =
N
d
2
1
Kf =
3.2.6.
(3.92)
(3.93)
(3.94)
Matriz de Rigidez Total V.Timoshenko y Efecto de Bloqueo.
Como en las anteriores ecuaciones se deduce que solo debe existir un solo punto
de integracin,ya que todos los trminos del integrando de Kf exige un solo punto
de integracin,ya que todos los trminos del integrando son contantes as pues tras
46
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
operar las operaciones obtenemos.
0 0
0 1
EI
Kf = ( )
le
0 0
0 1
0 1
0 0
0 1
(3.95)
Por otra parte la integracin exacta de la matriz de rigidez de cortante precisa dos
puntos de integracin por parecer en el integrando Kc trminos de segundo grado
,obtenindose:
le
2
le
2
le
le2
2
l2e l2e
3
GA
Kc = (
)
l
1 l2e 1 l2e
2
le
le
l2e l3e
2
2
(3.96)
Ahora sumamos las matrices y obtendremos una matriz general para lo cual la matriz quedar de la siguiente manera y hallando a la vez un sistema de voladizo y
resolviendo con el sistema de V.Timoshenko. [3, Pag ]
GA
l
GA
2
GAl
GA
2
( GA
l + EI
) GA
3
l
2
GA
GA
l
GA
2
l
GA
( GA
l EI
) GA
2
3
l
2
GA
EI
( 3 l l )
GA
GA
EI
( 3 l+ l )
GA
2
47
w1
w2
V1
(3.97)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Por las condiciones de contorno tendramos que w1 = 0 y que 1 = 0 con ello
analizaramos las soluciones para la deformacin w2 para su respectiva comparacin
con el sistema V.Bernoulli.
GA
l
GA
2
GA
EI
2
( 3 l+ l )
GA
2
(3.98)
Resolviendo y desarrollando la matriz el problema quedara de la siguiente manera:
+1
2
donde =
12EI
GA l2
( GA
l
3
l2
EI
EI
)
l
l2
EI
l
EI
(3.99)
la flecha o la deformacin vertical estara dada por:
w2 =
l3
l
l3
0
=
(
+
)P
w
P
2
+ 1 GA 3EI
3EI
(3.100)
Analizando el cociente entre la solucin sin cortante y la solucin con cortante, quedara de la siguiente manera:
w2
3(42 + 3)
0 =
42 (2 + 3)
w2
(3.101)
Lgicamente el valor de debera tender a la unidad a medida que o esbeltez
aumente pero vemos que segn lo que hemos sacado es totalmente incorrecto eso
quiere decir que el que la viga de Timoshenko de dos nodos es incapaz de reproducir en el lmite la teora clsica de vigas as a medida que la longitud aumenta
se produce un fenmeno de sobre rigidez curiosamente cuando llega a a tener mayor
importancia hasta llegar ah bloquear la solucin. [3] Para tratar de llegar a una exactitud lgica es visto que se tiene que sub-evaluar es decir integrarlo solo en un solo
48
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 3.9: Anlisis de Viga en Voladizo V.Timoshenko.
punto eliminando = 0 y as tener una solucin que no se distorsione en los limites.
1 1 1
1
, , , ]
le 2 le 2
(3.102)
1 1 1
1 le
GA [ , , , ]) d
le 2 le 2 2
(3.103)
Bc = [
Z 1
(
1
1
le
1
2
1
le
1
2
49
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
de la cual la matriz de rigidez Kc quedara de la siguiente manera es decir la matriz
de integracin en un solo punto: [3]
le
2
GA
Kc = (
)
l
le
2
le
2
le2
4
l2e
le
2
le2
4
le
2
le
2
le2
4
l2e
le2
4
(3.104)
Resolviendo igual que en el sistema anterior quedara de la siguiente manera pues
la matrices de Rigidez y Flexibilidad despus de eliminar los grados de libertad del
empotramiento.
K=
GA
l
GAl
GAl
( GA
l + EI
)
4
l
3
l2
( 1 + l ) 2EI
GA 4EI
F =
l2
l
2EI
( EI
(3.105)
(3.106)
La relacin entre este valor y el exacto para las vigas esbeltas es:
w2
32 + 3
=
(w2)eexacta
42
(3.107)
La variacin de la nueva funcin con se ha representado en la figura Fig3.9
vemos como la solucin anterior si se aproxima a la real ya que la otra solucin
de las ecuaciones anteriores al 0 es pero con este sistema subevaluado
es igual a 0.75.
Pero analizando la anterior solucin vemos que existe un bloqueo ya que al acercarse
a 0 esto tiende al infinito.
50
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
3.3.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Programacin para Vigas hecho en Python.
Deberamos empezar esta seccin con la pregunta del rigor por que en python?,
conociendo otro paquetes de programacin como el Visual Basic,Mathcad,Matlab y
otros, es que si tomamos en cuentas todos los lenguajes anteriores son privativos es
decir si no compras las licencias correspondientes tu script o pequeo programa no
sirve y como funcionan como pre compilacin pues las licencias y todo eso se vuelven prcticamente insostenibles se esta optando por una programacin de software
libres pues esto va acompaado a la lgica y a la moralidad de compartir pues en lo
personal me parece maligno y egosta guardar el conocimiento pues es un derecho
universal de la educacin mundial en ese sentido quiero empezar este bloque diciendo que el mundo necesita una lgica y argumentos diferentes para subsistir sobre
todo en pases con subdesarrollo como el nuestro la cual merece una oportunidad de
cambio no solo moral si no tambin tecnolgico.
Figura 3.10: Una de las libreras de python.
3.3.1.
Que es Python?.
Programa Interpretado y de Script.
Un lenguaje interpretado o de script es aquel que se ejecuta utilizando un programa intermedio llamado intrprete, en lugar de compilar el cdigo a lenguaje mquina que pueda comprender y ejecutar directamente una computadora
(lenguajes compilados).
La ventaja de los lenguajes compilados es que su ejecucin es ms rpida. Sin
51
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
embargo los lenguajes interpretados son ms flexibles y ms potables.
Python tiene, no obstante, muchas de las caractersticas de los lenguajes compilados, por lo que se podra decir que es semi interpretado. En Python, como
en Java y muchos otros lenguajes, el cdigo fuente se traduce a un pseudo
cdigo mquina intermedio llamado bytecode la primera vez que se ejecuta,
generando archivos .pyc o .pyo (bytecode optimizado), que son los que se ejecutarn en sucesivas ocasiones.
Tipado Dinmico.
La caracterstica de tipado dinmico se refiere a que no es necesario declarar
el tipo de dato que va a contener una determinada variable, sino que su tipo se
determinar en tiempo de ejecucin segn el tipo del valor al que se asigne, y
el tipo de esta variable puede cambiar si se le asigna un valor de otro tipo.
Fuertemente Tipado.
No se permite tratar a una variable como si fuera de un tipo distinto al que tiene,
es necesario convertir de forma explcita dicha variable al nuevo tipo previamente. Por ejemplo, si tenemos una variable que contiene un texto (variable de tipo
cadena o string) no podremos tratarla como un nmero . En otros lenguajes el
tipo de la variable cambiara para adaptarse al comportamiento esperado, aunque esto es ms propenso a errores.
Multiplataforma.
El intrprete de Python est disponible en multitud de plataformas (UNIX, Solaris, Linux, DOS, Windows, OS/2, Mac OS, etc.) por lo que si no utilizamos
libreras especficas de cada plataforma nuestro programa podr correr en todos estos sistemas sin grandes cambios.
52
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Orientado a Objetos.
La orientacin a objetos es un paradigma de programacin en el que los conceptos del mundo real relevantes para nuestro problema se trasladan a clases y
objetos en nuestro programa. La ejecucin del programa consiste en una serie
de interacciones entre los objetos.
Python tambin permite la programacin imperativa, programacin funcional y
programacin orientada a aspectos.
3.3.2.
Libreras Principales de python.
Python dispone de una amplia coleccin de libreras, que simplifican nuestra tarea
a la hora de escribir cdigo. El objetivo de este tema es ensear cmo funcionan
algunas de las libreras, para que los usuarios noveles de este lenguaje tengan una
base para utilizar la mayora de las libreras disponibles, que son muchas, adems
de proporcionar unos consejos que, evitarn ms de un dolor de cabeza o fallos
inesperados a la hora de ejecutar un cdigo.
Numpy
NumPy es el paquete fundamental para la computacin cientfica con Python.
Contiene entre otras cosas: un poderoso N-dimensional array de objetos sofisticados (radiodifusin) funciones herramientas para la integracin de cdigo
C / C + + y Fortran cdigo lgebra lineal til, la transformada de Fourier, y la
capacidad de nmeros aleatorios
Adems de sus usos cientficos obvias, NumPy tambin se puede utilizar como un eficiente multi-dimensional contenedor de datos genricos. Arbitrarias
de tipos de datos pueden ser definidos. Esto permite NumPy para integrar y
rpidamente con una amplia variedad de bases de datos.
Numpy est licenciado bajo la licencia BSD , lo que permite su re utilizacin con
pocas restricciones.
53
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 3.11: Smbolo de Numpy
Scipy
Depende directamente de numpy es una librera de calculo numrico sirve para
establecer todo tipo de calculo numrico y potencialmente grande para establecer datos de todo tipo matemtico.
Matplotlib
matplotlib es una de las biblioteca de trazado 2D que produce figuras de calidad
de publicacin,en una variedad de formatos impresos y entornos interactivos,a
travs de plataformas. Matplotlib se puede utilizar en scripts para python, la pitn y la ipython shell, servidores de aplicaciones web.
Matplotlib trata de hacer las cosas fciles . Puede generar grficos, histogramas, espectro de potencia, grficos de barras, errorcharts, diagramas de dispersin, etc, con slo unas pocas lneas de cdigo. [5]
3.3.3.
Programa hecho en python
Con lo dicho anteriormente vamos ah establecer la primera parte del cdigo fuente
del sistema y hacer unos pequeos ejemplos de aplicacin de vigas continuas y esto
compararlo con programas como el sap.
54
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
# ! / usr / bin / python
# PROGRAMA DE VIGAS_SAMAX PRIMERA PARTE DE TESIS
from numpy import *
from scipy import *
from matrix2d import *
from numpy . linalg import *
from scipy . linalg import *
from FForma import *
from Graficos import *
print ( ' PROGRAMA HECHA EN PYTHON PONER LOS DATOS DE
SISTEMAS NODALES [0 , 1 . 00000000 ] ')
n = input ( ' Colocar el Numero de Vigas : ')
nodos = n + 1
Cord = [ ]
for i in range ( nodos ) :
s = input ( ' Colocar las Coordenadas de los nodos : ')
Cord = Cord + [ s ]
Cord1 = array ( Cord )
L=[]
for i in range ( nodos ) :
for j in range ( nodos ) :
if j - i = = 1 :
L = L + [ norm ( Cord1 [ j ] - Cord1 [ i ] ) ]
# COLOCACION DE PROPIEDADES DE LA BARRA O VIGA
Pt = [ ]
for i in range ( n ) :
Pi = input ( ' Colocar las Propiedades [E ,b , h ]: ')
Pt = Pt + [ Pi ]
# COEFICIENTES DE ELASTICIDAD DEL SISTEMA
55
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
E=[]
I=[]
for i in range ( len ( Pt )) :
E = E + [ Pt [ i ] [ 0 ] ]
# ELEMENTOS DE INERCIA DE LOS ELEMENTOS
for i in range ( len ( Pt )) :
I = I + [ Pt [ i ] [ 1 ] * ( Pt [ i ] [ 2 ] * * 3 ) / 12 . 0 ]
# MATRICES DE RIGIDEZ DE LOS ELEMENTOS
K=[]
for i in range ( len ( Pt )) :
s = Matrix ( E [ i ] ,I [ i ] ,L [ i ] )
K = K + [ s . Constructor () ]
# ACOPLAMIENTO DE LA MATRIZ GLOBAL
R1 = range ( n )
R2 = range (1 , n + 1 )
U1 = ()
for i in range ( len ( R1 )) :
for j in range ( len ( R2 )) :
if i = = j :
U1 = U1 + ( R1 [ i ] , R2 [ j ] )
U2 = np . array ( [ U1 [ i ] + 1 for i in range ( len ( U1 )) ] )
s = len ( U1 ) / 2
U3 = np . reshape ( U2 ,( s , 2 ))
U4 = U3 * 2
O=[]
WQ = array ( [ range ( U4 [ i ] [ 0 ] -2 , U4 [ i ] [ 0 ] ) for i in range ( len ( U4 )) ] )
WR = array ( [ range ( U4 [ i ] [ 1 ] -2 , U4 [ i ] [ 1 ] ) for i in range ( len ( U4 )) ] )
56
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
for i in range ( len ( WQ )) :
for j in range ( len ( WQ )) :
if i = = j :
O = O + [ array ( [ WQ [ i ] , WR [ j ] ] ). reshape ( 4 ) ]
U5 = array ( O )
Ord = transpose ( U5 )
""" MATRIZ DE ORDENAMIENTO -----> Ord """
KT = zeros (( 2 * nodos , 2 * nodos ))
# PROCEDIMIENTO DE ENSAMBLAJE DE LA MATRIZ DE RIGIDEZ .
for i in range ( 4 ) :
for j in range ( 4 ) :
for s in range ( len ( K )) :
KT [ Ord [ i ] [ s ] ] [ Ord [ j ] [ s ] ] =
KT [ Ord [ i ] [ s ] ] [ Ord [ j ] [ s ] ] + K [ s ] [ i ] [ j ]
# COLOCAR LOS GRADOS DE LIBERTAD DE LOS NODOS O APOYOS .
M=[]
for i in range ( nodos ) :
u = input ( ' Nodos Empotrados [0 , 0 ] Nodos Fijos [0 , 1 ]
Nodos Libres [1 , 1 ] : ')
M = M + [u]
N = array ( M ). reshape ( 2 * nodos , 1 )
# COLOCAR LAS FUERZAS TANTO EN NODOS COMO EN ELEMENTOS DE RECURRENCIA .
F=[]
y=[]
for i in range ( n ) :
w = input ( ' Colocar el Valor de [ 1 ] fuerza Puntual o
57
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
[ 2 ] Fuerza Dist : ')
if w = = 1 :
""" Deducidos en La Tesis """
q = input ( ' Colocar [ Q_i , Xi ] : ')
Q1 = Forma ( q [ 1 ] ,L [ i ] )
U = [ [ q [ 0 ] * Q1 . N_1 () , q [ 0 ] * Q1 . N_2 () ] ,[ q [ 0 ] * Q1 . N_3 () , q [ 0 ] * Q1 . N_4 () ] ]
y = y + [q]
F = F + U
if w = = 2 :
""" Deducidos en La Tesis """
s = input ( ' Colocar el valor de qi : ')
B = [ [ s * L [ i ] / 2 .0 , s * L [ i ] * * 2 / 12 . 0 ] ,[ s * L [ i ] / 2 .0 , - s * L [ i ] * * 2 / 12 . 0 ] ]
F = F + B
y = y + [ [s , 0 ] ]
FV = array ( y ). reshape (n , 2 )
FI = array ( F )
# MATRIZ DE FUERZAS DE LOS ELEMENTOS
# ------ ------- ------- ------ ------- ------- ------ ------- -----FR = [ ]
for i in range (1 , len ( FI ) -1 , 2 ) :
for j in range (2 , len ( FI ) -1 , 2 ) :
if i ! = 0 :
if j ! = 0 :
if i ! = len ( FI ) - 1 :
if j ! = len ( FI ) - 1 :
if j - i = = 1 :
QW = [ array ( FI [ i ] ) + array ( FI [ j ] ) ]
FR = FR + QW
FU = array ( [ array ( FI [ 0 ] ) ] + FR + [ array ( FI [ len ( FI ) - 1 ] ) ] )
58
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
. reshape ( 2 * nodos , 1 )
# ----- ------ ----- ------ ------ ----- ------ ------ ----- ------ ----# CALCULO DE LA MATRIZ DE RIGIDEZ CORREGIDA .
GDL0 = [ ]
for i in range ( len ( N )) :
if N [ i ] = = 0 :
GDL0 = GDL0 + [ i ]
GDT = array ( GDL0 )
KM1 = delete ( KT , GDT , axis = 0 )
KM2 = delete ( KM1 , GDT , axis = 1 )
FGDL = [ ]
for i in range ( len ( N )) :
if N [ i ] ! = 0 :
FGDL = FGDL + [ FU [ i ] ]
FGDL1 = array ( FGDL ). reshape ( len ( KM2 ) , 1 )
# HALLANDO EL VECTOR DE LOS DESPLAZAMIENTOS
# -------------------------------------------------Desp = dot ( inv ( KM2 ) , FGDL1 )
# --------------------------------------------------# PROCESO DE SEPARACION PROPIEDADES DE VIGAS
UPP = [ ]
for i in range ( len ( M )) :
for j in range ( len ( M )) :
if j - i = = 1 :
UPP = UPP + [ M [ i ] + M [ j ] ]
UPP1 = array ( UPP )
AMY = [ ]
for i in range ( len ( N )) :
59
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
if N [ i ] = = 1 :
AMY = AMY + [ [ i ] ]
AMY1 = array ( AMY )
for i in range ( len ( AMY1 )) :
N [ AMY [ i ] ] = Desp [ i ]
N2 = N . reshape ( len ( N ) /2 , 2 )
POR = [ ]
for i in range ( len ( N2 )) :
for j in range ( len ( N2 )) :
if j - i = = 1 :
POR = POR + [ ( [ N2 [ i ] ] + [ N2 [ j ] ] ) ]
POW = np . array ( POR )
# ----- ------ ----- ------ ------ ----- ------ ------ ----- ------ ----# PARCIALIZAR LOS X [ i ] PARA DE TAL MOTIVO
SACAR LAS GRAFICAS DE LOS ELEMENTOS VIGAS .
X=[]
for i in range ( n ) :
x1 = arange (0 , L [ i ] ,0 . 1 )
X = X + [ x1 ]
Form = [ ]
for i in range ( n ) :
QR = Forma ( X [ i ] ,L [ i ] )
Form = Form + [ QR ]
Resid = [ ]
for i in range ( n ) :
QM = Residuo ( X [ i ] ,L [ i ] , FV [ i ] [ 0 ] ,E [ i ] ,I [ i ] )
Resid = Resid + [ QM ]
DEF = [ ]
60
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
for i in range ( n ) :
QT = Form [ i ] . N_1 () * POW [ i ] [ 0 ] [ 0 ] + Form [ i ] . N_2 () * POW [ i ] [ 0 ] [ 1 ] + Form [ i ]
. N_3 () * POW [ i ] [ 1 ] [ 0 ] + Form [ i ] . N_4 () * POW [ i ] [ 1 ] [ 1 ] + Resid [ i ] . R_1 ()
DEF = DEF + [ QT ]
DEFC = [ ]
for i in range ( n ) :
QE = Form [ i ] . Gr_1 () * POW [ i ] [ 0 ] [ 0 ] + Form [ i ] . Gr_2 () * POW [ i ] [ 0 ] [ 1 ] + Form [ i ]
. Gr_3 () * POW [ i ] [ 1 ] [ 0 ] + Form [ i ] . Gr_4 () * POW [ i ] [ 1 ] [ 1 ] + Resid [ i ] . R_2 ()
DEFC = DEFC + [ QE ]
Mom = [ ]
for i in range ( n ) :
QU = Form [ i ] . M_1 () * POW [ i ] [ 0 ] [ 0 ] + Form [ i ] . M_2 () * POW [ i ] [ 0 ] [ 1 ] + Form [ i ]
. M_3 () * POW [ i ] [ 1 ] [ 0 ] + Form [ i ] . M_4 () * POW [ i ] [ 1 ] [ 1 ] + Resid [ i ] . R_3 ()
Mom = Mom + [ QU ]
Cort = [ ]
for i in range ( n ) :
QV = Form [ i ] . V_1 () * POW [ i ] [ 0 ] [ 0 ] + Form [ i ] . V_2 () * POW [ i ] [ 0 ] [ 1 ] + Form [ i ]
. V_3 () * POW [ i ] [ 1 ] [ 0 ] + Form [ i ] . V_4 () * POW [ i ] [ 1 ] [ 1 ] + Resid [ i ] . R_4 ()
Cort = Cort + [ QV ]
# ----- ------ ----- ------ ------ ----- ------ ------ ----- ------ ----# GRAFICAS _TERMINAREMOS YA EL PRIMER Y SEGUNDO CAPITULO ;)
# ----- ----- ----- ----- ------ ----- ----- ----- ------ ----- ----- ----while True :
p = input ( ' Elegir Viga : ')
i=p-1
DefT . plot ( X [ i ] , DEF [ i ] , ' ro ')
GirT . plot ( X [ i ] ,- DEFC [ i ] , ' ro ')
MomT . plot ( X [ i ] , Mom [ i ] , ' ro ')
CorT . plot ( X [ i ] ,- Cort [ i ] , ' ro ')
plt . show ()
61
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
# --- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---# CREACION DE TABLAS DE RESULTADOS DE LOS ELEMENTOS
# --- ---- ---- ---- --- ---- ---- ---- --- ---- ---- ---- ---- --- ---- ---- ---- --- -
62
Captulo 4
PROBLEMAS DE ELASTICIDAD
BIDIMENSIONAL.
4.1.
Introduccin.
En este capitulo se presenta la aplicacin del mtodo de los elementos finitos al
anlisis de estructuras en las que se cumplen las hiptesis de la elasticidad bidimensional(tensin o deformacin plana).la mayor parte de los conceptos que aparecern
a lo largo del capitulo sern utilizados en el resto de la tesis al tratar otros problemas de estructuras en dos, e incluso tres dimensiones.Por consiguiente,este capitulo
puede considerarse, en gran parte,como introductorio a la metodologa general de
aplicacin del mtodo de los elementos finitos a estructuras bi y tridimensionales. [2,
Pag 47]
Existe una gran variedad de estructuras de inters prctico dentro de la ingeniera en
las que se puede hacer uso de las hiptesis de la elasticidad bidimensional.Dichas
estructuras se caracterizan por tener una forma aproximada de prisma recto.No obstante,segn la proporcin que guarden las dimensiones de dicho prisma,y la disposicin de las cargas,pueden clasificarse en uno de los tipos siguientes:
Problemas de Tensin Plana.
Se dice que una estructura prismtica esta en estado de tension plana si una
63
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.1: Elementos en Tensin Plana y Deformacin Plana.
de sus dimensiones (espesor) es mucho menor que las otras dos, y sobre ellas
actan nicamente cargas contenidas en su plano medio.Entre los problemas
de estructuras que se incluyen dentro de esta categora podemos citar los de
anlisis de vigas de gran canto,placas con cargas en su plano,presas contrafuertes,etc.
Problemas de Deformacin Plana.
Una estructura prismtica est en estado de deformacin plana si una de sus
dimensiones (Longitud) es mucho mayor que las otras dos y sobre ella actan
nicamente cargas uniformemente distribuidas a lo largo de toda su longitud
y contenidas en planos ortogonales al eje que une los centros de gravedad
de sus distintas secciones transversales, dentro de esta clasificacin se pueden incluir entre otros,los problemas de muro de contencin,presas de gravedad,tuberas bajo presin interior y diversos problemas de ingeniera del terreno
(tneles,anlisis de tensiones bajo zapatas,etc) una de las principales ventajas
de la teora bidimensional es que permite el estudio de los problemas de tensin
64
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
y deformacin plana. [3]
4.2.
Teoria de la Elasticidad Bidimensional.
Presentemos los conceptos que hay que conocer de la teora de elasticidad
bidimensional para la utilizacin del mtodo de elementos finitos.
4.2.1.
Campo de Desplazamientos.
Las caractersticas geomtricas y de cargas de una estructura en estado de
tensin o deformacin plana permiten establecer la hiptesis de que todas las
secciones perpendiculares al eje prismtico z se deforman en su plano y de manera idntica .Por consiguiente,basta con conocer el comportamiento de cualquiera de dichas secciones.As ,consideramos una | genrica contenida en el
plano x y de cualquiera de las figuras().El campo de desplazamientos de la
seccin esta perfectamente definido si se conocen los desplazamientos en las
direcciones x y y de todos sus puntos.El vector de desplazamientos de un punto
se define,por tanto,como [2, Pag 47 ]
u(x, y) =
u(x, y)
v(x, y)
(4.1)
Donde u(x, y) y v(x, y) son los desplazamientos del punto en direcciones de
los ejes x , y ,respectivamente.
65
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.2: Tensin Plana
4.2.2.
Campo de Deformaciones.
Analizando el campo de desplazamientos y haciendo uso de la teora general
de elasticidad .
u
x
v
y =
y
v u
+
xy =
x y
xz = yz = 0
x =
(4.2)
(4.3)
(4.4)
(4.5)
Con respecto a la deformacin longitudinal z hay que sealar que en el caso
de tensin plana dicha deformacin no es nula ,pero se supone que lo es la
tensin z .Por consiguiente,en ninguno de los dos casos hay que considerar la
deformacin z ya que no interviene en las ecuaciones de trabajo de deformacin al ser producto z z nulo.As,pues el vector de deformacin significativas
de un punto se define para tensin y deformacin plana como [4, Pag.134]
= [x , y , xy ]T
66
(4.6)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
4.2.3.
Campo de Tensiones.
Se deduce en las ecuaciones Ec.(4.2)... Ec(4.5) que las tensiones tangenciales xz y yz son nulas.Por otra parte por los mismos motivos explicados en el
apartado anterior para la deformacin z ,la tensin z no trabaja y el vector de
tensiones significativas es [3, Pag.158]
= [x , y , xy ]T
4.2.4.
(4.7)
Relacin Tensin - Deformacin.
La relacin entre tensiones y deformaciones se deduce de la ecuacin constitutiva de la elasticidad tridimensional,con la hiptesis simplificativas descritas anteriormente(z = 0 para tensin plana,z = 0 para deformacin plana y
xz = yz = 0 en ambos casos).Tras realizar las correspondientes operaciones
puede encontrarse la siguiente relacin matricial entre tensiones y deformaciones
= D
(4.8)
En la ecuacin Ec(4.8) D es la matriz de constantes elsticas (o matriz constitutiva)
d11 d12
D = d21 d22 0
0
0 d33
1
(4.9)
[4] Sergio Gallegos Cazares,Anlisis de Slidos y Estructural mediante el mtodo de elemen-
tos finitos
67
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Del teorema de Maxwell-Betti se deduce que D es siempre simtrica,y d12 =
d21 .Para elasticidad isotropa se tiene:
Tensin Plana
d11 = d22 =
Deformacin Plana
E
1v 2
d11 = d22 =
E(1v)
(1+v)(12v)
(4.10)
d12 = d21 =
d33 =
vE
1v 2
E
v
d12 = d21 = ( 1v
2 )( 1v )
E
2(1+v)
d33 =
E
2(1+v)
=G
Siendo E el mdulo de elasticidad y v es el coeficiente de Poisson. Para un
material orttropo con direcciones principales de ortotropa segn x e y,la matriz
D tiene la expresin siguiente:
Tensin Plana D =
1
1vxy vyx
vx
vyx Ey
vxy Ex
Ey
(1 vxy vyx )Gxy
(4.11)
Tensin Plana
aEx bEx
0
1
D = adbc
cEy dEy
0
0
0 (ad bc)Gxy
68
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Donde los diferentes factores estaran dados por:
1
1 + vyx 1 + vxy
=
+
Gxy
Ex
Ey
a = 1 vyz vzy
b = vxy + vxz vzy
c = vyx + vyz vzx
d = 1 vxz vzx
(4.12)
(4.13)
puesto que D debe ser simtrica se cumple
Ey
vxy
E
b
=
(Tensin Plana) y y = (Deformacin Plana)
Ex
vyx
Ex
c
0
(4.14)
Si las direcciones principales de ortotropa x ,y estn inclinadas un ngulo
con respecto a los ejes globales de la estructura x e y la matriz constitutiva se
obtiene como sigue.Las deformaciones en eje x y y,se expresan en funcin de
sus valores en ejes x,y,por: [3, Pag 160]
(P U )u = x
(P U )uort = y
xcos() + ysen() = x
xsen() + ycos() = y
(4.15)
(4.16)
(4.17)
(4.18)
Con esto podemos analizar tambin los desplazamientos en u y en v con lo
cual tendramos lo siguiente: [6]
0
u = ucos() + vsen()
(4.19)
v = ucos() + vcos()
(4.20)
Con los datos Anteriores y usando las formulas general =
du
dx
con la cual
analizaremos los diferentes paso de coordenadas .
0
xy0
u
u x
u y
x0 =
0 =
0 +
x
x x
y x0
0
0
0
v
v x
v x
y 0 = 0 =
+
y
x y 0
x y 0
0
0
0
0
0
0
u
v
v x
v y
u x
u x
= 0 + 0 =
+
+
+
y
x
x x0
y x0
x y 0
x y 0
69
(4.21)
(4.22)
(4.23)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Reemplazando las ecuaciones Ec(4.17-4.18-4.19-4.20) en las ecuaciones Ec(4.214.22-4.23) con la cual tendramos lo siguiente:
0
x = x cos2 () + xy sen()cos() + y sen2 () (4.24)
0
y = x sen2 () xy sen()cos() + y cos2 () (4.25)
xy0 = x 2cos()sen() + y 2cos()sen() + xy (cos2 () sen2 ()) (4.26)
Acomodando el sistema en un sistema matricial el sistema quedara de la siguiente manera:
x
y 0
0
xy
cos ()
sen ()
sen2 ()
sen()cos()
cos2 ()
sen()cos()
2sen()cos() 2sen()cos() cos2 () sen2 ()
xy
(4.27)
La formula quedara de la siguiente manera con la cual se podra establecer la
siguiente formula:
0
= T
(4.28)
Por otra parte tambin puede demostrase que que las tensiones en los ejes
0
globales se relacionan con sus valores en ejes x y y
= TT
0
=D
(4.29)
(4.30)
Donde D viene expresada en Ec(4.11) para material ortotrpo.
Finalmente,haciendo uso de las Ecs(4.29)-(4.30) se obtiene:
0
= T T D T = D
0
D = TTD T
70
(4.31)
(4.32)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.3: Material Orttropo con direcciones principales de ortotropa x y y
Es fcil comprobar que la matriz de D en los ejes globales es tambin simtrica
.La expresin de los coeficientes dij para el caso de elasticidad anistropa. Si el
slido esta sometido a un estado de deformacin inicial,tal como puede suceder
en el caso de deformacin trmica,las relaciones pueden modificarse. La deformacin total es ahora igual a la elstica e ms la inicial.Por otra parte,las
tensiones siguen siendo proporcionales a las deformaciones elsticas,con lo
que la ecuacin constitutiva se describe como: [3, Pag 161]
= De = D( 0 )
4.2.5.
(4.33)
Formulacin de Elementos Finitos.Elemento de tres
Nodos.
Consideraremos en primer lugar el uso del sencillo elemento triangular de tres
nodos.Este elemento est considerado primario en el estudio de problemas
estructurales bidimensionales por el mtodo de elementos finitos.ya hemos comentado que mucho antes de la aparicin de este mtodo Courant sugiri el
71
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
uso de una interpolacin polinomica lineal sobre sus subdominios triangulares
para aproximar la solucin numrica de ecuaciones diferenciales. [3, Pag 168]
Aos despus,Turner et al.En un clsico articulo propusieron la divisin de los
dominios bidimensionales en tringulos de tres nodos para facilitar su anlisis
matricial.Por ello,dicho elemento es conocido como elemento de Turner.El triangulo de tres nodos pronto adquiri gran popularidad entre ingenieros estructurales.De las muchas aplicaciones practicas de dicho elemento en su primera
etapa hay que destacar las relaciones con el clculo de presas de gravedad que
constituyeron una autentica innovacin en la metodologa tradicional del anlisis de dichas estructuras [2, pag.55].La clave del xito del elemento triangular
de tres nodos fue su gran versatilidad y sencillez que,como veremos,permite
asimilar fcilmente el proceso de anlisis de un dominio bidimensional complejo a las etapas del clsico clculo matricial de estructuras de barras,familiar
a la mayor parte de ingenieros estructurales.Por contrapartida,es un elemento
de precisin limitada,como corresponde a su aproximacin lineal lo que obliga
usualmente a la utilizacin de mallas muy tupidas pese a ello,en la actualidad,sigue siendo un elemento popular y competitivo,ademas de servir de ejemplo excelente para introducir la formulacin de elementos finitos en problemas
bidimensionales.
4.2.6.
Discretizacin del Campo de Desplazamiento.
En la figura 4.4 se muestra la seccin transversal cualquiera que se analiza bajo
la hiptesis de elasticidad bidimensional.La primera etapa del anlisis es como
siempre la discretizacin en elementos finitos.En la misma figura puede verse
la discretizacin de la seccin en elementos Triangulares de tres nodos es importante recordar de nuevo que la malla de elementos finitos representa una
idealizacin de la geometra lineal.por consiguiente,el anlisis por elementos finitos reproduce el comportamiento de la malla escogida y no el de la estructura
72
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
real.Solamente comprobando la convergencia de la solucin podemos estimar
el grado de aproximacin de la solucin de elementos finitos a la exacta.
Un elemento triangular de tres nodos tpico se caracteriza por el nmero de
sus nodos N : 1, 2, 3 y sus coordenadas.Los tres nodos del elemento tienen en
la malla la numeracin global (i, j, k) y coordenadas x1 , y1 ,x2 , y2 y x3 , y3 .Los
nmeros globales de los nodos (i, j, k) corresponden con los locales 1,2 y
3,respectivamente en la prctica es usual utilizar la numeracin local para el
clculo de las matrices del elemento y hacer uso de la correspondencia entre
nmeros locales y globales para el ensamblaje similarmente a como ocurre en
clculo matricial de estructuras. Considerando un elemento aislado como en
Figura 4.4: Discretizacin de una Estructura con Elementos Triangulares.
la figura,podemos expresar los dos desplazamientos cartesianos de un punto
cualquiera del interior del elemento en funcin de los desplazamientos de sus
73
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
nodos como
u = N1 u1 + N2 u2 + N3 u3
(4.34)
v = N1 v1 + N2 v2 + N3 v3
(4.35)
donde (ui , vi ) y Ni son los desplazamientos horizontal y vertical y la funcin de
forma del nodo i del elemento,respectivamente.No hay ninguna razn fundamental para escoger las mismas funciones para definir los desplazamientos en
direccin horizontal y vertical.No obstante,por simplicidad, y a menos que haya
claros indicios de que dicha aproximacin debe diferenciarse, es usual utilizar
la misma interpolacin para ambos desplazamientos u,v . [3, Pag 170]
u
N1 0 N2 0 N3
u=
=
v
0 N1 0 N2 0
N3
u1
v1
u2
v2
u3
(4.36)
u = Ni ae
u
u=
v
(4.37)
(4.38)
Es el vector de desplazamientos de un punto del elemento.
N = [N1 , N2 , N3 ] : Ni =
Ni
0
0
Ni
(4.39)
Son las funciones de forma del elemento y el nodo i del elemento,respectivamente,y
ae =
ae2
ae
u
i
aei =
v
i
74
(4.40)
(4.41)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Son el vector de desplazamientos nodales del elemento y un nodo i. Adviertan se que N y ae estn compuestos de tantas submatrices Ni y subvectores
aei ,respectivamente ,como nodos tiene el elemento.Esto es una propiedad general que se cumple en todos los casos.
La expresin de las funciones de forma del elemento triangular de tres nodos
se puede obtener como sigue.
Los tres nodos del elemento definen una variacin lineal del campo de desplazamientos que puede escribirse como:
u = 1 + 2 x + 3 y
(4.42)
v = 4 + 5 x + 6 y
(4.43)
Figura 4.5: Elemento discretizado en forma Triangular.
75
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
u1 = 1 + 2 x1 + 3 y1
(4.44)
u2 = 1 + 2 x2 + 3 y2
(4.45)
u3 = 1 + 2 x3 + 3 y3
(4.46)
Ahora resolviendo dicho problema se tendra de la siguiente manera:
u=
1
[(a1 + b1 x + c1 y)u1 + (a2 + b2 x + c2 y)u2 + (a3 + b3 x + c3 y)u3 ] (4.47)
2A
Se deduce que las funciones de forma del elemento triangular tienen la siguiente forma: [3, Pag.75]
Ni =
4.2.7.
1
(ai + bi x + ci y)
2A
(4.48)
Discretizacin del campo de deformaciones.
Usando la forma general de la deformacin unitaria en un punto del elemento
como:
N2
N3
N1
u1 +
u2 +
u(4.49)
3
x
x
x
N1
N2
N3
y =
v1 +
v2 +
v(4.50)
3
y
y
y
u v
N1
N1
N2
N2
N3
N3
=
+
=
u1 +
v1 +
u2 +
v2 +
u3 +
v(4.51)
3
y x
y
x
y
x
y
x
x =
xy
Haciendo un arreglo matricial de las ecuaciones planteadas en la parte anterior
tendramos:
u
x
v
y
v
x
u
y
N1
= 0
N1
N2
x
N3
x
N1
y
N2
y
N1
x
N2
y
N2
x
N3
y
N3
N3
u1
v1
u2
(4.52)
v2
u3
v
3
= Bae (4.53)
B = [B1 , B2 , B3 ] (4.54)
76
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.6: Funciones de forma del elemento triangular de tres nodos.
Es la matriz de deformacin del elemento,y en forma general quedara de la
siguiente manera:
Ni
x
Bi = 0
Ni
y
Ni
y
Ni
x
(4.55)
es la matriz de deformacin del nodo i.
Adviertan se que B est compuesta de tantas submatrices Bi como nodos
tiene el elemento,lo que tambin es una propiedad de carcter general particularizando para los elementos triangular de tres nodos se obtiene,utilizando [4,
77
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
pag 195]
b1
0 b2
0 b3
B=
0 c1 0 c2 0 c3
2A
c 1 b1 c 2 b2 c 3 b 3
(4.56)
y por consiguiente
b 0
i
Bi =
0 ci
2A
c i bi
4.2.8.
(4.57)
Discretizacin del campo de tensiones.
La expresin discretizada del vector de tensiones en el interior del elemento
se obtiene mediante sustitucin directa de las ecuaciones vistas en la primera
parte de la tesis:
= D = DBae
(4.58)
Si existiera tensiones o deformaciones iniciales la expresin a utilizar se deduce
de la siguiente manera:
= D( 0 ) + 0 = DBae D0 + 0
(4.59)
Puede apreciarse en la ecuacin EC(5.47) que la matriz de deformacin del
elemento triangular de tres nodos es constante,lo que implica que las deformaciones y tensiones son constantes en todo el elemento.Esto es consecuencia
directa del campo de desplazamiento lineal escogido, cuyos gradientes son obviamente,constantes.
78
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Por consiguiente,en zonas de alta concentracin de tensiones ser necesario
utilizar una malla tupida para aproximar la solucin de tensiones con suficiente
precisin. [3, Pag 173]
4.2.9.
Ecuaciones de Equilibrio de la Discretizacin.
Para la obtencin de las ecuaciones de equilibrio de la discretizacin partiremos
de la expresin del PTV aplicada al equilibrio de un elemento aislado hay que
resaltar que,aunque nos referiremos al elemento triangular de tres nodos la mayora de las expresiones que se obtendrn en este apartado son completamente generales y aplicables a cualquier elemento bidimensional. Supondremos
Figura 4.7: Fuerza Sobre un elemento triangulo de tres nodos
ahora que el equilibrio del elemento se establece nicamente en los nodos.Podemos
entonces definir unas fuerzas puntuales que acten sobre los nodos (denominaremos fuerzas nodales de equilibrio) y que se equilibren las fuerzas debidas
a la deformacin del elemento y al resto de las fuerza actuantes del mismo.Para
79
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
el clculo de las fuerzas nodales de equilibrio haremos uso de la expresin del
P.T.V aplicada el elemento,que se describe como: [4, Pag 200]
Z Z
Z Z
tdA =
u btdA +
u tds +
Ae
le
3
X
ui Ui +
i=1
3
X
vi Vi (4.60)
i=1
Donde ui y vi son los desplazamientos virtuales de los nodos del elemento
Ui y Vi las fuerzas nodales de equilibrio que corresponden a dichos desplazamientos .El trabajo virtual de dichas fuerzas pueden despejarse de la ecuacin
anterior como:
Z Z
Z Z
tdA
u btdA
Ae
uT ttds = [ae ]T qe
(4.61)
Ae
donde para el elemento triangular de tres nodos.
ae = [u1 , v1 , u2 , v2 , u3 , v3 ]T
(4.62)
q e = [U1 , V1 , U2 , V2 , U3 , V3 ]
(4.63)
Podemos escribirlo de la siguiente manera:
uT = [aT ]N T
(4.64)
T = [aT ]B T
(4.65)
Sustituyendo en la ecuacin EC(4.60) en la EC(4.61) se obtiene ,tras sacar
factor comn aT ,en el primer miembro.
Z Z
[a ] [
e T
Z Z
B tdA
Ae
N T ttdS] = [ae ]T q e
N btdA
Ae
(4.66)
le
Teniendo en cuenta que los desplazamientos virtuales son arbitrarios ,se deduce que:
Z Z
Z Z
B tdA
Ae
N btdA
Ae
N T ttds = q e
(4.67)
le
Las ecuaciones anterior el equilibrio,entre las fuerzas nodales de equilibrio y
las fuerzas debidas a la deformacin del elemento(primera integral),las fuerzas
msicas (segunda integral) y las de superficie (tercera integral).Sustituyendo
80
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
ahora el vector de tensiones por sus valor en funcin de los desplazamientos
nodales utilizando la forma ms general de la ecuaciones anteriores ya vistas. [3, Pag 175]
Z Z
[
Z Z
B DBtdA]a
B D tdA +
e
Ae
Z AZ
I
N T btdA
N T tds = qe
Ae
Z Z
B T 0 tdA
Ae
(4.68)
le
Simplificando la ecuacin en forma general la cual se estara estableciendo de
la siguiente manera:
K e ae f e = q e
Z Z
B T DBtdA
Ke =
(4.69)
(4.70)
Ae
Es la Matriz de Rigidez del elemento y:
f e = fe + fe + fbe + fte
(4.71)
el vector de fuerzas nodales equivalentes del elemento,siendo:
f(e)
Z Z
=
Z ZA
f(e) =
(e)
fb
B T D0 tdA
(4.72)
B T 0 tdA
(4.73)
N T btdA
(4.74)
N T ttds
(4.75)
(e)
AZ
=
Ae
(e)
ft
I
=
le
Los vectores de fuerzas nodales equivalentes debidos a deformaciones iniciales,tensiones iniciales,y fuerzas repartidas por unidad de rea y fuerzas repartidas en el contorno,respectivamente.
La ecuacin de equilibrio global de la malla se obtiene,como en el caso de
problemas unidimensionales,estableciendo simplemente que la suma de sus
fuerzas nodales de equilibrio en cada nodo debe ser igual a la fuerza nodal
exterior.Es decir: [4, pag 205]
(e)
q i = Pj
81
(4.76)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
4.3.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Otros Elementos Bidimensionales y el Mto-
do de Interpolacin de Lagrange.
La definicin de las funciones de interpolacin o funciones bases que pueden
realizarse en el sistema de coordenadas global que se emplean para definir
una estructura;sin embargo,se ha encontrado que ello no es muy conveniente
por que los elementos as definidos ,por lo general,dependen de los parmetros
caractersticos de la geometra y no son fciles de adaptar a nuevas configuraciones .Tal es el caso de uno de los primeros elementos bidimensional que
tienen forma rectangular: [4, Pag 81]
Figura 4.8: Interpolacin de Coordenadas
Una manera de mantener una geometra simple durante la definicin de las funciones de interpolacin,y de ganar flexibilidad en la representacin geomtrica
de los problemas ,es la definicin de un espacio Natural que es independiente
del sistema de coordenadas del sistema. [4, Pag 83]
Para definir elementos bidimensionales se emplean ,comnmente ,dos espacios diferentes ,uno es rectangular y otro triangular en las cuales se definen
,respectivamente ,elementos cuadriliterales y triangulares . El uso de los espacios naturales para la definicin de los elementos implica,asimismo,la utilizacin de funciones de mapeo hacia el espacio real de aplicacin del elemento
implica ,asimismo ,la utilizacin de funciones de mapeo hacia el espacio carte-
82
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.9: Espacios Triangular y Rectangular
siano. [4, Pag 85] Se inicia relacionando las geometras de los espacios,para
Figura 4.10: Mapeo entre los puntos del espacio Natural y el Espacio Cartesiano
lo cual en la figura 4.10 anterior se muestra como un ejemplo de geometra de
un cuadriltero en dos dimensiones .El punto a en el espacio con coordenadas
a se relacionan con el punto A de l espacio cartesiano con coordenadas XA
mediante la expresin:
XA = (a,a ) = a
(4.77)
Un segundo par de puntos,b y B adyacentes a los puntos y A se relacionan
de la misma manera:
XB = (b ,(b) ) = b
83
(4.78)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Si el punto B se posiciona con respecto al punto A mediante el vector unitario a
y la diferencia lineal L,y el punto b se posiciona respecto al punto mediante
el vector unitario entonces:
XB = XA + La
(4.79)
b = a + l
(4.80)
Considerando esta ltima relacin ,la ecuacin se puede desarrollar empleando
una expansin de la serie de Taylor al rededor del punto mediante.
xB = b = a +l = a +
|a {l} + O{l2 }
(4.81)
Igualando las ecuaciones EC(4.79) con la EC(4.75),se relacionan las distancias
entre los puntos AB y ab en los dos espacios la cual quedara de la siguiente
manera:
La =
| {l} + O(l2 )
a
(4.82)
En el limite,cuando el punto B se aproxima el punto A,y el punto b se aproxima
al punto a,los vectores diferenciales entre los segmentos de linea correspondientes en el espacio natural y cartesiano. [4, Pag 85]
dx =
d = Jd
(4.83)
La matriz que liga los elementos diferenciales de linea se denomina el jacobiano
de la transformacin y se denota por J .
Una dimensin:
J=
(4.84)
En dos dimensiones.
J =
84
(4.85)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
En tres dimensiones:
J =
4.3.1.
(4.86)
Elementos Lineales.
Considere un elemento lineal elstico definido por dos nodos .Este elemento
se muestra un espacio natural y el espacio real. Usando el mtodo de lgebra
Figura 4.11: Mapeo del espacio natural al espacio real para un elemento lineal unidimensional
lineal se tendra que la forma de relacionar los dos espacios serian:
x = a0 + a1 = [1, ]
(4.87)
1
la aproximacin por elementos finitos emplea valores nodales de la funcin
misma,de manera que es importante utilizar la aproximacin nodal sorteando
los valores de ,para distintos casos:
esta tabla se emplea para generar mediante la ecuacin P a = u
b y tambin
85
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Nodos a
-1
+1
Cuadro 4.1: Relacin entre nodos de los elementos lineales y sus coordenadas naturales.
a = A1 u.
a
0
a1
1
1 1
xe2
1
[1, ]
1
e
e
x2
1
(4.88)
1 1
[N1 , N2 ]
xe
2
1
2
1+
N2 =
2
N1 =
86
(4.89)
(4.90)
(4.91)
(4.92)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.12: Funciones de forma para un elemento lineal Unidimensional.
from numpy import *
import matplotlib . pyplot as plt
from pylab import *
def f ( x ) :
return 0 . 5 * ( 1 - x )
def g ( x ) :
return 0 . 5 * ( 1 + x )
x = arange ( -1 ,1 , 0 . 1 )
figure ( 1 )
subplot ( 211 )
title ( ' Funciones de Forma ')
xlabel ( r '$ \ xi$ ')
ylabel ( r ' $N_ { 1 } (\ xi ) $ ')
grid ( True )
plot (x , f ( x ) , 'r - - ')
subplot ( 212 )
xlabel ( r '$ \ xi$ ')
ylabel ( r ' $N_ { 2 } (\ xi ) $ ')
grid ( True )
87
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
plot (x , g ( x ) , 'r - - ')
show ()
Puesto que el elemento es isoparamtrico,se emplear la misma interpolacin
para interpolar funciones en este espacio:
u
b=
2
X
Na ()ua e
(4.93)
a=1
Esta aproximacin ser lineal a partir de los valores nodales ,para que esta interpolacin sea adecuada,es necesario verificar que se cumplen los requisitos
de continuidad ,suavidad y completez.
La continuidad en el dominio de este elemento ser del tipo C 0 puesto que
las funciones de forma son lineales;la primera derivada ser constante,pero la
segunda derivada no est ya definida.A travs de la frontera, la funcin es continua si dos elementos se unen con el mismo nodo,pero la primera derivada es
discontinua.Estas funciones sern adecuadas en problemas que tengan hasta
primeras derivadas (m = 1) en el integrando de las ecuaciones se nota continuidad en la primera funcin y discontinuidad en la primera derivada.
La suavidad de la interpolacin se verifica grficamente,en donde se observa
que las funciones de forma no tiene ningn punto singular en el dominio del
elemento y,por tanto,la funcin interpolada tampoco tendr y el mapeo se realizar uno a uno y sobre todo el dominio.El jacobiano de transformacin para
este elemento se define mediante Le del elemento como: [4, Pag 88]
xe1
x
dx
dN1 dN2
1 1
xe xe1
Le
=
=
,
=
,
= 2
=
d
d d xe
2 2
2
2
2
(4.94)
Esto es, el jacobiano es un escalar que representa la distancia o longitud entre
los dos nodos del elemento,por lo que la nica posibilidad de que sea cero es
que el mapeo se realice por dos nodos coincidentes.Fuera de ese caso,esta
interpolacin siempre ser suave.
Finalmente,la completes se verifica al comprobar que la interpolacin es capaz
88
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
de describir exactamente en un polinomio de primer grado.Esto es todo lo que
necesita una funcin de la clase C 0 .Considrese ,entonces,que los grados de
libertad nodales se especifican de acuerdo con un polinomio de primer grado:
ue0 = c0 + c1 xea
(4.95)
Utilizando la interpolacin propuesta en la ecuacin u
b =
P2
a=1
Na ()uea ,junto
con estos valores nodales,se obtienen:
2
X
Na ()uea
(4.96)
Na ()(c0 + c1 xea )
(4.97)
u
b=
a=1
u=
2
X
a=1
u=
2
X
!
Na () c0 +
a=1
2
X
!
Na ()xea c1
(4.98)
a=1
El coeficiente del primer trmino implica la particin de la unidad:
2
X
1
1
Na () = N1 () + N2 () = (1 ) + (1 + ) = 1
2
2
a=1
(4.99)
Debe notarse que el uso del concepto isoparamtrico es el que permite la simplificacin de la ecuacin a un polinomio lineal.Esta ventaja de los elementos
isoparamtricos,ya que,bsicamente ,para verificar los requisitos de convergencia de interpolacin lo nico que hace falta es demostrar que se cumpla los
requisitos de particin de la unidad. [4, Pag 89]
2
X
() = 1
(4.100)
a=1
El elemento que se presenta en esta seccin se emplea para modelar un dominio bidimensional plano que se define mediante la posicin de 4 nodos .La numeracin de los nodos y la configuracin geomtrica del elemento se muestran
en la figura 4.14: [4, Pag 89] De nueva cuenta ,como en el caso unidimensional,el espacio de definicin ser el espacio natural y ser necesario realizar un
mapeo al espacio real de la aplicacin ,el cual se muestra en la siguiente figura: la aproximacin geomtrica se puede expresar mediante polinomios.Dado
89
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.13: Elemento bilineal de cuatro nodos.
Figura 4.14: Mapeo del espacio natural bidimensional al espacio cartesiano real.
que se tiene cuatro nodos para representacin geomtrica,es natural pensar
en proponer en aproximaciones no-nodal en trminos de cuatro coeficientes
90
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
indeterminados para x,y . [4, Pag 95]
x(, ) = a0 + a1 + a2 + a3 =
y(, ) = 0 + 1 + 2 + 3 =
a0
a
1
a2
a
3
(4.101)
(4.102)
3
La transformacin a una aproximacin nodal se logra al evaluar las coordenadas mediante.
x(a , a , a0 , )
Nodo a
-1
-1
+1
-1
+1
+1
-1
+1
(4.103)
Cuadro 4.2: Relacin de los nodos del elemento bilineal y sus coordenadas naturales.
91
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Sustituyendo estas coordenadas de las ecuaciones anteriores se obtienen:
xe1
e
x2 1
{xea } =
=
e
x3 1
e
1
x4
1
ye
1
e
y2 1
e
{xa } =
=
e
y3 1
1
y4e
1 1 +1
+1 1 1
+1 +1 +1
1 +1 1
1 1 +1
+1 1 1
+1 +1 +1
1 +1 1
a0
a1
a2
a3
0
= Aai
(4.104)
= Ai
(4.105)
Los coeficientes indeterminados se pueden obtener de esta ultima expresin:
ai = A1 {xea }
(4.106)
i = A1 {yae }
(4.107)
Finalmente,la interpolacin geomtrica nodal se obtiene como:
x=
1 ai
i
x = 1 A1 {xi }
h
i
x = N1 N2 N3 N4 {xi }
h
92
(4.108)
(4.109)
(4.110)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Las funciones de forma o interpolacin estn dadas por:
1
N1 = (1 )(1 )
4
1
N2 = (1 + )(1 )
4
1
N3 = (1 + )(1 + )
4
1
N4 = (1 )(1 + )
4
4.3.2.
(4.111)
(4.112)
(4.113)
(4.114)
Interpolacin de alta jerarqua de clase C0 ,Interpolacin
Lagrangiana.
Para el tipo de funciones C0 solo se requiere que las funciones de interpolacin
se evalen a partir de valores nodales.En teora de interpolacin se encuentran
que una familia de polinomios que cumplen precisamente con ese requisito es
la de polinomios de Lagrange.
La interpolacin se plantea de la siguiente forma para problemas unidimensionales.Si tienen (n) puntos 0 n y la funcin f tiene valores conocidos
en esos puntos,entonces es posible encontrar un polinomio () nico,de grado
mximo (n 1),que al evaluarse en esos puntos ,toma el valor de la funcin .El
polinomio se expresa como:[4, Pag 106]
P () = f (1 )Ln1,1 () + + f (n )Ln1,n ()
(4.115)
en donde los polinomios de lagrange se calculan mediante:
n
Y
( i )
Ln1,k () =
(k i )
i=1
(4.116)
Comparando la ecuacin EC(4.115) con la forma estandard de la interpolacin:
u
b=
n
X
Na ()ua e
(4.117)
a=1
Es posible concluir que los polinomios de Lagrange pueden ser las funciones
de forma directamente:
Na () = Ln1,a ()
93
(4.118)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.15: Elemento Unidimensional de dos nodos.
Ejemplo de Aplicacin 01.
Considerando el elemento unidimensional de dos nodos que se presentan
en el espacio natural en la figura ,obtenga las funciones de forma mediante
el polinomios de Lagrange.
Solucin:
Se considera la siguiente aproximacin:
u
b=
n
X
Na ()ua e
(4.119)
a=1
Las funciones de forma se determinan mediante los polinomios de Lagrange:
(1 )
( 2 )
=
(1 2 )
2
( 1 )
(1 + )
=
=
(2 1 )
2
N1 = L1,1 =
(4.120)
N2 = L1,2
(4.121)
Puede observarse que estas funciones de forma son idnticas a las obtenidas por el mtodo de lgebra lineal estudiadas ya anteriormente.
Ejemplo de Aplicacin 02.
Considere el elemento unidimensional de tres nodos que se presentan en
el espacio natural en la figura obtenga las funciones de forma mediante
los polinomios de lagrange.
94
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.16: Elemento Unidimensional de tres nodos.
Solucin: Se considera la siguiente aproximacin:
u
b=
n
X
Na ()uea
(4.122)
a=1
Las funciones de forma se presentan mediante los polinomios de Lagrange.
( 2 )( 3 )
(1 2 )(1 3 )
( 1)( 0)
1
=
= ( 1)
(1 1)(1 0)
2
( 1 )( 3 )
N2 = L2,2 =
(2 1 )(2 3 )
( + 1)( 0)
1
=
= ( + 1)
(+1 + 1)(+1 0)
2
( 1 )( 2 )
N3 = L2,3 =
(3 1 )(3 2 )
( + 1)( 1)
=
= 1(1 2 )
(+0 + 1)(+0 1)
N1 = L2,1 =
95
(4.123)
(4.124)
(4.125)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.17: Funciones de Forma Cuadrtica Lagrangiana.
# GRAFICO DE FUNCIONES DE FORMA DE SEGUNDO GRADO
from numpy import *
from matplotlib import *
from pylab import *
import matplotlib . pylab as plt
def N1 ( x ) :
return 0 . 5 * x * ( x - 1 )
def N2 ( x ) :
return 0 . 5 * x * ( x + 1 )
def N3 ( x ) :
return ( 1 - x * * 2 )
x = arange ( -1 ,1 , 0 . 1 )
figure ( 1 )
title ( ' Funciones de Forma ')
xlabel ( r '$ \ xi_ { i } $ ')
ylabel ( r ' $N_ { i } (\ xi ) $ ')
grid ( True )
plot (x , N1 ( x ) , 'r - - ' ,x , N2 ( x ) , 'g ^ ' ,x , N3 ( x ) , ' bo ')
show ()
96
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Para interpolar en dos y tres dimensiones,simplemente se mezclan los
productos de las interpolaciones unidimensionales de las direcciones correspondientes .Para dos dimensiones si se tienen (n + 1) puntos en
y(m + 1) puntos en ,entonces las funciones de forma se calcularan mediante: [4, Pag 109]
Na (, ) = Ln,b ()xLm,c ()
(4.126)
Ejemplo de Aplicacin 03.
Considere el elemento bidimensional de cuatro nodos que se presenta en
el espacio natural en la figura obtenga las funciones de forma mediante
combinaciones de polinomio de Lagrange.
Figura 4.18: Elemento bidimensional de cuatro nodos.
Solucin.
Se considera la siguiente aproximacin :
u
b=
n
X
Na (, )uea
(4.127)
a=1
Las funciones de forma se determinan mediante interpolacin de Lagrange unidimensionalmente en las direcciones y respectivamente.Debe
notarse que,en cada direccin,se tiene dos estaciones de interpolacin
por lo que es posible descomponer la interpolacin bidimensional en dos
interpolaciones unidimensionales como se muestran en la figura.
97
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
La siguiente tabla se emplea para relacionar la numeracin nodal del elemento bidimensional con la numeracin nodal de las interpolaciones unidimensionales: La tabla anterior se emplea para relacionar la numeracin
n
L() L()
Cuadro 4.3: Ordenamiento de elementos en dos dimensiones.
nodal del elemento bidimensional con la numeracin nodal de las interpolaciones unidimensionales.
Las funciones de forma del elemento bidimensional se encuentran aplicando la ecuacin:
1
1
N1 = L1,1 ()xL1,1 () = (1 ) ( 1) =
2
2
1
1
N2 = L1,2 ()xL1,1 () = ( + 1) ( 1) =
2
2
1
1
N3 = L1,2 ()xL1,2 () = ( + 1) ( + 1) =
2
2
1
1
N4 = L1,1 ()xL1,2 () = (1 ) ( + 1) =
2
2
1
(1 )(1 )
4
1
(1 + )(1 )
4
1
(1 + )(1 + )
4
1
(1 )(1 + )
4
(4.128)
(4.129)
(4.130)
(4.131)
Estas son las funciones de forma halladas anteriormente por el anlisis de
lgebra lineal.
El siguiente cdigo esta hecho en python v.2.7 la cual esta usando las libreras de ipython(librera de clculo algebraico) y numpy(librera de calculo de Matrices),la cual nos resuelve la interpolacin de lagrange en n puntos.
98
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.19: Discretizacin del elemento bidimensional de cuatro nodos N1
# PROGRAMA DE FUNCIONES DE FORMA LINEALES .
from numpy import *
from sympy import *
def Forma_X (n , o ) :
x = Symbol ( 'x ')
lista_datos = arange ( -1 ,1 , 2 / float ( n ))
lista_final01 = lista_datos . tolist ()
lista_final02 = lista_final01 + [ 1 . 00 ]
producto01 = 1
producto02 = 1
numero_elegido = lista_final02 [ o ]
lista_final02 . pop ( o )
lista_definitiva = lista_final02
for i in range ( len ( lista_definitiva )) :
producto01 = producto01 * ( x - lista_final02 [ i ] )
for i in range ( len ( lista_definitiva )) :
producto02 = producto02 *
( numero_elegido - lista_definitiva [ i ] )
return together ( producto01 / ( producto02 ))
99
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.20: Discretizacin del elemento bidimensional de cuatro nodos N2
Ejemplo 04.
Considere el elemento Bidimensional de nueve nodos que se presenta en
el espacio natural en la siguiente figura,obtener las funciones de forma
mediante combinaciones de Lagrange. Se considera la siguiente aproximacin :
u
b=
n
X
Na (, )uea
(4.132)
a=1
Las funciones de forma se determinan mediante interpolacin de Lagrange
unidimensionales en las direcciones y respectivamente.Debe notarse
que,en cada direccin,se tiene ahora tres estaciones de interpolacin.La
interpolacin bidimensional se compone de las dos interpolaciones unidimensionales que se mostr en la figura.
La siguiente tabla se emplea para relacionar la numeracin nodal del elemento bidimensional con la numeracin nodal de la interpolacin unidimensional. Luego analizaremos las funciones de forma para cada nodo,la
100
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.21: Discretizacin del elemento bidimensional de cuatro nodos N3
Figura 4.22: Discretizacin del elemento bidimensional de cuatro nodos N4
101
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 4.23: Elemento Bidimensional de nueve nodos.
n
L() L()
Cuadro 4.4: Tabla nodal del problema de nueve nodos.
cual se analizara el espacio para clculo de interpolacin nodal general
102
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
del problema de nueve nodos antes mencionados.
1
1
1
N1 (, ) = L2,1 ()xL2,1 () = ()( 1) ()( 1) = ()( 1)( (4.133)
1)
2
2
4
1
1
1
N2 (, ) = L2,2 ()xL2,1 () = ()( + 1) ()( 1) = ()( + 1)( (4.134)
1)
2
2
4
1
1
1
N3 (, ) = L2,2 ()xL2,2 () = ()( + 1) ()( + 1) = ()( + 1)( +(4.135)
1)
2
2
4
1
1
1
N4 (, ) = L2,1 ()xL2,2 () = ()( 1) ()( + 1) = ()( 1)( +(4.136)
1)
2
2
4
1
1
N5 (, ) = L2,3 ()xL2,1 () = (1 2 ) ()(1 ) = (1 2 )()(1 (4.137)
)
2
2
1
1
N6 (, ) = L2,2 ()xL2,3 () = (1 2 ) ()(1 + ) = (1 2 )()(1 +(4.138)
)
2
2
1
1
N7 (, ) = L2,3 ()xL2,2 () = (1 2 ) ()(1 + ) = (1 2 )()(1 +(4.139)
)
2
2
1
1
)
N8 (, ) = L2,1 ()xL2,3 () = (1 2 ) ()(1 ) = (1 2 )()(1 (4.140)
2
2
N9 (, ) = L2,3 ()xL2,3 () = (1 2 )(1 2 ) = (1 2 )(1 (4.141)
2)
Los elementos formados as generan familias de elementos Lagrangianos,una de las familias de elementos estndar,que se presentan en la
siguiente figura: [4]
Figura 4.24: Elementos de Discretizacin lineal y bidimensional.
103
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
4.3.3.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Elementos de Transicin.
Considere el caso en que una parte de la malla generada para modelar un
problema bidimensional se ha formado con elementos biliniales de cuatro
nodos,y otra parte con elementos cuadrticos de 8 nodos.Esto puede haberse hecho para obtener un mayor grado de precisin de la regin donde
se presentan un cambio rpido en el valor de la funcin que se busca,sin
tener que refinar en exceso las zonas en las que el valor de la funcin es
prcticamente constante.En la figura se muestra la zona en donde las dos
mallas se unen. [4, Pag 114]
Figura 4.25: Transicin de Malla Cuadrtica.
104
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
El problema que se presentan en esta unin que la interpolacin no ser
continua a travs de la frontera entre elementos disimilares, y por tanto,se pierde la convergencia hacia la solucin correcta.Este problema no
se eliminara empleando elementos lineales ms pequeos cuyos nodos
coincidieran con lo nodos intermedios de la malla cuadrtica,porque la interpolacin sobre el lado de los elementos de cuatro nodos sigue siendo
lineal,mientras que,sobre el lado de los elementos de ocho nodos,sigue
siendo parablica.Una forma de resolver este tipo de conexiones es mediante el uso de elementos de transicin,como el que se muestra en la
figura,en donde tres de los lados son lineales mientras que el otro es cuadrtico. [4, PAg 114]
Figura 4.26: Elemento de transicin lineal cuadrtico.
La funcin de forma correspondiente al nodo 5 se puede obtener al mezclar interpolacin lagrangianas lineales en y cuadrticas en ,esto es:
N5 (, ) = L1,2 ()xL2,3 ()
1
N5 (, ) = (1 + )(1 2 )
2
(4.142)
(4.143)
Esta funcin de forma cumple con los requisitos bsicos de la interpolacin
105
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
nodal.
N5 (, ) =
0 j = 1, 2, 3, 4
(4.144)
j=6
Las funciones de forma de 1 al 4 son funciones bilineales ,las cuales ,al
evaluarse en la posicin del nuevo nodo 6, valen:
N1 = N2 = 0
1
N2 = N3 =
2
(4.145)
(4.146)
Las funciones de forma de los nodos 2 y 3 no cumplen con el requisitos
de desvanecerse en la posicin de nodo 5;por lo tanto, es necesario modificarlas para que satisfagan el requisito.Una forma de realizar esta modificacin consiste en sustraer la funcin N5 escalada adecuadamente.De
esta manera,las funciones de forma para los cuatro nodos de esquina
quedara:[4, Pag 116]
1
N1 = (1 )(1 )(4.147)
4
1
N2 = N2 N5(4.148)
2
1
1
1
N2 = (1 + )(1 ) (1 + )(1 2 )N2 = (1 + )( 1)(4.149)
4
4
4
1
N3 = N3 + N5(4.150)
2
1
1
N3 = (1 + )(1 + ) (1 + )(1 2 )(4.151)
4
4
1
N3 = (1 + )( + 1)(4.152)
4
1
N4 = (1 + )(1 )(4.153)
4
4.3.4.
Elementos Triangulares y tetahedricos de clase C 0 .
En secciones anteriores de este capitulo,se ha encontrado que mediante la tcnica de degeneracin es posible crear elementos triangulares y tetrahedricos a
106
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
partir de cuadrilteros y hexaedros,respectivamente.Se hizo la observacin de
que la generacin produce mapeos que no son uno a uno en los nodos o lados en donde se colapsan los elementos originales, y por lo tanto, se pierden la
convergencia de la solucin sin embargo,puesto que las ecuaciones de elementos finitos se evalan numricamente en puntos interiores de los elementos,en
donde siempre estarn bien definidos los mapeos,se ha encontrado que estos
elementos producen tambin convergencia a la solucin correcta en el lmite.No obstante, es adecuado desarrollar elementos de este tipo en un sistema
diferente de coordenadas,llamadas coordenadas triangulares o baromtricas
debido a que producen interpolaciones ms simples que las que producen en
coordenadas rectangulares como se observan a continuacin.[4, Pag 118]
Elemento Triangular de 3 nodos.
La configuracin del elemento se muestra en la figura ,se muestra la definicin
de un nuevo sistema de coordenadas ,denominadas coordenadas triangulares
,que puedan definirse con base en las sub-reas que se generan al trazar lineas de los vrtices al punto en cuestin.Se definen tres coordenadas para el
punto: [4, Pag 118]
r=
A1
A
s=
A2
A
t=
A3
A
0 r, s, t 1
(4.154)
Cada terna de coordenadas define una forma nica a cualquier punto del trin-
Figura 4.27: Elemento Triangular de tres nodos definido en coordenadas triangulares.
gulo.Siendo una figura plana,parece equvoco que se repitan tres coordenadas
107
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
para definir un punto;esto es correcto,ya que en realidad las coordenadas no
son independientes,sino que estn ligadas por la ecuacin de restriccin:
r+s+t=1
(4.155)
Se observa que el rango de valores para cada coordenada va desde cero hasta
uno.Dada la posicin de los nudos en los vrtices del triangulo, es posible emplear directamente estas coordenadas como funciones como muestran en las
siguientes ecuaciones:
x = N1 xe1 + N2 xe2 + N3 xe3
(4.156)
y = N1 y1e + N2 y2e + N3 y3e
(4.157)
(4.158)
con:
N1 = r N2 = s N3 = t
(4.159)
La aproximacin a la solucin se propone siguiendo el mismo formato:
u
b = N1 u1 e + N2 u2 e + N3 u3 e
(4.160)
Debe recordarse que solo se emplean realmente dos coordenadas independientes,por lo que se utiliza la ecuacin como una ecuacin de restriccin para
una de las variables,digamos t.
t=1rs
(4.161)
La convergencia en este caso,se asegura,como en los elementos cuadriliterales,verificando que hay continuidad y suavidad en las funciones de interpolacin.En particular,se tendr que verificar que el determinante del jacobiano de
la transformacin es positivo.Debido a la dependencia entre las variables,dada
por la ecuacin: [4, Pag 120]
J =
108
x
r
x
s
y
r
y
s
(4.162)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Interpolacin de Elementos Triangulares.
Se emplear la interpolacin de lagrange para desarrollar interpolaciones de
orden ms alto que el lineal.Se define la interpolacin para tringulos mediante.
I
Y
r ri
LI1,I (r) =
(
) Para todo :I 6= 1
r ri
i=1 I
1 Para Valores de : I = 1
(4.163)
(4.164)
Para elementos en dos dimensiones,se hace el producto en tres interpolaciones,en direccin de las tres coordenadas triangulares ,formando una retcula de
nodos como la que se muestra en la siguiente figura,de manera que la funcin
de forma para un nodo a se expresa mediante:
Na (r, s, t) = Ti (r)Tj (s)Tk (t)
(4.165)
Figura 4.28: Patrn para generar elementos de alta jerarqua en coordenadas triangulares.
Ejemplo 01.
Como ejemplo,las funciones de forma del elemento triangular de tres nodos
109
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
que se muestran en la figura se obtienen con dos estaciones a lo largo de cada coordenada.Para las funciones de interpolacin se aplica EC(163),EC(164)
resultan las mismas funciones que antes:
r ri
=r
r2 r1
s s1
=s
N2 = T1 (r) T2 (s) T1 (t) =
s2 s1
s s1
=t
N3 = T1 (r) T1 (s) T2 (t) =
s2 s1
N1 = T2 (r) T1 (s) T1 (t) =
(4.166)
(4.167)
(4.168)
Ejemplo 02.
Hallar las funciones de forma por el metodo antes mencionado de la siguiente
forma Triangular: Este elemento se presentan en la figura ,en ella se observa
Figura 4.29: Elemento Triangular de 6 nodos.
que se tiene 3 estaciones en cada direccin de cada coordenada.
110
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Las funciones de forma son: [4, Pag 124]
(r r1 )(r r2 )
= r(2r 1) (4.169)
(r3 r1 )(r3 r2 )
(s s1 )(s s2 )
= s(2s 1) (4.170)
N2 (r, s, t) = T3 (s) T1 (r) T1 (t) =
(s3 s1 )(s3 s2 )
(t t1 )(t t2 )
N3 (r, s, t) = T3 (t) T1 (r) T1 (s) =
= t(2t 1) (4.171)
(t3 t1 )(t3 t2 )
r0
s0
1 = 4rs (4.172)
N4 (r, s, t) = T2 (s) T2 (r) T1 (t) =
0,5 0 0,5 0
s0
t0
N5 (r, s, t) = T2 (s) T2 (s) T1 (r) =
1 = 4st (4.173)
0,5 0 0,5 0
r0
t0
N6 (r, s, t) = T2 (r) T2 (t) T1 (r) =
1 = 4rt (4.174)
0,5 0 0,5 0
N1 (r, s, t) = T3 (r) T1 (s) T1 (t) =
(4.175)
4.4.
Clculo Analtico sobre Elementos Triangula-
res y Rectangulares de lados rectos.
La integracin de polinomios sobre el rea de elementos bidimensionales puede ser laboriosa y en general se hace uso de integracin numrica.No obstante,en el caso de elementos rectangulares o triangulares de lados rectos existen
expresiones analticas de gran utilidad prctica as,expresando los trminos del
integrando de las diferentes matrices en funcin de las coordenadas cartesianas locales x y y que se muestran en la figura ,puede obtenerse que la integral
de un trmino tpico ,tal como.
Z Z
Kij = D
xm y n dA
(4.176)
Ae
venga dada por las expresiones siguientes:
m!n!
Elementos Triangulares
(4.177)
(m + n + 2)!
(2a)m+1 (2b)n+1
Kij = D
Elementos Rectangulares
(4.178)
(m + 1)(n + 1)
Kij = Dcn+1 am+1 (b)m+1
111
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
En las ecuaciones anteriores m y n son enteros, a,b y c dimensiones tpicas del
elemento de la figura ; y D una constante que depende del tipo de elemento,de
las propiedades del material y de las derivadas de las funciones de forma.Una
vez obtenida la correspondiente matriz K o el vector f en coordenadas locales
x,y ,pueden transformarse a ejes globales mediante la clsica expresiones:
Kij = T T Kij T ,fi = T T f i
(4.179)
donde T es la matriz de cambio de ejes:
T =
cos(xx) cos(xy)
cos(yx
cos(yy)
(4.180)
siendo(xx) el ngulo que forma el eje x con el eje global x,etc. El clculo de
Figura 4.30: Coordenadas x,y para el clculo analtico de las integrales de elementos
triangulares y rectangulares.
la matriz de rigidez en elementos triangulares exige obtener derivadas de las
funciones de forma expresadas en coordenadas de rea es decir (r, s, t),con
respecto a las coordenadas cartesianas.As por ejemplo [3]
(r, s, t)
N1 r N1 s N1 t
=
+
+
x
r x
s x
t x
(4.181)
Si el elemento triangular es de lados rectos se deduce que:
(r, s, t)
bi
(r, s, t)
ci
=
y
=
x
2Ae
y
2Ae
112
(4.182)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
pudiendo obtenerse fcilmente una expresin de los integrados de la matriz
de rigidez en funcin de las coordenadas de rea.Dichas integrales pueden
evaluarse directamente por las expresiones siguientes:
Z Z
k! l! m!
rk sl tm dA = 2Ae
(2 + k + l + m)!
Ae
I
k! l!
rk sl ds = le
(1 + k + l)!
l(e)
(4.183)
(4.184)
Si en las integrales anteriores no aparece alguna de las coordenadas de rea,simplemente
se omite el correspondiente exponente en los denominadores de los segundos
miembros de la ecuacin anterior y se hace igual a la unidad de los numeradores. [3, Pag 214,215,216]
113
Captulo 5
SLIDOS DE REVOLUCIN.
5.1.
Introduccin.
En este capitulo estudiaremos el anlisis por mtodo de los elementos finitos
de slidos con simetra axial.Es decir,consideremos slidos en los que su geometra y propiedades mecnicas son independientes de la coordenada circunferencial i .Aunque el comportamiento de dichos slidos es tridimensional,pero
su estudio es generalmente bidimensional ya que en la mayora de los casos
puede efectuarse utilizando variables que dependen nicamente de dos coordenadas cartesianas. [3, Pag 245]
Si las cargas exteriores son tambin de revolucin,el desplazamiento de un
punto de una estructura considerada como slido de revolucin tiene solo componentes en direcciones radial (u) y el axial (w).El estudio de dichas estructuras por elementos finitos no es complicado y sigue prcticamente los mismos
pasos que se explicaron en el capitulo anterior para problemas de elasticidad
bidimensional.Si las cargas no son de revolucin hay que realizar un anlisis
tridimensional.
114
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 5.1: Slido de Revolucin.
5.2.
5.2.1.
Formulacin Bsica.
Campo de Desplazamiento.
Sea el slido de revolucin de la figura.Si las cargas son tambin de revolucin
el movimiento de un punto queda perfectamente definido por las componentes
de los desplazamientos radiales u y el axial w,siendo nula la componente circunferencial .Por consiguiente,se puede definir el factor desplazamiento de un
punto por:
u(r, s)
u=
w(r, s)
5.2.2.
(5.1)
Campo de Deformaciones.
Debido a la simetra axial del problema los dos desplazamientos no nulos u
y w son independientes de las coordenadas circunferencial .Por consiguiente se deduce de inmediato que las deformaciones tangenciales r y z son
nulas.Asimismo,de la teora de elasticidad se obtiene.
r =
u
w
u w
: z =
: rz =
+
r
z
z
r
115
(5.2)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
siendo r ,z y rz las deformaciones radial,axial,tangencial respectivamente.
Por otra parte la deformacin axial del cuerpo provoca que los puntos situados
sobre una circunferencia de radio r pasen despus de la deformacin a estar
situados sobre otra de radio r + u.Por ello,se define la deformacin circunferencial como la variacin relativa de longitud entre dichas circunferencias Es
decir:
2(r + u)
u
=
2r
r
(5.3)
El vector de deformaciones de un punto tiene,por tanto,las cuatro componentes
siguientes:
5.2.3.
rz
u
r
w
z
u
r
u
z
w
r
(5.4)
Campos de Tensiones.
Las tensiones no nulas se corresponden no nulas se corresponden con las
deformaciones no nulas As,pues el vector de tensiones se escribe como:
= {r , z , , rz }
(5.5)
donde r , z , son,respectivamente ,las tensiones radial,axial y circunferencial, y rz , es la tensin tangencial.
5.2.4.
Ecuacin Constitutiva.
la Relacin entre tensiones y deformaciones se deduce de la elasticidad tridimensional de forma anloga al caso de elasticidad bidimensional.En presencia
116
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
de tensiones y deformaciones iniciales se obtienes: [4, Pag 246]
= D( 0 ) + 0
(5.6)
donde si el material es isotropo:
D=
(1 + )(1 2)
12
2
(5.7)
Figura 5.2: Tensiones actuando sobre un elemento diferencial de un solido de revolucin.
5.2.5.
Expresin del Principio de los Trabajos Virtuales.
La expresin del PTV(principio de trabajos virtuales) es anloga a la de elasticidad biimensional ,estando ahora todas las integrales referidas al volumen del
117
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
slido de revolucin.Se deduce que el diferencial de volumen se puede expresar como:
dV = (rd)dr.dz = rddA
(5.8)
donde dA es la diferencial de rea de la seccin meridional del slido .As ,pues
,la expresin del PTV en un slido de revolucin se escribe como:
Z Z Z
Z Z Z
u brdds +
u brddA +
rddA =
A
I Z
XZ
i
donde l es el contorno de la seccin meridional y:
b=
b
z
:t=
t
z
y qi =
ri
q
zi
(5.10)
Son los vectores de fuerzas exteriores msicas ,de superficie y puntuales ,respectivamente .Recordemos de nuevo que ahora todas las cargas tienen simetra de revolucin.
Haciendo uso de la simetra axial puede efectuarse la integracin sobre la variable circunferencial para dar:
Z Z
Z Z
dA = 2
A
u brdA + 2
A
uT rds + 2
aTi qi ri (5.11)
Se observa que el coeficiente 2 aparece multiplicando todos los trminos ,pudiendo por lo tanto eliminarse.No obstante,conviene mantenerlo por razones
didcticas,y,fundamentalmente ,para recordar que los valores de las cargas
puntuales qi se refieren a las intensidades de carga por unidad de longitud
circunferencial. [3, Pag 249]
118
uTi qi ri d(5.9)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
5.3.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Formulacin de Elementos Finitos.
Presentamos seguidamente la formulacin de elementos finitos utilizando,en
primer lugar,el elemento de slido de revolucin ms sencillo que,anlogamente
al caso del plano, es el elemento triangular de revolucin de tres nodos.El elemento,como se puede apreciar en la figura es un anillo de seccin triangular.Hay que resaltar que un slido de revolucin los elementos son anulares
,aunque en virtud de la ecuaciones anteriores todas las integrales del elemento se evalen nicamente sobre una seccin meridional operndose,por tanto,sobre un elemento bidimensional. [3, Pag 250]
Figura 5.3: Elemento slido de Revolucin triangular de tres nodos.
5.3.1.
Discretizacin del campo de desplazamientos.
Dentro de la Seccin meridional de un elemento,el campo de desplazamientos
se interpola en forma anloga al caso plano.As,para el elemento triangular de
119
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
tres nodos.
N u1 N2 u2 N3 u3
1
=
u=
w
N1 w1 N2 w2 N3 w3
N
0 N2 0 N3 0
1
N = [N1 , N2 , N3 ] =
0 N1 0 N2 0 N3
a1
e
= [u1, w1, u2, w2, u3, w3]T
a =
a2
(5.12)
(5.13)
(5.14)
Las funciones de forma Ni se obtienen directamente de las del elemento triangular de tres nodos de elasticidad plana,sustituyendo simplemente las coordenadas x,y por r,z.La interpolacin de las expresiones anteriores al caso de un
elemento de n nodos.
5.3.2.
Discretizacin del campo de deformaciones y tensio-
nes.
Del Vector de deformaciones y las ecuaciones de obtienen.
Ni
r
0
3
X
i=1
Nri
Ni
z
a
1
Ni
u
i
= [B1 , B2 , B3 ] a2
= Bae
0 wi
a3
Ni
r
120
(5.15)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
siendo B la matriz deformada del elemento del nodos i.
Para un elemento de n nodos se tendra n submatrices Bi ,observase que la
matriz de deformacin no es constante como en el caso de elasticidad plana
debido al termino
Ni
r
que contiene una singularidad en el origen de coordenadas
.Ms adelante comentaremos como puede evitarse este problema.
Para el elemento triangular de tres nodos se obtiene una forma ms explicita
de Bi ,sustituyendo la expresin de las funciones de forma :
Bi =
2A
bi
0
(ai +bi r+ci z)
r
ci
ci
bi
(5.16)
El vector de tensiones se obtiene sustituyendo por :
3
X
Bi Da(e) D0 + 0
(5.17)
i=1
Durante el clculo de las tensiones puede surgir problemas para encontrar el
valor de =
u
r
en puntos del eje z al aparecer el cociente indeterminado 00 .Este
problema puede sortearse calculando el en puntos ligeramente alejados def
eje, o lo que es ms usual extrapolando las tensiones de puntos del interior
del elemento(que generalmente son los puntos de Gauss) al eje .Otro procedimiento muy sencillo es utilizar la propiedad de que = r en el eje , lo que
simplemente implica reemplazar la segunda fila de B correspondiente a por
la primera que corresponde a r .
5.3.3.
Matriz de Rigidez del Elemento.
Partiendo del primer miembro de la expresin del PTV(principio de trabajos
virtuales) particularizando para un elemento utilizado en la figura ,se hace el
121
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
anlisis de manera idntica a como se hizo en el caso de elasticidad plana ,se
obtienen la expresin del equilibrio del elemento como.
K e ae f e = q e
(5.18)
en la que la matriz de rigidez del elemento de la rigidez del elemento tiene la
expresin siguiente:
(e)
Kij
Z Z
= 2
A(e)
BiT DBj rdrdz
(5.19)
La expresin anterior es vlida para cualquier elemento bidimensional de n nodos.En la figura se muestra la forma desarrollada Kije para el elemento triangular de tres nodos .
5.3.4.
Vectores de fuerzas nodales equivalentes.
De la expresin de los trabajos virtuales se obtienen el vector de fuerzas nodales equivalentes:
e
Z Z
f = 2
Z Z
2
Z Z
N trds + 2
N brdA + 2
A
le
B T 0 rdA
B T D0 rdA
(5.20)
Ae
Donde la primera integral corresponde al vector de fuerzas msicas de volumen
fbe ;la segunda a las fuerzas de superficie fte ;la tercera a la fuerza debida a las
tensiones iniciales fe y la cuarta debida a tensiones iniciales fe . [3, Pag 257]
122
METODOLOGA DE ESTUDIO.
123
Captulo 6
Metodologa de Estudio.
La metodologa de estudio para la tesis,fue terico ya que se us el mtodo
inductivo-deductivo,basndose en informacin hecha por investigaciones anteriores,para dar fruto a unos scripts en lenguaje python.As como los mtodos
de acoplamiento de matrices de rigidez usndose para tal fin el sistema ordenamiento de la matriz que es un sencillo algoritmo de acoplamiento general
para todo tipo de matrices de rigidez.El anlisis de fuerzas viene sometido al
estudio de las funciones de forma las cuales son resultado de la demostracin
terica de la formula de la deformada general de vigas la cual se puede esclarecer con las formulas obtenidas en el capitulo 3,especficamente en el apartado
de anlisis de flexin de vigas por la teora Euler-Bernulli.
u = N2 w1 + N3 1 + N4 w2 + N5 2 + Ri (x, l)
A continuacin se esquematiza el mtodo de investigacin ha empleado:
124
(6.1)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 6.1: Esquema de Investigacin.
125
EJEMPLOS,PRESENTACIN Y
DISCUSIN DE RESULTADOS .
126
Captulo 7
Ejemplos y Problemas de
Elementos Finitos.
7.1.
Vigas.
7.1.1.
Problema N01:
Se tiene en la figura donde se trata de una barra continua de 0.30x0.30 m2 de
rea y una E=1400000.00,nos piden resolver el sistema.
Figura 7.1: Primer Problema para uso del Programa Femax.
Puesta de datos en el programa Materiales.
127
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 7.2: Puesta de Datos de Materiales.
puesta total de datos:
Figura 7.3: puesta de datos total del esquema a prueba.
Puesta de Datos en el sap 2000 V14.
El programa Femax te halla la matriz de rigidez,una ventaja sobre el SAP
ya que el sap no te da la matriz,claro que en el fondo es un dato que en el
diseo comercial es imprctico mas no en el entendimiento del mtodo de
elementos finitos.
128
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 7.4: Puesta de datos en Sap 2000 V14.
25200
0.00
0.00
-25200
0.00
0.00
0.00
0.00
0.00
0.00
90.72
226.8
0.00
-90.72
226.80
0.00
0.00
0.00
0.00
226.8
756
0.00
-226.80
378.00
0.00
0.00
0.00
-25200
0.00
0.00
67200.00
0.00
0.00
-42000.00
0.00
0.00
0.00
-90.72
-226.8
0.00
510.72
403.2
0.00
-420.00
630
0.00
226.80
378.00
0.00
403.20
2016.00
0.00
-630.00
630.00
0.00
0.00
0.00
-42000.00
0.00
0.00
420000.00
0.00
0.00
0.00
0.00
0.00
0.00
-420.00
-630.00
0.00
420.00
630.00
0.00
0.00
0.00
0.00
630.00
630.00
0.00
-630.00
1260.00
Cuadro 7.1: Matriz de Rigidez General hallada por el programa Femax.
Tambin el programa calcula la matriz simplificada o matriz generada por
los grados de libertad.
129
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
2016.00
0.00
-630.00
630.00
0.00
420000
0.00
0.00
-630.00
0.00
420.00
-630.00
630.00
0.00
-630.00
1260.00
Cuadro 7.2: Matriz simplificada copiada del Femax.
Figura 7.5: Matriz de Rigidez obtenida por Femax.
Clculo de las deformaciones se dan por medio de la matriz de rigidez
1
disminuida o simplificada ui = KD
Fi .
Haciendo la respectiva comparacin de los resultados del anlisis de los
desplazamientos totales en los nudos.
Clculo de las fuerzas internas en el sap V14 2000 y en el Femax.
130
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 7.6: Comparacin de Resultados de Desplazamientos.
R
SAP 2000 V14
Femax 1.01
%Comparacin
Nudo A
0.01044200
0.01036155
99.22 %
Nudo B-1
0.069695
0.06917898
99.25 %
Nudo B-2
0.0294900
0.02940917
99.72 %
Cuadro 7.3: Tabla de Comparacin del Clculo de los Desplazamientos.
Cuadro de comparacin y porcentaje de las mismas.
F
Femax
Sap 2000 V14
% Comparacin
F y1
2.65
2.6561
99.77 %
M z1
0.25
0.28
89.28 %
F y2
11.34
11.39
99.56 %
Cuadro 7.4: Comparacin de Resultados de Fuerzas Internas de Sap 2000 V14 y
Femax.
131
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 7.7: Comparacin de Resultado de Fuerzas Int.
7.2.
7.2.1.
Prticos.
Problema N02.
Calcular el siguiente Marco con el Mtodos de elementos finitos.
E=1400000.00
I=0.000675m4
Poner los datos y las condiciones iniciales del problema las cuales se dar
en Femax y SAP al mismo tiempo para su respectiva comparacin.
132
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 7.8: Comparacin de Grficos del Femax con Sap 2000 V14.
Comparacin de los desplazamientos en los nudos:
133
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 7.9: Esquema del Problema N02.
Sap 2000 V14
Femax
% Comparacin
u2
0.0038200
0.00372745
97.57 %
v2
0.00012800
0.00012827
100.2 %
0.003245
0.0031947
98.44 %
u3
0.003743
0.00364976
97.50 %
v3
0.00015745
0.00015745
100 %
0.0014770
0.00145116
98.25 %
Cuadro 7.5: Tabla de comparacin de las Deformaciones Sap y Femax.
Veremos el Clculo de las matrices de Rigideces y la matriz de rigidez
simplificada.
el clculo de los resultados de las Fuerzas Internas.
134
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 7.10: Puesta de Datos en Sap 2000 V14.
Figura 7.11: Puesta de Datos en Femax 1.01
135
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 7.12: Comparacin de los desplazamientos en Femax y Sap 2000 V14.
Figura 7.13: Matriz de Rigidez General del Esquema.
R
Sap 2000 V14.0
Femax
% Comparacin.
F x1
0.427000
0.44712991
104.7 %
F y1
5.389200
5.387303570
99.96 %
M z1
0.38189
0.33563433
87.87 %
F x4
2.4270
2.4471
100.8 %
F y4
6.6108
6.6126
100.00 %
M z4
3.1751
3.2136
101.2 %
Cuadro 7.6: Tabla de Comparaciones de Clculo de Reacciones del esquema.
136
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 7.14: Comparacin de Fuerzas Internas del Femax y el Sap 2000 V14.
Figura 7.15: Comparacin Grfica del Sap 2000 V14 y el Femax.
137
PROGRAMACIN Y MANUAL DEL
PROGRAMA(FEMAX)
138
Captulo 8
Programacin general del Femax.
La aplicacin con xito en este caso del mtodo de elementos finitos se reduce
a un programa que he elaborado con uso del lenguaje de python y con un sistema de clases y funciones de listas y libreras,conceptos que fueron desarrollando con teoras de elementos finitos de los captulos anteriores,el concepto que
se elabor para poder desarrollar el programa fue,en un sistema simple,grfico
y que tenga un fin solo explicativo,pues el programa aun es muy simple para
ser usado para clculos complejos,ya que su fin es simplemente el Femax 1.00
es solo para uso docente y para explicacin en si del mtodo ya que el lenguaje fue desarrollado de manera que pueda ser entendida para los que tengan
inters en el tema y puedan seguir investigando en el mtodo la cual se deja
a criterio de posteriores tesistas que tengan inters de investigacin en este
mtodo.
8.1.
Caractersticas del Programa Femax.
En la figura(7.1)se muestra el diagrama de flujo del programa ,en el cual se
analizar para los ,sistemas o bucles mas importantes de ella la cual nos dar una idea total del sistema.Para centrar conceptos definiremos seguidamente
139
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
las etapas fundamentales asociadas al anlisis de una estructura por un programa de elementos finitos,asi como la relacin de cada etapa con la subrutinas
puestas en el diagrama de flujo principal.
8.1.1.
Puesta de Datos.
La puesta de datos se ha desarrollado con dos libreras principales de python a
cual es numpy y Tkinter una es encargada de los datos numricos en arreglos la
cual es establecida con listas y matrices en la cual ya nos estaremos analizando
seguidamente y la otra librera nos da la oportunidad de entorno grfico,con la
cual nos dar la oportunidad de darnos un entorno agradable y trabajable,la
subrutina puesta de datos se basa en tres partes una de ellas es la puesta de
grilla o ejes de trabajo la cual nos da la oportunidad de tener una cierta forma
de ejes de referencia la misma est colocado en la parte superior derecha del
programa Femax.
Grilla.
La grilla es un sistema de referencia que se trata de unas lineas de contorno
dbil y que son aproximadas en los puntos de inters con un sistema de osnap
o de acercamiento cuando los eventos del mause se acercan a los (x, y) de
los puntos ya derivados del software o puntos de inters del mismo,todos los
puntos son referenciados con el osnap y se traduce en facilidad en el trazo de
las barras,fuerzas.
140
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 8.1: Diagrama de flujo del programa Femax.
def grilla () :
global Ubicaciones_Universales
Ubicaciones_Universales = [ ]
def dibujo_grilla () :
if nx . get () ! = 0 and ny . get () ! = 0 :
for i in range ( nx . get () + 1 ) :
dibujo . create_line ( 50 + i * mx . get () * 50 , 550 , 50
+ i * mx . get () * 50 , 550 ny . get () * my . get () * 50
, fill = ' gray ' , activefill = ' red ' , dash = (3 , 5 ) ,
tag = ( ' Recta01 ' ))
for i in range ( ny . get () + 1 ) :
dibujo . create_line ( 50 , 550 - i * my . get () * 50 ,
141
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
50 + ( nx . get ()) * mx . get () * 50 ,
550 - i * my . get () * 50 ,
fill = ' gray ' , activefill = ' red ' , dash = (3 , 5 ) ,
tag = ( ' Recta02 ' ))
for u in range ( nx . get () + 1 ) :
for m in range ( ny . get () + 1 ) :
Ubicaciones_Universales . append ( [ 50 +
u * mx . get () * 50 , 550 - m * my . get () * 50 ] )
dibujo . create_oval ( 50 +
u * mx . get () * 50 -2 , 550 - m * my . get () * 50 -2 ,
50 + u * mx . get () * 50 +2 , 550 m * my . get () * 50 +2 ,
fill = ' red ' , activefill = ' blue ')
else :
tkMessageBox . showinfo ( message = '
Por Favor poner Datos ')
ventana_grilla = Toplevel ()
ventana_grilla . title ( ' DIBUJAR GRILLA P / ESQUEMA ')
ventana_grilla . minsize ( 500 , 200 )
ventana_grilla . geometry ( ' 500x200 + 0 + 0 ')
# --------- ---------- ---------- ---------- ---------- ------nx = IntVar ()
mx = DoubleVar ()
ny = IntVar ()
my = DoubleVar ()
# -------- -------- --------- -------- --------- -------- ------texto_principal = Label ( ventana_grilla ,
text = ' COORDENADAS EN EL EJE X : Y ')
. place ( x = 100 , y = 0 )
Texto_01 = Label ( ventana_grilla ,
text = 'N : Ejes - X ' ). place ( x = 10 , y = 20 )
texto_02 = Label ( ventana_grilla ,
142
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
text = ' Dist - Ejes - X ' ). place ( x = 250 , y = 20 )
texto03 = Label ( ventana_grilla ,
text = 'N : Ejes - Y ' ). place ( x = 10 , y = 60 )
texto04 = Label ( ventana_grilla ,
text = ' Dist - Ejes - Y ' ). place ( x = 250 , y = 60 )
# -------------------------------------------------Ejes_Horizontales = Entry ( ventana_grilla ,
textvariable = nx ). place ( x = 80 , y = 20 )
Distancias_Horizontales = Entry ( ventana_grilla ,
textvariable = mx ). place ( x = 320 , y = 20 )
# ------------------------------------------------Ejes_Verticales = Entry ( ventana_grilla ,
textvariable = ny ). place ( x = 80 , y = 60 )
Distancias_Verticales = Entry ( ventana_grilla ,
textvariable = my ). place ( x = 320 , y = 60 )
Boton01 = Button ( ventana_grilla , text = ' APLICAR ' ,
command = dibujo_grilla ). place ( x = 300 , y = 150 )
# ------------------------------- --------------------Boton02 = Button ( ventana_grilla ,
text = ' CANCELAR ' ,
command = ventana_grilla . destroy )
. place ( x = 400 , y = 150 )
# ----------- ------------ ------------ ----------- --------# VENTANA DE GRILLAS - LOKITOSAMAX #
ELEMENTOS DE VARIABLE
# --------- ---------- ---------- ---------- ---------- ------ventana_grilla . mainloop ()
Lineas de Barras.
Subrutina creada para el trazo de barras la cual contiene un algoritmo de
eventos consecutivos en dos puntos [inicial, nal],las cuales contienen eventos
de posiciones y los dibujos creados en un sistema de la librera visual Tkinter,contiene el lienzo o Canvas la cual es un sector de dibujo creado para hacer
143
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 8.2: Entorno Grfico del Femax y su funcin de Grilla y su resultado
representaciones grficas;nos dan una lgica de armado del problema con las
condiciones iniciales as como elementos de frontera o contorno que en el sistema biplanico lineal se basa en los apoyos la cual se ver mas adelante.
def dibuja_barra () :
tkMessageBox . showinfo ( message =
' Poner el Primero y Segundo punto . ')
global puntos
global longitudes
global u2
global u
start = None
def punto ( evento ) :
global start
global u
start = [ evento .x , evento . y ]
def punto2 ( evento ) :
global puntos
global longitudes
144
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
global start
global u
global u2
if start is not None :
x = start [ 0 ]
y = start [ 1 ]
dibujo . create_line (x ,y , evento .x ,
evento .y , width = 4 .5 , arrow = LAST ,
activefill = ' gray ' , tag = ( ' linea1 ' ))
dibujo . itemconfig ( ' linea1 ' , fill = ' red ')
u = u + [ ( x - 50 ) / 50 ,( 550 - y ) / 50 ,
( evento . x - 50 ) / 50 ,( 550 - evento . y ) / 50 ]
longitudes = longitudes +
[ norm ( array ( [ ( evento . x - 50 ) / 50 ,( 550 - evento . y ) / 50 ] )
- array ( [ ( x - 50 ) / 50 ,( 550 - y ) / 50 ] )) ]
start = None
dibujo . bind ( ' < Button -1 > ' , punto )
dibujo . bind ( ' < Button -3 > ' , punto2 )
u1 = array ( u )
l1 = len ( u1 )
u2 = u1 . reshape ( l1 /2 , 2 )
print u2
print longitudes
Las figuras de barras son hechas de color rojo y flechas indicando su posicin inicial y final de las mismas,la cual nos ayudaran a hallar las matrices o
arreglos de sus caractersticas como longitud,Seno,Coseno de las barras respectivamente para porder calcular las matrices de transformacin y consecuentemente hallar la matriz de rigidez.
Con el algoritmo descrito nos darn la forma para el clculo del esquema,ms
aun definiremos tambin los materiales de las barras la cual estar descrito
ms adelante.
145
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 8.3: Descripcin de trazo de Barras en Femax.
Materiales.
Es una subrutina encargada de obtener los materiales tanto de Ii , Ei , Ai ,el sistema es consecuencia o depende del numero de las barras con la cual se puede
introducir los datos en el arreglo para el respectivo clculo de la matriz de rigidez,con
la cual se hace el arreglo de la matriz general ya calculada y demostrada en el capi-
146
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 8.4: Trazo de las barras en el Programa Femax.
tulo 3.2 la cual queda segn sus grados de libertad de la siguiente manera:
AE
L
AE
L
0
12 EI
6 EI
L3
L2
0
6 EI
4 EI
L2
L
KT =
AE
L
0
0
0
12 EI
6 EI
L3
L2
0
6 EI
2 EI
L2
L
12 EI
L3
6 EI
L2
6 EI
L2
2 EI
L
AE
L
12 EI
L3
6 EI
L2
6 EI
L2
4 EI
L
(8.1)
Ser establecido para casos particulares de de barras claro que en este sistema
tambin se podr evaluar las transformadas y de tal manera poder sumar las matrices
147
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
individuales y acoplarlos en la matriz de rigidez total.
Ku = T T K i T
(8.2)
esta subrutina genera un bucle de acuerdo a la cantidad de elementos de barra.
148
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
def Materiales_Calculo () :
global u2
global numero
global C3_Materiales
global nodos_espacio
nodos_espacio = u2
ventana_Materiales = Toplevel ()
ventana_Materiales . title ( ' Materiales de Elementos ')
lista_1 = [ ' Inercia '+ str ( i ) for i in range ( len ( u2 ) / 2 ) ]
lista_2 = [ ' Elasticidad '+ str ( i ) for i in range ( len ( u2 ) / 2 ) ]
lista_3 = [ ' Area '+ str ( i ) for i in range ( len ( u2 ) / 2 ) ]
ventana_Materiales . geometry ( ' 800x300 + 0 + 0 ')
numero = len ( u2 ) / 2
for i in range ( len ( u2 ) / 2 ) :
lista_1 [ i ] = DoubleVar ()
lista_2 [ i ] = DoubleVar ()
lista_3 [ i ] = DoubleVar ()
for i in range ( len ( u2 ) / 2 ) :
u1 = Label ( ventana_Materiales ,
text = ' Inercia '+ str ( i ) , fg = ' red ' ). place ( x =0 , y = 20 + i * 20 )
u2 = Label ( ventana_Materiales ,
text = ' Elasticidad '+ str ( i ) , fg = ' red ' ). place ( x = 200 , y = 20 + i * 20 )
u3 = Label ( ventana_Materiales
, text = ' Area '+ str ( i ) , fg = ' red ' ). place ( x = 400 , y = 20 + i * 20 )
for j in range ( numero ) :
Entrada_Inercia = Entry ( ventana_Materiales ,
textvariable = lista_1 [ j ] , width = 10 ). place ( x = 100 , y = 20 + j * 20 )
Entrada_Elasticidad = Entry ( ventana_Materiales ,
textvariable = lista_2 [ j ] , width = 10 ). place ( x = 300 , y = 20 + j * 20 )
Entrada_Area = Entry ( ventana_Materiales ,
textvariable = lista_3 [ j ] , width = 10 ). place ( x = 500 , y = 20 + j * 20 )
# ------- ------- -------- ------- -------- ------- -------- -----C_Materiales = None
149
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
def guardar_datos () :
global C_Materiales
global C3_Materiales
C_Materiales = [ ]
for t in range ( numero ) :
C_Materiales = C_Materiales + [ lista_1 [ t ] . get () ] +
[ lista_2 [ t ] . get () ] + [ lista_3 [ t ] . get () ]
C2_Materiales = array ( C_Materiales )
C3_Materiales = C2_Materiales . reshape ( numero , 3 )
print C3_Materiales
# ----- ------ ----- ------ ------ ----- ------ ------ ----- ------ ----# BOTON DE GUARDAR CARACTERISTICAS DE LOS ELEMENTOS
Boton01 = Button ( ventana_Materiales , text = ' GUARDAR ' ,
command = guardar_datos ). place ( x = 600 , y = 250 )
# ---- ----- ----- ----- ----- ----- ----- ----- ---- ----- ----- ----- -----
150
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Como vemos las caracteristicas del material lo controla un algoritmo que depende
del numero de elementos de barra.
Figura 8.5: Subrutina de Materiales del programa Femax
Apoyos o elementos de Contorno.
Es una subrutina creada para el diagramatizacin e interpretacin matricial de elementos de contorno y tiene como fin obtener los sistemas de condiciones iniciales la
cual se da para el respectivo clculo de la matriz de rigidez disminuida o simplificada
ya que este sistema en concepto y en algoritmo nos da la lgica de los grados de
libertad restringidos que segn sus tipo de apoyos que pueden ser empotrados,mvil
o fijos contienen,las restricciones necesarias para interpretarlos como elementos de
contorno o condiciones iniciales:
Apoyos Fijos:
apoyos que se representa en el programa con un triangulo y contiene un solo
grado de libertad en el sentido de giro i sin embargo en el sentido de fuerzas
internas contiene dos tanto en el eje x como en el eje y.
Apoyos Empotrados.
apoyos que se representa en el programa con una barra en T invertida y no con-
151
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 8.6: Apoyo Fijo y sus propiedades de contorno.
Figura 8.7: Apoyo Empotrado y sus propiedades de contorno.
tiene grados de libertad sin embargo en el sentido de fuerzas internas contiene
tres tanto en el eje x , en el eje y el momento Mzz .
Apoyos Mviles.
apoyos que se representa en el programa con un tringulo y un crculo perpendicular y tangente al mismo contiene grados dos libertad en el eje X y la
rotacin i sin embargo en el sentido de fuerzas internas contiene uno en el eje
y.
Figura 8.8: Apoyo Mvil y sus propiedades de contorno.
Clase Apoyos dibujo. esta clase fu creada para poder establecer los grficos
en el lienzo de tkinter ya que se tenia que ahorrar lineas de cdigo y para su
mejor manejo de los conceptos a la hora de programar,la clase necesaria para
tal fin en este sentido vemos la linea de cdigo del paquete nodos.
152
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
class Apoyos () :
def __init__ ( self , evento , lienzo ) :
self . evento = evento
self . lienzo = lienzo
def Aempotrados ( self ) :
self . lienzo . create_line ( self . evento .x , self . evento .y ,
self . evento .x , self . evento . y + 10 , fill = ' blue ')
self . lienzo . create_line ( self . evento .x , self . evento . y + 10 ,
self . evento . x - 10 , self . evento . y + 10 , fill = ' blue ')
self . lienzo . create_line ( self . evento .x , self . evento . y + 10 ,
self . evento . x + 10 , self . evento . y + 10 , fill = ' blue ')
def Afijos ( self ) :
self . lienzo . create_line ( self . evento .x , self . evento .y ,
self . evento . x - 10 , self . evento . y + 10 , fill = ' blue ')
self . lienzo . create_line ( self . evento .x , self . evento .y ,
self . evento . x + 10 , self . evento . y + 10 , fill = ' blue ')
self . lienzo . create_line ( self . evento . x - 10 , self . evento . y + 10 ,
self . evento . x + 10 , self . evento . y + 10 , fill = ' blue ')
def Amoviles ( self ) :
self . lienzo . create_line ( self . evento .x , self . evento .y ,
self . evento . x -5 , self . evento . y +5 , fill = ' blue ')
self . lienzo . create_line ( self . evento .x , self . evento .y ,
self . evento . x +5 , self . evento . y +5 , fill = ' blue ')
self . lienzo . create_line ( self . evento . x -5 , self . evento . y +5 ,
self . evento . x +5 , self . evento . y +5 , fill = ' blue ')
self . lienzo . create_oval ( self . evento . x -2 , self . evento . y +5 ,
self . evento . x +2 , self . evento . y + 10 , fill = ' blue ')
programacin en el entorno grfico.
en el entorno grfico nos servimos del paquete apoyos para poder dibujar y
representar en arreglos necesarios para poder establecer datos para su respectivo algoritmizacin en el programa en general.
153
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
def apoyos_general ( evento ) :
global tipo_apoyos
global codigo_apoyos
global tipo_apoyos1
global codigo_apoyos1
if selec . get () = = 1 :
Apoyos ( evento , dibujo ). Aempotrados ()
tipo_apoyos = tipo_apoyos + [ ( evento . x - 50 ) / 50 ,( 550 - evento . y ) / 50 ]
codigo_apoyos = codigo_apoyos + [1 ,1 , 1 ]
elif selec . get () = = 2 :
Apoyos ( evento , dibujo ). Afijos ()
tipo_apoyos = tipo_apoyos + [ ( evento . x - 50 ) / 50 ,( 550 - evento . y ) / 50 ]
codigo_apoyos = codigo_apoyos + [1 ,1 , 0 ]
elif selec . get () = = 3 :
Apoyos ( evento , dibujo ). Amoviles ()
tipo_apoyos = tipo_apoyos + [ ( evento . x - 50 ) / 50 ,( 550 - evento . y ) / 50 ]
codigo_apoyos = codigo_apoyos + [0 ,1 , 0 ]
AP = array ( tipo_apoyos )
AM = array ( codigo_apoyos )
codigo_apoyos1 = AM . reshape ( len ( AM ) /3 , 3 )
tipo_apoyos1 = AP . reshape ( len ( AP ) /2 , 2 )
print tipo_apoyos1
print codigo_apoyos1
ventana_apoyos = Toplevel ()
# --- --- --- --- ---- --- --- ---- --- --- --- ---- --- --- --- ---- --- --- --- ---- --- --- Im_Fijos = PhotoImage ( file = ' fijo . gif ')
Im_Empotrados = PhotoImage ( file = ' empotrado . gif ')
Im_Moviles = PhotoImage ( file = ' movil . gif ')
# --- --- --- --- --- --- ---- --- --- --- --- --- ---- --- --- --- --- --- --- ---- --- --- --ventana_apoyos . title ( ' Tipo - Apoyos ')
selec = IntVar ()
Texto_Empotrados = Label ( ventana_apoyos , text = ' Apoyo Empotrado ' ). place ( x = 100
Texto_Fjos = Label ( ventana_apoyos , text = ' Apoyo Fijo ' ). place ( x = 100 , y = 60 )
154
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Texto_Moviles = Label ( ventana_apoyos , text = ' Apoyo Moviles ' ). place ( x = 100 , y = 10
Empotrados = Radiobutton ( ventana_apoyos , image = Im_Empotrados , value =1 , variabl
Empotrados . place ( x = 20 , y = 20 )
Fijos = Radiobutton ( ventana_apoyos , image = Im_Fijos , value =2 , variable = selec )
Fijos . place ( x = 20 , y = 60 )
Moviles = Radiobutton ( ventana_apoyos , image = Im_Moviles , value =3 , variable = sele
Moviles . place ( x = 20 , y = 100 )
# --- ---- --- ---- ---- --- ---- --- ---- ---- --- ---- ---- --- ---- ---- --- ---- --- #
BOTON PARA INCLUIR APOYOS EN LOS PUNTOS
# --- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- -
botton_01 = Button ( ventana_apoyos , text = ' Ejecutar ' , fg = ' blue ' ). place ( x = 200 , y =
dibujo . bind ( ' < Button -1 > ' , apoyos_general )
ventana_apoyos . geometry ( ' 400x300 + 0 + 0 ')
ventana_apoyos . minsize ( 400 , 300 )
ventana_apoyos . mainloop ()
155
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 8.9: Apoyos en el cuadro de dilogo del Femax.
8.1.2.
Matriz de Rigidez.
Esta subrutina se encarga del clculo y acoplamiento de la matriz de rigidez
tanto de la general como la matriz reducida,este sistema de acoplamiento fue
resuelta con la matriz de ordenamiento o matriz i que es un sistema de arreglo
basado en los grados de libertad y el numero de barras de anlisis la cual
vemos en la siguiente formula basado en la figura 7.10.
156
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 8.10: Marco de Referencia.
Este mtodo ordena los grados de libertad segn el sentido de la barra la cual
nos dan la idea de cuales son los elementos de K11 , K12 , K21 , K22 , la cual est
descrito en los puntos de coordenadas globales respecto del sistema de barras.
1 2 3
a 1 d
b 2 e
c 3 f
1 4 4
2 5 5
Grados de Libertad
(8.3)
3 6 6
1
1
La frmula general de ensamblaje tiene mucho que ver con el sentido de la
Esta forma de acoplamiento se encuentra en el libro de Tena Colunga Anlisis Estructural con M-
todos Matriciales a esta forma de acoplamiento generalizacin de la matriz de acoplamiento elemento
157
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
barra ya que en este sentido en la cual se ordena la matriz de rigidez total;la
frmula general de ensamblaje seria de la siguiente manera:
KT {i [i, n], i [j, n]} Kin [i, j]
(8.4)
Donde el smbolo significa ensambla dentro o,explicado de otra manera
al valor ya existente.En otras palabras,el coeficiente de rigidez Kijn se ensambla
en el rengln (i, n),columna (j, n) de la matriz de rigidez global[K].como se
ilustra en la siguiente figura:
Figura 8.11: Procedimiento del ensamblaje global por medio del mtodo i
158
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Programacin del Mtodo i . Se muestra en el cdigo fuente del Femax en
python para el sistema de acoplamiento usando el mtodo.
# -- -- --- -- --- -- --- -- -- --- -- --- -- --- -- --- -- -- --- -- --- -- --- -- -- --- -- --- -- -#
MATRIZ DE ORDENAMIENTO - - - - - > PI
# -- -- --- -- --- -- --- -- -- --- -- --- -- --- -- --- -- -- --- -- --- -- --- -- -- --- -- --- -- -for i in range ( len ( C )) :
ordenamiento [ i ] = C [ i ]
print ordenamiento
for i in range ( numero_datos ) :
for j in range ( len ( C )) :
if ordenamiento [ j ] [ 0 ] = = nodos_espacio [ i ] [ 0 ] and
ordenamiento [ j ] [ 1 ] = = nodos_espacio [ i ] [ 1 ] :
ordenamiento_primario . append ( j )
print ordenamiento_primario
ordenamiento2 = array ( ordenamiento_primario )
numero_filas = len ( ordenamiento2 ) / 2
ultimo_ordenamiento = ordenamiento2 . reshape ( numero_filas , 2 )
P_01S = ultimo_ordenamiento + 1
P_02S = P_01S * 3
WQ = array ( [ range ( P_02S [ i ] [ 0 ] -3 , P_02S [ i ] [ 0 ] ) for i in range ( len ( P_02S )) ] )
WR = array ( [ range ( P_02S [ i ] [ 1 ] -3 , P_02S [ i ] [ 1 ] ) for i in range ( len ( P_02S )) ] )
O=[]
for i in range ( len ( WQ )) :
for j in range ( len ( WR )) :
if i = = j :
O = O + [ array ( [ WQ [ i ] , WR [ j ] ] ). reshape ( 6 ) ]
P_03S = array ( O )
matriz_ordenamiento = transpose ( P_03S )
print matriz_ordenamiento
Veremos Ahora el clculo de la Matriz de Rigidez y su respectivo globalizacin
de la misma usando una clase y un sistema de librera llamado Matrix2D, la
cual ser clave para el clculo en forma rpida de la matriz de rigidez total y la
159
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Matriz simplificada.
from numpy import *
from numpy . linalg import *
class Matrix2D () :
def __init__ ( self ,A ,E ,I , L ) :
self . A = A
self . E = E
self . I = I
self . L = L
self . Kt = zeros (( 6 , 6 ))
def constructor ( self ) :
self . Kt [ 0 ] [ 0 ] = self . Kt [ 3 ] [ 3 ] = ( self . A * self . E ) / float ( self . L )
self . Kt [ 0 ] [ 3 ] = self . Kt [ 3 ] [ 0 ] = - ( self . A * self . E ) / float ( self . L )
self . Kt [ 1 ] [ 1 ] = self . Kt [ 4 ] [ 4 ] = ( 12 * self . E * self . I ) / float (( self . L * * 3 ))
self . Kt [ 4 ] [ 1 ] = self . Kt [ 1 ] [ 4 ] = - ( 12 * self . E * self . I ) / float (( self . L * * 3 ))
self . Kt [ 1 ] [ 2 ] = self . Kt [ 2 ] [ 1 ] = self . Kt [ 1 ] [ 5 ] = self . Kt [ 5 ] [ 1 ] =
( 6 * self . E * self . I ) / float (( self . L * * 2 ))
self . Kt [ 4 ] [ 2 ] = self . Kt [ 2 ] [ 4 ] = self . Kt [ 4 ] [ 5 ] = self . Kt [ 5 ] [ 4 ] =
- ( 6 * self . E * self . I ) / float (( self . L * * 2 ))
self . Kt [ 2 ] [ 2 ] = self . Kt [ 5 ] [ 5 ] = 4 * self . E * self . I / float (( self . L ))
self . Kt [ 2 ] [ 5 ] = self . Kt [ 5 ] [ 2 ] = 2 * self . E * self . I / float (( self . L ))
return self . Kt
class Transformada () :
def __init__ ( self , x1 , y1 , x2 , y2 ) :
self . x1 = x1
self . x2 = x2
self . y1 = y1
self . y2 = y2
self . L = sqrt (( self . x2 - self . x1 ) * * 2 + ( self . y2 - self . y1 ) * * 2 )
160
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
self . h = self . y2 - self . y1
self . d = self . x2 - self . x1
def T ( self ) :
S = self . h / float ( self . L )
C = self . d / float ( self . L )
t = zeros (( 6 , 6 ))
t[0][0]=t[1][1]=t[3][3]=t[4][4]=C
t[0][1]=t[3][4]=S
t[1][0]=t[4][3]=-S
t[2][2]=t[5][5]=1
return t
# -- -- --- -- --- -- --- -- -- --- -- --- -- --- -- --- -- -- --- -- --- -- --- -- -- --- -- --- -- --- -- #
#
ACOPLAMIENTO FINAL DE LA MATRIZ DE RIGIDEZ TOTAL DE LA ESTRUC
k [ PI [ i ][ n ] , PI [ j ][ n ]] < - - - - - - - - - - - - - - - - - - K { n } [ i ][ n ]
# -- -- --- -- --- -- --- -- -- --- -- --- -- --- -- --- -- -- --- -- --- -- --- -- -- --- -- --- -- --- -- KT = zeros (( 3 * len ( C ) , 3 * len ( C )))
for i in range ( 6 ) :
for j in range ( 6 ) :
for n in range ( len ( K_Rtodos )) :
KT [ matriz_ordenamiento [ i ] [ n ] ] [ matriz_ordenamiento [ j ] [ n ] ]
= KT [ matriz_ordenamiento [ i ] [ n ] ] [ matriz_ordenamiento [ j ] [ n ] ] + K_R
print KT
# -- -- --- -- --- -- --- -- -- --- -- --- -- --- -- --- -- -- --- -- --- -- --- -- -- --- -- --- -- --- -- #
#
CALCULO DE MATRIZ REDUCIDA --> Ki
# -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- --- -- GDL01 = [ ]
for i in range ( len ( C )) :
for j in range ( len ( tipo_apoyos1 )) :
if ordenamiento [ i ] [ 0 ] = = tipo_apoyos1 [ j ] [ 0 ] and ordenamiento [ i ] [ 1 ]
161
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
= = tipo_apoyos1 [ j ] [ 1 ] :
GDL01 . append ( i )
GDL02 = array ( GDL01 )
GDL03 = GDL02 + 1
GDL04 = GDL03 * 3
MQ = array ( [ range ( GDL04 [ i ] -3 , GDL04 [ i ] ) for i in range ( len ( GDL04 )) ] )
EL = MQ * codigo_apoyos1
K_reducida_inicial = delete ( KT , EL , axis = 0 )
K_reducida_final = delete ( K_reducida_inicial , EL , axis = 1 ) # calculo de K_reduci
print K_reducida_final
Antes del acoplamiento es bueno saber que las matrices tendrn que estar
sujetas o calculadas en el sistema global la cual se calcula por medio de las
siguientes formulas las cuales son establecidas por medio de las siguientes
formulas.
AE
L
0
12 EI
6 EI
L3
L2
0
6 EI
4 EI
L2
L
Ki =
AE
L
0
0
0
12 EI
6 EI
L3
L2
0
6 EI
2 EI
L2
L
162
AE
L
12 EI
L3
6 EI
L2
6 EI
L2
2 EI
L
AE
L
12 EI
L3
6 EI
L2
6 EI
L2
4 EI
L
(8.5)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
La matriz antes mencionada en la frmula es establecida como matriz de elementos locales es decir para ejes que sean paralelos a la barra con la cual
nosotros sabemos que en los problemas de anlisis estructural estn geomtricamente basados en barras conectadas en forma geomtricas complejas pues
para ello nos basaremos en la matriz de transformacin:
cos()
sen() 0
sen() cos() 0
0
0
0
0
0
1
0
0
0
T =
0
0
0 cos() sen() 0
0
0
0 sen() cos() 0
0
0
0
0
0
1
(8.6)
La frmula para llevarlo la matriz local a trminos globales de la matriz general
o matriz de rigidez total est basado en:
Kg = T T Ki T
8.1.3.
(8.7)
Clculo de Deformaciones.
Esta subrutina se encarga del clculo de las deformaciones globales y deformaciones locales la cual nos dan la oportunidad de aplicar las funciones de
deformadas por medio de las funciones de interpolacin o funciones de forma
que se usan para hallar las grficas que son halladas por medio de la suma y
multiplicacin de las deformadas en los grados de libertad. 1 , v1 , u1 , 2 , v2 , u2
ug = N1 u1 + N2 v1 + N3 1 + N4 u2 + N5 v2 + N6 2
163
(8.8)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 8.12: Tabla de Resultado de la Matriz de Rigidez Total Femax.
As que se habr forma de clculo respecto de las ecuaciones generales y para
poder hallar las ecuaciones se deben conocer las funciones ya estudiadas en
anteriores captulos sobre todo en el calculo de vigas:
x
N1 (x, l) = 1
l
x 3
x 2
N2 (x, l) = 2( ) 3( ) + 1
l
l
x
N3 (x, l) = x(1 )2
l
x
N4 (x, l) =
l
x 2
x 3
N5 (x, l) = 3( ) 2( )
l
l
x2
x
N6 (x, l) = (1 )
l
l
(8.9)
(8.10)
(8.11)
(8.12)
(8.13)
(8.14)
El clculo de las deformaciones son dadas por las siguientes formulas:
1
KD
Fi = ui
164
(8.15)
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
# ............................................................................
#
#
Programacion de Calculo de Fuerzas Puntuales
# -- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- -esquema_fuerzasp = [ ]
for i in range ( len ( ordenamiento )) :
for j in range ( len ( Puntos_AFuerzasP1 )) :
if ordenamiento [ i ] [ 0 ] = =
Puntos_AFuerzasP1 [ j ] [ 0 ] and ordenamiento [ i ] [ 1 ] = = Puntos_AFuerzasP1
esquema_fuerzasp . append ( i )
print esquema_fuerzasp
esquema_fuerzasp1 = array ( esquema_fuerzasp )
esquema_fuerzasp2 = ( esquema_fuerzasp1 + 1 ) * 3
WR = array ( [ range ( esquema_fuerzasp2 [ i ] 3 , esquema_fuerzasp2 [ i ] ) for i in range ( len ( esquema_fuerzasp2 )) ] )
WQ = WR . reshape ( len ( WR ) *3 , 1 )
Fuerzas_puntuales = zeros (( len ( ordenamiento ) *3 , 1 ))
Puntos_FuerzasP2 = Puntos_FuerzasP1 . reshape ( len ( Puntos_FuerzasP1 ) *3 , 1 )
for i in range ( len ( Puntos_FuerzasP1 ) * 3 ) :
Fuerzas_puntuales [ WQ [ i ] ] = Fuerzas_puntuales [ WQ [ i ] ] + Puntos_FuerzasP2 [ i ]
print Fuerzas_puntuales
# -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- --- -- --- -- --- -- --- -- --- -- --- -- --- -- #
#
Programacion de calculo de Fuerzas Distribuidas
# -- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- -F5 = F4 . reshape ( len ( F4 ) *2 , 2 )
esquema_FuerzasD = [ ]
for i in range ( len ( ordenamiento )) :
for j in range ( len ( F5 )) :
if ordenamiento [ i ] [ 0 ] = = F5 [ j ] [ 0 ] and
ordenamiento [ i ] [ 1 ] = = F5 [ j ] [ 1 ] :
esquema_FuerzasD . append ( i )
165
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
esquema_FuerzasD1 = array ( esquema_FuerzasD )
esquema_FuerzasD2 = ( esquema_FuerzasD1 + 1 ) * 3
WU = array ( [ range ( esquema_FuerzasD2 [ i ] -3 ,
esquema_FuerzasD2 [ i ] ) for i in range ( len ( esquema_FuerzasD2 )) ] )
WP = WU . reshape ( len ( WU ) *3 , 1 )
print ' este es la clave '+ str ( WP )
Fuerzas_Distribuidas = zeros (( len ( ordenamiento ) *3 , 1 ))
Fuerzas_DD = [ ]
for i in range ( len ( longitudesFD )) :
Fuerzas_DD = Fuerzas_DD +
[ [0 , Valores_FD [ i ] * ( longitudesFD [ i ] ) / float ( 2 ) ,
Valores_FD [ i ] * ( longitudesFD [ i ] * * 2 ) / float ( 12 ) ] ,
[0 , Valores_FD [ i ] * ( longitudesFD [ i ] ) / float ( 2 ) ,
- Valores_FD [ i ] * ( longitudesFD [ i ] * * 2 ) / float ( 12 ) ] ]
FuerzasDD1 = array ( Fuerzas_DD )
FuerzasDD2 = FuerzasDD1 . reshape ( len ( FuerzasDD1 ) *3 , 1 )
for i in range ( len ( FuerzasDD2 )) :
Fuerzas_Distribuidas [ WP [ i ] ] = Fuerzas_Distribuidas [ WP [ i ] ] + FuerzasDD2 [ i ]
# -- -- -- --- -- -- -- --- -- -- --- -- -- -- --- -- -- --- -- -- -- --- -- -- --- -- -- -- --- -- -- --- -- #
#
Programacion de Fuerzas Nodales Equivalentes
# -- -- -- -- --- -- -- -- --- -- -- -- --- -- -- -- --- -- -- -- --- -- -- -- --- -- -- -- --- -- -- -- --- -Fuerzas_nequivalentes = Fuerzas_puntuales - Fuerzas_Distribuidas
Fuerzas_NodD = delete ( Fuerzas_nequivalentes , EL , axis = 0 )
print Fuerzas_NodD
# -- -- -- -- -- --- -- -- -- -- --- -- -- -- -- -- --- -- -- -- -- --- -- -- -- -- --- -- -- -- -- -- --- -- -#
#
Calculo de las deformaciones Nodales
# -- -- -- -- -- --- -- -- -- -- --- -- -- -- -- -- --- -- -- -- -- --- -- -- -- -- --- -- -- -- -- -- --- -- -Deformaciones01 = dot ( inv ( K_reducida_final ) , Fuerzas_NodD )
print Deformaciones01
WUP = range (0 , len ( Fuerzas_nequivalentes ))
166
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
WUP1 = array ( WUP )
WUP2 = WUP1 . reshape ( len ( WUP ) , 1 )
WUP3 = delete ( WUP2 , EL , axis = 0 )
Deformaciones_totales = zeros (( len ( ordenamiento ) *3 , 1 ))
for i in range ( len ( WUP3 )) :
Deformaciones_totales [ WUP3 [ i ] ] =
Deformaciones_totales [ WUP3 [ i ] ] + Deformaciones01 [ i ]
print Deformaciones_totales
Figura 8.13: Generacin de tabla de Resultados de la tabla de las deformadas Femax.
8.1.4.
Clculo de Fuerzas Internas.
Esta subrutina es para el clculo de las fuerzas internas que en este caso es por
barra la cual nos dan la oportunidad de hallar el clculo de las fuerzas internas
por barra:
0
ui = T ui
(8.16)
K i (T ui ) = Fint x Barra
(8.17)
167
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
# ----------------------------------------------#
#
Calculo de Fuerzas Internasx - Barras
#
# -----------------------------------------------us01 = transpose ( matriz_ordenamiento )
ordenamiento_fuerzasU = [ ]
for i in range ( len ( us01 )) :
sx = us01 [ i ] . reshape (1 , 6 )
ordenamiento_fuerzasU = ordenamiento_fuerzasU + [ sx ]
ordenamiento_ff = array ( ordenamiento_fuerzasU ).
reshape ( len ( ordenamiento_fuerzasU ) , 6 )
SMR = array ( [ [ 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 ,
0 . 000000 , 0 . 000000 ]
for i in range ( len ( ordenamiento_ff )) ] )
for i in range ( len ( ordenamiento_ff )) :
for j in range ( 6 ) :
SMR [ i ] [ j ] = SMR [ i ] [ j ] +
Deformaciones_totales [ ordenamiento_ff [ i ] [ j ] ]
print SMR
SMRWW = [ ]
for i in range ( len ( ordenamiento_ff )) :
SMRWW = SMRWW + [ dot ( T [ i ] , SMR [ i ] . reshape (6 , 1 )) ]
SMRWW1 = array ( SMRWW )
SMRWW2 = SMRWW1 . reshape ( len ( SMRWW ) , 6 )
print SMRWW2
resultados_fuerzapb = [ ]
for i in range ( len ( SMR )) :
resultados_fuerzapb = resultados_fuerzapb +
[ dot ( K_Rtodos [ i ] , SMR [ i ] . reshape (6 , 1 )) ]
print resultados_fuerzapb
restar_altotal = Fuerzas_nequivalentes - Fuerzas_puntuales
SMR1 = array ( [ [ 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 ,
168
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
0 . 000000 , 0 . 000000 ]
for i in range ( len ( ordenamiento_ff )) ] )
WNN = WP . reshape ( len ( WP ) / 6 . 00 , 6 . 00 )
for i in range ( len ( ordenamiento_ff )) :
for j in range ( len ( WNN )) :
if ordenamiento_ff [ i ] [ 0 ] = = WNN [ j ] [ 0 ] and
ordenamiento_ff [ i ] [ 1 ] = = WNN [ j ] [ 1 ] and
ordenamiento_ff [ i ] [ 2 ] = = WNN [ j ] [ 2 ] and
ordenamiento_ff [ i ] [ 3 ] = = WNN [ j ] [ 3 ] and
ordenamiento_ff [ i ] [ 4 ] = = WNN [ j ] [ 4 ] and
ordenamiento_ff [ i ] [ 5 ] = = WNN [ j ] [ 5 ] :
SMR1 [ i ] [ 0 ] = ordenamiento_ff [ i ] [ 0 ]
SMR1 [ i ] [ 1 ] = ordenamiento_ff [ i ] [ 1 ]
SMR1 [ i ] [ 2 ] = ordenamiento_ff [ i ] [ 2 ]
SMR1 [ i ] [ 3 ] = ordenamiento_ff [ i ] [ 3 ]
SMR1 [ i ] [ 4 ] = ordenamiento_ff [ i ] [ 4 ]
SMR1 [ i ] [ 5 ] = ordenamiento_ff [ i ] [ 5 ]
else :
SMR1 [ i ] [ 0 ] = 0 . 000000000
SMR1 [ i ] [ 1 ] = 0 . 000000000
SMR1 [ i ] [ 2 ] = 0 . 000000000
SMR1 [ i ] [ 3 ] = 0 . 000000000
SMR1 [ i ] [ 4 ] = 0 . 000000000
SMR1 [ i ] [ 5 ] = 0 . 000000000
SMR2 = array ( [ [ 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 ,
0 . 000000 , 0 . 000000 ]
for i in range ( len ( ordenamiento_ff )) ] )
for i in range ( len ( ordenamiento_ff )) :
for j in range ( 6 ) :
SMR2 [ i ] [ j ] = SMR2 [ i ] [ j ] + restar_altotal [ SMR1 [ i ] [ j ] ]
fuerzas_bfinal = [ ]
for i in range ( len ( ordenamiento_ff )) :
169
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
fuerzas_bfinal = fuerzas_bfinal + [ resultados_fuerzapb [ i ]
- SMR2 [ i ] . reshape (6 , 1 ) ]
print fuerzas_bfinal
Figura 8.14: Tabla de Resultados para el clculo de Fuerzas Internas del programa
Femax.
8.1.5.
Grficos y Tablas de Resultados.
Esta subrutina es encargada del clculo de los grficos de los esquemas usados en los acapites anteriores de las subrutinas anteriores ,esta parte del programa esta programada con la librera de Matplotlib,una librera usada para
grficos de gran capacidad la cual nos ayudaran para graficar las funciones de
Cortantes,Momentos,Deformadas y giros, la cual queda establecida por medio
de las funciones de forma.
170
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
ui =N1 (u1 ) + N2 (v1 ) + N3 (1 ) + N4 (u2 ) + N5 (v2 ) + N6 (3 ) + Ri (x, l) (8.18)
i =
N1
N2
N3
N4
N5
(u1 ) +
(v1 ) +
(1 ) +
(u2 ) +
(v2 )
x
x
x
x
x
N6
0
+
(2 ) + Ri (x, l)
x
2u
2 N1
2 N2
2 N3
=
(u
)
+
(v
)
+
(1 ) +
1
1
x2
x2
x2
x2
2 N6
00
(
)
+
R
(x,
l)
+
2
i
x2
3 N1
3 N2
3 N3
3u
(u
)
+
(v
)
+
(1 ) +
Vi =EI 3 =
1
1
x
x3
x3
x3
3 N5
3 N6
000
+
(v
)
+
(2 ) + Ri (x, l)
2
3
3
x
x
Mi =EI
(8.19)
2 N4
2 N5
(u
)
+
(v2 )
2
x2
x2
(8.20)
3 N4
(u2 )
x3
(8.21)
El algoritmo para la graficacin de la misma se propone en el cdigo en el
siguiente item.
# --------- ---------- ---------- ---------- --------- -------#
#
Algoritmo de Graficas de u , a_ { i } , M_ { i } , V_ { i }
#
# --------- ---------- ---------- ---------- --------- -------X=[]
for i in range ( len ( ordenamiento_ff )) :
xi = arange (0 , longitudes [ i ] ,0 . 1 )
X = X + [ xi ]
print X
VVUW = nodos_espacio . reshape ( len ( nodos_espacio ) /2 , 4 )
print ' esta mierda es : ' , VVUW
P0 = [ ]
FMMUT = zeros (( len ( VVUW ) , 1 ))
for i in range ( len ( VVUW )) :
for j in range ( len ( F4 )) :
if VVUW [ i ] [ 0 ] = = F4 [ j ] [ 0 ] and
VVUW [ i ] [ 1 ] = = F4 [ j ] [ 1 ]
and VVUW [ i ] [ 2 ] = = F4 [ j ] [ 2 ] and
171
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
VVUW [ i ] [ 3 ] = = F4 [ j ] [ 3 ] :
FMMUT [ i ] [ 0 ] = - Valores_FD [ j ]
print FMMUT
F_DD = FMMUT
print F_DD
Form = [ ]
for i in range ( len ( ordenamiento_ff )) :
Form = Form + [ Forma_GG ( X [ i ] , longitudes [ i ] ,
C3_Materiales [ i ] [ 1 ] , C3_Materiales [ i ] [ 0 ] , F_DD [ i ] ) ]
DEFF = [ ]
for i in range ( len ( ordenamiento_ff )) :
DEFF = DEFF + [ Form [ i ] . N_1 () * SMRWW2 [ i ] [ 0 ] + Form [ i ] . N_2 ()
* SMRWW2 [ i ] [ 1 ] +
Form [ i ] . N_3 () * SMRWW2 [ i ] [ 2 ] + Form [ i ] . N_4 ()
* SMRWW2 [ i ] [ 3 ] +
Form [ i ] . N_5 () * SMRWW2 [ i ] [ 4 ] + Form [ i ] . N_6 ()
* SMRWW2 [ i ] [ 5 ] +
Form [ i ] . R_1 () ]
print DEFF
DEFG = [ ]
for i in range ( len ( ordenamiento_ff )) :
DEFG = DEFG + [ ( Form [ i ] . W_1 () * SMRWW2 [ i ] [ 0 ]
+ Form [ i ] . W_2 () * SMRWW2 [ i ] [ 1 ] + Form [ i ] . W_3 ()
* SMRWW2 [ i ] [ 2 ]
+ Form [ i ] . W_4 () * SMRWW2 [ i ] [ 3 ] + Form [ i ] . W_5 ()
* SMRWW2 [ i ] [ 4 ]
+ Form [ i ] . W_6 () * SMRWW2 [ i ] [ 5 ] + Form [ i ] . R_2 ()) ]
print DEFG
Momenx = [ ]
for i in range ( len ( ordenamiento_ff )) :
Momenx = Momenx + [ - 1 * ( Form [ i ] . M_1 () * SMRWW2 [ i ] [ 0 ]
+ Form [ i ] . M_2 () * SMRWW2 [ i ] [ 1 ] + Form [ i ] . M_3 ()
* SMRWW2 [ i ] [ 2 ]
+ Form [ i ] . M_4 () * SMRWW2 [ i ] [ 3 ] + Form [ i ] . M_5 ()
172
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
* SMRWW2 [ i ] [ 4 ]
+ Form [ i ] . M_6 () * SMRWW2 [ i ] [ 5 ] + Form [ i ] . R_3 ()) ]
print Momenx
Cort = [ ]
for i in range ( len ( ordenamiento_ff )) :
Cort = Cort + [ Form [ i ] . V_1 () * SMRWW2 [ i ] [ 0 ] +
Form [ i ] . V_2 () * SMRWW2 [ i ] [ 1 ] + Form [ i ] . V_3 ()
* SMRWW2 [ i ] [ 2 ] +
Form [ i ] . V_4 () * SMRWW2 [ i ] [ 3 ] + Form [ i ] . V_5 ()
* SMRWW2 [ i ] [ 4 ] +
Form [ i ] . V_6 () * SMRWW2 [ i ] [ 5 ] + Form [ i ] . R_4 () ]
print Cort
print longitudes
# -------------------------------------------------#
#
Algoritmo de Presentacion de Resultados .
#
# -------------------------------------------------def Diagramasfinales () :
def Diagrama () :
fiig = figure ( 1 )
TDef = fiig . add_subplot ( 221 )
title ( r ' $D_ { i } $ ')
grid ( True )
xlabel ( r ' $x_ { i } $ ')
ylabel ( r '$ \ delta$ ')
TDef . plot ( X [ m . get () ] , DEFF [ m . get () ] )
TGir = fiig . add_subplot ( 222 )
title ( r '$ \ theta_ { i } $ ')
xlabel ( r ' $x_ { i } $ ')
ylabel ( r '$ \ theta_ { i } $ ')
grid ( True )
TGir . plot ( X [ m . get () ] , DEFG [ m . get () ] )
TMom = fiig . add_subplot ( 223 )
173
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
title ( r ' $M_ { i } $ ')
xlabel ( r ' $x_ { i } $ ')
ylabel ( r ' $M_ { i } $ ')
grid ( True )
TMom . plot ( X [ m . get () ] , Momenx [ m . get () ] )
TCort = fiig . add_subplot ( 224 )
title ( r ' $V_ { i } $ ')
xlabel ( r ' $x_ { i } $ ')
ylabel ( r ' $V_ { i } $ ')
grid ( True )
TCort . plot ( X [ m . get () ] , Cort [ m . get () ] )
show ()
ven01 = Toplevel ()
ven01 . title ( ' Diagramas de las Barras ')
textoMM = Label ( ven01 , text = ' Elija la Barra : ' ,
fg = ' blue ' ). place ( x = 20 , y = 20 )
m = IntVar ()
EntradaMM = Entry ( ven01 ,
textvariable =m , width = 10 ). place ( x = 100 , y = 20 )
BotonMM = Button ( ven01 , text = ' ejecuta ' ,
command = Diagrama ). place ( x = 200 , y = 20 )
ven01 . mainloop ()
def Fuer_Int () :
def VFuerzas01 () :
ventana_alterna01 = Toplevel ()
texto = Label ( ventana_alterna01 , text = fuerzas_bfinal
[ n . get () ] ). place ( x = 20 , y = 20 )
ventana_alterna01 . title ( ' Fuerzas Int por Barras . ')
ventana_alterna01 . mainloop ()
ventana_fuerzasint = Toplevel ()
texto_01 = Label ( ventana_fuerzasint ,
text = ' Elegir Barra : ' ). place ( x = 20 , y = 20 )
n = IntVar ()
entrada01 = Entry ( ventana_fuerzasint ,
textvariable =n , width = 5 ). place ( x = 100 , y = 20 )
174
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Boton01 = Button ( ventana_fuerzasint , text = ' ejecuta ' ,
command = VFuerzas01 ). place ( x = 150 , y = 20 )
ventana_fuerzasint . mainloop ()
def Deformaciones_FFU () :
ventana_Deformaciones = Toplevel ()
for i in range ( len ( Deformaciones_totales )) :
Label ( ventana_Deformaciones ,
text = ' Para el Punto : ' ). place ( x = 20 , y = i * 20 + 20 )
Label ( ventana_Deformaciones ,
text = i + 1 ). place ( x = 150 , y = i * 20 + 20 )
Label ( ventana_Deformaciones ,
text = Deformaciones_totales [ i ] ). place ( x = 180 , y = i * 20 + 20 )
ventana_Deformaciones . mainloop ()
def Matriz_RRIG () :
ventana_matrix = Toplevel ()
ventana_matrix . geometry ( ' 600x600 + 0 + 0 ')
ventana_matrix . title ( ' Matriz de Rigidez ')
textos = Canvas ( ventana_matrix , width = 400 , height = 400 ,
scrollregion = (0 ,0 , 2000 , 2000 ) ,
highlightcolor = ' black ' , relief = ' solid ' , background = ' white ')
for i in range ( len ( KT )) :
for j in range ( len ( KT )) :
textos . create_text ( 100 * i + 40 , 100 * j + 40 , text = KT [ i ] [ j ] )
for i in range ( len ( KT )) :
textos . create_text ( 100 * i + 40 , 10 , text = i +1 , fill = ' red ')
textos . create_text ( 10 , 100 * i + 40 , text = i +1 , fill = ' red ')
textos01 = Label ( ventana_matrix ,
text = ' CALCULO DE MATRIZ GENERAL ' , fg = ' red ')
textos01 . grid ( row =1 , column = 3 )
scrollY = Scrollbar ( ventana_matrix ,
orient = VERTICAL , command = textos . yview )
scrollY . grid ( row =1 , column =2 , sticky = N + S )
scrollX = Scrollbar ( ventana_matrix ,
175
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
orient = HORIZONTAL , command = textos . xview )
scrollX . grid ( row =2 , column =1 , sticky = E + W )
textos [ ' xscrollcommand '] = scrollX . set
textos [ ' yscrollcommand '] = scrollY . set
textos . grid ( row =1 , column = 1 )
ventana_matrix . mainloop ()
def Matriz_DMM () :
ventana_matrixD = Toplevel ()
ventana_matrixD . geometry ( ' 600x600 + 0 + 0 ')
ventana_matrixD . title ( ' Matriz de Rigidez Simplificada ')
textos1 = Canvas ( ventana_matrixD , width = 400 , height = 400 ,
scrollregion = (0 ,0 , 2000 , 2000 ) ,
highlightcolor = ' black ' , relief = ' solid ' , background = ' white ')
for i in range ( len ( K_reducida_final )) :
for j in range ( len ( K_reducida_final )) :
textos1 . create_text ( 100 * i + 40 , 100 * j + 40 ,
text = K_reducida_final [ i ] [ j ] )
for i in range ( len ( K_reducida_final )) :
textos1 . create_text ( 100 * i + 40 , 10 ,
text = i +1 , fill = ' red ')
textos1 . create_text ( 10 , 100 * i + 40 ,
text = i +1 , fill = ' red ')
textos02 = Label ( ventana_matrixD ,
text = ' CALCULO DE MATRIZ SIMPLIFICADA ' , fg = ' red ')
textos02 . grid ( row =1 , column = 3 )
scrollY = Scrollbar ( ventana_matrixD , orient = VERTICAL ,
command = textos1 . yview )
scrollY . grid ( row =1 , column =2 , sticky = N + S )
scrollX = Scrollbar ( ventana_matrixD , orient = HORIZONTAL ,
command = textos1 . xview )
scrollX . grid ( row =2 , column =1 , sticky = E + W )
textos1 [ ' xscrollcommand '] = scrollX . set
textos1 [ ' yscrollcommand '] = scrollY . set
textos1 . grid ( row =1 , column = 1 )
176
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
ventana_matrixD . mainloop ()
ventana_Resultados = Toplevel ()
ventana_Resultados . geometry ( ' 600x400 + 0 + 0 ')
ventana_Resultados . title ( ' Resultados de Analisis ')
texto_01 = Label ( ventana_Resultados ,
text = ' Deformaciones Internas : ' , fg = ' blue ' ). place ( x = 20 , y = 20 )
Boton01 = Button ( ventana_Resultados , text = ' Ejecutar ' , fg = ' red ' ,
command = Deformaciones_FFU ). place ( x = 180 , y = 20 )
texto_02 = Label ( ventana_Resultados ,
text = ' Matriz de rigidez ' , fg = ' blue ' ). place ( x = 20 , y = 50 )
Boton02 = Button ( ventana_Resultados ,
text = ' Ejecutar ' , fg = ' red ' ,
command = Matriz_RRIG ). place ( x = 180 , y = 50 )
texto03 = Label ( ventana_Resultados ,
text = ' Matriz de Rigidez Simplificada ' , fg = ' blue ' ). place ( x = 20 , y = 80 )
Boton03 = Button ( ventana_Resultados , text = ' Ejecutar ' ,
command = Matriz_DMM , fg = ' red ' ). place ( x = 180 , y = 80 )
texto04 = Label ( ventana_Resultados ,
text = ' Fuerzas Internas ' , fg = ' blue ' ). place ( x = 20 , y = 110 )
Boton04 = Button ( ventana_Resultados , text = ' Ejecutar ' ,
command = Fuer_Int , fg = ' red ' ). place ( x = 180 , y = 110 )
texto05 = Label ( ventana_Resultados ,
text = ' Diagramas ' , fg = ' blue ' ). place ( x = 20 , y = 140 )
Boton05 = Button ( ventana_Resultados , text = ' ejecuta ' ,
command = Diagramasfinales , fg = ' red ' ). place ( x = 180 , y = 140 )
ventana_Resultados . mainloop ()
En las grficas se dividen en 4,una es la grfica de la deformada,la otra
de grfica de giro o desplazamiento de giro,la otra el Momento, y la ultima
la cortante.
177
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 8.15: Grfica de Resultados del Anlisis del Femax de ui ,i ,Mi ,Vi .
Con esta subrutina se termina el programa femax.
178
CONCLUSIONES Y
RECOMENDACIONES.
179
Captulo 9
Conclusiones y Recomendaciones.
9.1.
Conclusiones.
Se pudo ver que al ser los resultados obtenidos por el programa FEMAX,en contra partida de los resultados obtenidos por el Software Comercial SAP V14 hay un parecido de 99.8 % por lo tanto se puede concluir
que los programas comerciales trabajan con el mtodo de elementos finitos y nuestra tesis hiptesis ha sido resuelta como cierta.
El sistema de acoplamiento generado para la matriz de rigidez,ha sido
satisfactoria por lo cual se puede tomar como referencia el algoritmo para
elementos de todo tipo as como placas,slidos de revolucin etc.
KT {((i, n), (j, n))} K n (i, j)
9.2.
(9.1)
Recomendaciones.
Se recomienda que se dicte el curso de elementos Finitos o que en slabus
de Anlisis Estructural se la incluya ya que es un elemento importante para
180
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
entender como funcionan los programas comerciales de Estructuras y le
dar ms facilidad de entendimiento al alumno.
Se da pie a que las investigaciones con elementos finitos sigan adelante
ya que es una gran herramienta para poder calcular problemas complejos
en la ingeniera.
Para el clculo de prticos y vigas se uso los sistemas de acoplamiento
de matriz i ,este mtodo puede ser usado para todo tipo de estructura ya
que es un algoritmo universal ya que se establece la opcin de direccin
y grado de libertad.
El uso de las funciones de forma son fundamentales en el anlisis estructurales del mtodo de elementos finitos y se recomienda el estudio
minucioso de ello ya que es tambin un sistema universal para el clculo
de las grficas y clculo de ui , i , Mi , Vi en cualquier punto estructural.
Se recomienda el uso masivo del lenguaje de programacin como python
para alumnos Universitarios por que nos dan gran alternativos de desarrollos para el clculo de Ingeniera .
181
ANEXOS.
182
Captulo 10
Codigo Fuente del Programa
Femax.
# PROGRAMACION FEMAX
from matplotlib import *
from pylab import *
import matplotlib . pylab as plt
from Tkinter import *
from Matrix2D import *
import tkMessageBox
import time
from apoyos import *
from Fuerza2D import *
from Formax import *
# ---------------------------------------------C=[]
C3_Materiales = [ ]
longitudes = [ ]
K_todos = [ ]
u=[]
u2 = [ ]
nodos_espacio = None
T=[]
183
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
K_Rtodos = [ ]
ordenamiento = None
puntos = [ ]
tipo_apoyos = None
codigo_apoyos = None
tipo_apoyos1 = None
codigo_apoyos1 = None
Ubicaciones_Universales = None
Puntos_FuerzasP = None
Puntos_AFuerzasP = None
Puntos_FuerzasP1 = None
Puntos_AFuerzasP1 = None
inicio_FuerzasD = None
linea_FuerzasD = [ ]
F4 = [ ]
Valores_FD = [ ]
longitudesFD = [ ]
# -------------------------------------------def Fuerzas_puntuales () :
global Puntos_AFuerzasP
global Puntos_FuerzasP
global Puntos_FuerzasP1
global Puntos_AFuerzasP1
Puntos_FuerzasP = [ ]
Puntos_AFuerzasP = [ ]
def dibujar_Fuerzas ( evento ) :
global Puntos_FuerzasP1
global Puntos_AFuerzasP1
global Puntos_FuerzasP
global Puntos_AFuerzasP
if selec01 . get () = = 1 :
val = selecP01 . get ()
fuerzas ( evento , dibujo , val ). Fuerza_VP ()
Puntos_FuerzasP = Puntos_FuerzasP + [0 , val , 0 ]
Puntos_AFuerzasP = Puntos_AFuerzasP + [ ( evento . x - 50 ) / 50 ,
184
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
( 550 - evento . y ) / 50 ]
if selec01 . get () = = 2 :
val = selecP02 . get ()
fuerzas ( evento , dibujo , val ). Fuerza_VN ()
Puntos_FuerzasP = Puntos_FuerzasP + [0 , - val , 0 ]
Puntos_AFuerzasP = Puntos_AFuerzasP + [ ( evento . x - 50 ) / 50 ,
( 550 - evento . y ) / 50 ]
if selec01 . get () = = 3 :
val = selecP03 . get ()
fuerzas ( evento , dibujo , val ). Fuerza_HP ()
Puntos_FuerzasP = Puntos_FuerzasP + [ val ,0 , 0 ]
Puntos_AFuerzasP = Puntos_AFuerzasP + [ ( evento . x - 50 ) / 50 ,
( 550 - evento . y ) / 50 ]
if selec01 . get () = = 4 :
val = selecP04 . get ()
fuerzas ( evento , dibujo , val ). Fuerza_HN ()
Puntos_FuerzasP = Puntos_FuerzasP + [ - val ,0 , 0 ]
Puntos_AFuerzasP = Puntos_AFuerzasP + [ ( evento . x - 50 ) / 50 ,
( 550 - evento . y ) / 50 ]
u = array ( Puntos_FuerzasP )
s = len ( u )
u2 = array ( Puntos_AFuerzasP )
s1 = len ( u2 )
Puntos_FuerzasP1 = u . reshape ( s /3 , 3 )
Puntos_AFuerzasP1 = u2 . reshape ( s1 /2 , 2 )
print Puntos_FuerzasP1
print Puntos_AFuerzasP1
ventana_FuerzasP = Toplevel ()
ventana_FuerzasP . title ( ' Fuerzas Puntuales ')
ventana_FuerzasP . geometry ( ' 500x300 + 0 + 0 ')
ventana_FuerzasP . minsize ( 500 , 300 )
# --------------------------------------------------IM_FVP = PhotoImage ( file = ' FPV . gif ')
185
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
IM_FVN = PhotoImage ( file = ' FNV . gif ')
IM_FHP = PhotoImage ( file = ' FHP . gif ')
IM_FHN = PhotoImage ( file = ' FHN . gif ')
# --------------------------------------------------selec01 = IntVar ()
selecP01 = DoubleVar ()
selecP02 = DoubleVar ()
selecP03 = DoubleVar ()
selecP04 = DoubleVar ()
# ------------------------------- --------------------entrada01 = Entry ( ventana_FuerzasP , textvariable = selecP01 ,
width = 10 ). place ( x = 300 , y = 20 )
entrada02 = Entry ( ventana_FuerzasP , textvariable = selecP02 ,
width = 10 ). place ( x = 300 , y = 60 )
entrada03 = Entry ( ventana_FuerzasP , textvariable = selecP03 ,
width = 10 ). place ( x = 300 , y = 100 )
entrada04 = Entry ( ventana_FuerzasP , textvariable = selecP04 ,
width = 10 ). place ( x = 300 , y = 140 )
# ---- ---- ----- ---- ---- ----- ---- ---- ----- ---- ---- ----- ---- ---- ----Texto_01 = Label ( ventana_FuerzasP ,
text = ' Fuerzas Verticales Positivos . ' ). place ( x = 100 , y = 20 )
FVP = Radiobutton ( ventana_FuerzasP ,
image = IM_FVP , value =1 , variable = selec01 )
texto02 = Label ( ventana_FuerzasP ,
text = ' Fuerzas Verticales Negativos ' ). place ( x = 100 , y = 60 )
FVP . place ( x = 20 , y = 20 )
FVN = Radiobutton ( ventana_FuerzasP ,
image = IM_FVN , value =2 , variable = selec01 )
FVN . place ( x = 20 , y = 60 )
texto03 = Label ( ventana_FuerzasP ,
text = ' Fuerzas Horizontales Positivas ' ). place ( x = 100 , y = 100 )
FHP = Radiobutton ( ventana_FuerzasP ,
image = IM_FHP , value =3 , variable = selec01 )
FHP . place ( x = 20 , y = 100 )
186
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
texto04 = Label ( ventana_FuerzasP ,
text = ' Fuerzas Horizontales Negativas ' ). place ( x = 100 , y = 140 )
FHN = Radiobutton ( ventana_FuerzasP ,
image = IM_FHN , value =4 , variable = selec01 )
FHN . place ( x = 20 , y = 140 )
dibujo . bind ( ' < Button -1 > ' , dibujar_Fuerzas )
ventana_FuerzasP . mainloop ()
def Fuerzas_distribuidas () :
global longitudesFD
global Valores_FD
global F4
global inicio_FuerzasD
global linea_FuerzasD
inicio_FuerzasD = [ ]
def inicio ( evento ) :
global longitudesFD
global Valores_FD
global F4
global inicio_FuerzasD
global linea_FuerzasD
inicio_FuerzasD = [ evento .x , evento . y ]
def final ( evento ) :
global longitudesFD
global Valores_FD
global F4
global inicio_FuerzasD
global linea_FuerzasD
longitud = sqrt (( evento . x inicio_FuerzasD [ 0 ] ) * * 2 + ( evento . y - inicio_FuerzasD [ 1 ] ) * * 2 )
COS = ( evento . x - inicio_FuerzasD [ 0 ] ) / float ( longitud )
SEN = - ( evento . y - inicio_FuerzasD [ 1 ] ) / float ( longitud )
for i in range ( 20 ) :
dibujo . create_line ( inicio_FuerzasD [ 0 ] + longitud /
187
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
20 * i * COS - 50 * SEN , inicio_FuerzasD [ 1 ] longitud / 20 * i * SEN - 50 * COS , inicio_FuerzasD [ 0
+ longitud / 20 * COS *i , inicio_FuerzasD [ 1 ] longitud / 20 * SEN *i , fill = ' green ' , arrow = LAST )
dibujo . create_text ( inicio_FuerzasD [ 0 ] 50 * SEN , inicio_FuerzasD [ 1 ] - 25 * COS ,
text = Magnitud . get ())
linea_FuerzasD = linea_FuerzasD + [ ( inicio_FuerzasD [ 0 ] - 50 ) / 50 ,
( 550 - inicio_FuerzasD [ 1 ] ) / 50 ,( evento . x - 50 ) / 50 ,( 550 - evento . y ) / 50 ]
longitudesFD = longitudesFD +
[ norm ( array ( [ ( evento . x - 50 ) / 50 ,( 550 - evento . y ) / 50 ] ) array ( [ ( inicio_FuerzasD [ 0 ] - 50 ) / 50 ,( 550 - inicio_FuerzasD [ 1 ] ) / 50 ] )) ]
F2 = array ( linea_FuerzasD )
F3 = F2 . reshape ( len ( F2 ) /4 , 4 )
F4 = F3
Valores_FD = Valores_FD + [ Magnitud . get () ]
print F4
print Valores_FD
print longitudesFD
inicio_FuerzasD = None
ventana_distribuida = Toplevel ()
ventana_distribuida . title ( ' Fuerzas Distribuidas ')
ventana_distribuida . geometry ( ' 400x200 + 0 + 0 ')
Im_Fdistribuida = PhotoImage ( file = ' FFD . gif ')
selec1 = IntVar ()
texto01 = Label ( ventana_distribuida ,
text = ' Fuerzas Dist Magn : ' ). place ( x = 100 , y = 20 )
FPP = Radiobutton ( ventana_distribuida ,
image = Im_Fdistribuida , value =1 , variable = selec1 )
FPP . place ( x = 20 , y = 20 )
Magnitud = DoubleVar ()
entrada_general = Entry ( ventana_distribuida ,
textvariable = Magnitud , width = 10 ). place ( x = 300 , y = 20 )
188
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
dibujo . bind ( ' < Button -1 > ' , inicio )
dibujo . bind ( ' < Button -3 > ' , final )
ventana_distribuida . mainloop ()
def apoyos_universales () :
global codigo_apoyos
global tipo_apoyos
global tipo_apoyos1
global codigo_apoyos1
tipo_apoyos = [ ]
codigo_apoyos = [ ]
def apoyos_general ( evento ) :
global tipo_apoyos
global codigo_apoyos
global tipo_apoyos1
global codigo_apoyos1
if selec . get () = = 1 :
Apoyos ( evento , dibujo ). Aempotrados ()
tipo_apoyos = tipo_apoyos + [ ( evento . x - 50 ) / 50 ,( 550 - evento . y ) / 50 ]
codigo_apoyos = codigo_apoyos + [1 ,1 , 1 ]
elif selec . get () = = 2 :
Apoyos ( evento , dibujo ). Afijos ()
tipo_apoyos = tipo_apoyos + [ ( evento . x - 50 ) / 50 ,( 550 - evento . y ) / 50 ]
codigo_apoyos = codigo_apoyos + [1 ,1 , 0 ]
elif selec . get () = = 3 :
Apoyos ( evento , dibujo ). Amoviles ()
tipo_apoyos = tipo_apoyos + [ ( evento . x - 50 ) / 50 ,( 550 - evento . y ) / 50 ]
codigo_apoyos = codigo_apoyos + [0 ,1 , 0 ]
AP = array ( tipo_apoyos )
AM = array ( codigo_apoyos )
codigo_apoyos1 = AM . reshape ( len ( AM ) /3 , 3 )
tipo_apoyos1 = AP . reshape ( len ( AP ) /2 , 2 )
print tipo_apoyos1
print codigo_apoyos1
ventana_apoyos = Toplevel ()
189
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
# --- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---Im_Fijos = PhotoImage ( file = ' fijo . gif ')
Im_Empotrados = PhotoImage ( file = ' empotrado . gif ')
Im_Moviles = PhotoImage ( file = ' movil . gif ')
# --- ---- --- ---- ---- --- ---- --- ---- ---- --- ---- ---- --- ---- ---- --- ---- --- ventana_apoyos . title ( ' Tipo - Apoyos ')
selec = IntVar ()
Texto_Empotrados = Label ( ventana_apoyos ,
text = ' Apoyo Empotrado ' ). place ( x = 100 , y = 20 )
Texto_Fjos = Label ( ventana_apoyos ,
text = ' Apoyo Fijo ' ). place ( x = 100 , y = 60 )
Texto_Moviles = Label ( ventana_apoyos ,
text = ' Apoyo Moviles ' ). place ( x = 100 , y = 100 )
Empotrados = Radiobutton ( ventana_apoyos ,
image = Im_Empotrados , value =1 , variable = selec )
Empotrados . place ( x = 20 , y = 20 )
Fijos = Radiobutton ( ventana_apoyos ,
image = Im_Fijos , value =2 , variable = selec )
Fijos . place ( x = 20 , y = 60 )
Moviles = Radiobutton ( ventana_apoyos ,
image = Im_Moviles , value =3 , variable = selec )
Moviles . place ( x = 20 , y = 100 )
# --- --- ---- --- --- ---- --- --- ---- --- ---- --- --- ---- --- --- ---- --- --- ---- --- #
BOTON PARA INCLUIR APOYOS EN LOS PUNTOS
# --- --- ---- --- --- ---- --- --- ---- --- ---- --- --- ---- --- --- ---- --- --- ---- --- -
botton_01 = Button ( ventana_apoyos , text = ' Ejecutar ' , fg = ' blue ' ). place ( x = 200 , y =
dibujo . bind ( ' < Button -1 > ' , apoyos_general )
ventana_apoyos . geometry ( ' 400x300 + 0 + 0 ')
ventana_apoyos . minsize ( 400 , 300 )
ventana_apoyos . mainloop ()
def Materiales_Calculo () :
global u2
global numero
global C3_Materiales
190
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
global nodos_espacio
nodos_espacio = u2
ventana_Materiales = Toplevel ()
ventana_Materiales . title ( ' Materiales de Elementos ')
lista_1 = [ ' Inercia '+ str ( i ) for i in range ( len ( u2 ) / 2 ) ]
lista_2 = [ ' Elasticidad '+ str ( i ) for i in range ( len ( u2 ) / 2 ) ]
lista_3 = [ ' Area '+ str ( i ) for i in range ( len ( u2 ) / 2 ) ]
ventana_Materiales . geometry ( ' 800x300 + 0 + 0 ')
numero = len ( u2 ) / 2
for i in range ( len ( u2 ) / 2 ) :
lista_1 [ i ] = DoubleVar ()
lista_2 [ i ] = DoubleVar ()
lista_3 [ i ] = DoubleVar ()
for i in range ( len ( u2 ) / 2 ) :
u1 = Label ( ventana_Materiales , text = ' Inercia '+ str ( i ) ,
fg = ' red ' ). place ( x =0 , y = 20 + i * 20 )
u2 = Label ( ventana_Materiales , text = ' Elasticidad '+ str ( i ) ,
fg = ' red ' ). place ( x = 200 , y = 20 + i * 20 )
u3 = Label ( ventana_Materiales , text = ' Area '+ str ( i ) ,
fg = ' red ' ). place ( x = 400 , y = 20 + i * 20 )
for j in range ( numero ) :
Entrada_Inercia = Entry ( ventana_Materiales ,
textvariable = lista_1 [ j ] , width = 10 ). place ( x = 100 , y = 20 + j * 20 )
Entrada_Elasticidad = Entry ( ventana_Materiales ,
textvariable = lista_2 [ j ] , width = 10 ). place ( x = 300 , y = 20 + j * 20 )
Entrada_Area = Entry ( ventana_Materiales ,
textvariable = lista_3 [ j ] , width = 10 ). place ( x = 500 , y = 20 + j * 20 )
# --- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- C_Materiales = None
def guardar_datos () :
global C_Materiales
global C3_Materiales
C_Materiales = [ ]
for t in range ( numero ) :
191
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
C_Materiales = C_Materiales +
[ lista_1 [ t ] . get () ] + [ lista_2 [ t ] . get () ] + [ lista_3 [ t ] . get () ]
C2_Materiales = array ( C_Materiales )
C3_Materiales = C2_Materiales . reshape ( numero , 3 )
print C3_Materiales
# ------------------------------- --------------------# BOTON DE GUARDAR CARACTERISTICAS DE LOS ELEMENTOS
# -------------- --------------- --------------- ---------Boton01 = Button ( ventana_Materiales ,
text = ' GUARDAR ' , command = guardar_datos ). place ( x = 600 , y = 250 )
# ------- ------- -------- ------- -------- ------- -------- -----# ------ ------- ------- ------ ------- ------- ------- ------ -----#
# FUNCIONES DE CALCULO DE LA MATRIZ DE RIGIDEZ - CALCULO
#
POR EL METODO DE ELEMENTOS FINITOS
#
# ------ ------ ------ ------ ------ ------ ------ ------ ------- ----def nodos_calculo () :
global Valores_FD
global F4
global Puntos_FuerzasP1
global Puntos_AFuerzasP1
global codigo_apoyos1
global tipo_apoyos1
global ordenamiento
global nodos_espacio
global C
global K_todos
global C3_Materiales
global T
global K_Rtodos
global longitudesFD
numero_datos = len ( nodos_espacio )
numero_barras = numero_datos / 2
192
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
C=[]
U=[]
lista_resumen = nodos_espacio . tolist ()
for i in lista_resumen :
if i not in C :
C=C+[i]
print C
for s in range ( numero_barras ) :
K_local = Matrix2D ( C3_Materiales [ s ] [ 2 ] ,
C3_Materiales [ s ] [ 1 ] , C3_Materiales [ s ] [ 0 ] , longitudes [ s ] ). constructor ()
K_todos = K_todos + [ K_local ]
Coord_Barras = nodos_espacio . reshape ( numero_barras , 4 )
for u in range ( numero_barras ) :
transformada_union = Transformada ( Coord_Barras [ u ] [ 0 ] ,
Coord_Barras [ u ] [ 1 ] , Coord_Barras [ u ] [ 2 ] , Coord_Barras [ u ] [ 3 ] ). T ()
T = T + [ transformada_union ]
for r in range ( numero_barras ) :
K_ultimo_1 = dot ( K_todos [ r ] ,T [ r ] )
K_ultimo_2 = dot ( transpose ( T [ r ] ) , K_ultimo_1 )
K_Rtodos = K_Rtodos + [ K_ultimo_2 ]
ordenamiento = { } # Biblioteca de calculo
ordenamiento_primario = [ ] # ordenamiento final de las barras
# ----------- ------------ ------------ ----------- --------# MATRIZ DE ORDENAMIENTO - - - - - > PI
# ----------- ------------ ------------ ----------- --------ordenamiento [ i ] = C [ i ]
print ordenamiento
for i in range ( numero_datos ) :
for j in range ( len ( C )) :
if ordenamiento [ j ] [ 0 ] = = nodos_espacio [ i ] [ 0 ]
and ordenamiento [ j ] [ 1 ] = = nodos_espacio [ i ] [ 1 ] :
ordenamiento_primario . append ( j )
print ordenamiento_primario
ordenamiento2 = array ( ordenamiento_primario )
193
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
numero_filas = len ( ordenamiento2 ) / 2
ultimo_ordenamiento = ordenamiento2 . reshape ( numero_filas , 2 )
P_01S = ultimo_ordenamiento + 1
P_02S = P_01S * 3
WQ = array ( [ range ( P_02S [ i ] [ 0 ] -3 ,
P_02S [ i ] [ 0 ] ) for i in range ( len ( P_02S )) ] )
WR = array ( [ range ( P_02S [ i ] [ 1 ] -3 ,
P_02S [ i ] [ 1 ] ) for i in range ( len ( P_02S )) ] )
O=[]
for i in range ( len ( WQ )) :
for j in range ( len ( WR )) :
if i = = j :
O = O + [ array ( [ WQ [ i ] , WR [ j ] ] ). reshape ( 6 ) ]
P_03S = array ( O )
matriz_ordenamiento = transpose ( P_03S )
print matriz_ordenamiento
# --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---- --- --- --- --- --- --- --- #
# ACOPLAMIENTO FINAL DE LA MATRIZ DE RIGIDEZ TOTAL DE LA
#
ESTRUCTURA
k [ PI [ i ][ n ] , PI [ j ][ n ]] < - - - - - - - - - - - - - - - - - - K { n } [ i ][ n ]
# -- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- KT = zeros (( 3 * len ( C ) , 3 * len ( C )))
for i in range ( 6 ) :
for j in range ( 6 ) :
for n in range ( len ( K_Rtodos )) :
KT [ matriz_ordenamiento [ i ] [ n ] ]
[ matriz_ordenamiento [ j ] [ n ] ] =
KT [ matriz_ordenamiento [ i ] [ n ] ]
[ matriz_ordenamiento [ j ] [ n ] ] + K_Rtodos [ n ] [ i ] [ j ]
print KT
# --- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- ---- --- #
#
CALCULO DE MATRIZ REDUCIDA --> Ki
194
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
# --- --- --- --- --- --- ---- --- --- --- --- --- --- ---- --- --- --- --- --- ---- --- --- --- GDL01 = [ ]
for i in range ( len ( C )) :
for j in range ( len ( tipo_apoyos1 )) :
if ordenamiento [ i ] [ 0 ] = = tipo_apo
yos1 [ j ] [ 0 ] and ordenamiento [ i ] [ 1 ] = = tipo_apoyos1 [ j ] [ 1 ] :
GDL01 . append ( i )
GDL02 = array ( GDL01 )
GDL03 = GDL02 + 1
GDL04 = GDL03 * 3
MQ = array ( [ range ( GDL04 [ i ] -3 , GDL04 [ i ] )
for i in range ( len ( GDL04 )) ] )
EL = MQ * codigo_apoyos1
K_reducida_inicial = delete ( KT , EL , axis = 0 )
K_reducida_final = delete
( K_reducida_inicial , EL , axis = 1 )# calculo de K_reducida
print K_reducida_final
# ------------------- --------------------- ------------#
# Programacion de Calculo de Fuerzas Puntuales
#
# ----------- ------------ ------------ ----------- --------esquema_fuerzasp = [ ]
for i in range ( len ( ordenamiento )) :
for j in range ( len ( Puntos_AFuerzasP1 )) :
if ordenamiento [ i ] [ 0 ] = = Puntos_AFuerzasP1 [ j ] [ 0 ]
and ordenamiento [ i ] [ 1 ] = = Puntos_AFuerzasP1 [ j ] [ 1 ] :
esquema_fuerzasp . append ( i )
print esquema_fuerzasp
esquema_fuerzasp1 = array ( esquema_fuerzasp )
esquema_fuerzasp2 = ( esquema_fuerzasp1 + 1 ) * 3
WR = array ( [ range ( esquema_fuerzasp2 [ i ] -3 ,
esquema_fuerzasp2 [ i ] ) for i in range ( len ( esquema_fuerzasp2 )) ] )
WQ = WR . reshape ( len ( WR ) *3 , 1 )
Fuerzas_puntuales = zeros (( len ( ordenamiento ) *3 , 1 ))
195
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Puntos_FuerzasP2 = Puntos_FuerzasP1 . reshape ( len ( Puntos_FuerzasP1 ) *3 , 1 )
for i in range ( len ( Puntos_FuerzasP1 ) * 3 ) :
Fuerzas_puntuales [ WQ [ i ] ] = Fuerzas_puntuales [ WQ [ i ] ] + Puntos_FuerzasP2 [ i ]
print Fuerzas_puntuales
# --------- ---------- ---------- ---------- --------- -------#
#
Programacion de calculo de Fuerzas Distribuidas
#
# ------- ------- -------- ------- -------- ------- -------- -----F5 = F4 . reshape ( len ( F4 ) *2 , 2 )
esquema_FuerzasD = [ ]
for i in range ( len ( ordenamiento )) :
for j in range ( len ( F5 )) :
if ordenamiento [ i ] [ 0 ] = = F5 [ j ] [ 0 ] and ordenamiento [ i ] [ 1 ] = = F5 [ j ] [ 1 ] :
esquema_FuerzasD . append ( i )
esquema_FuerzasD1 = array ( esquema_FuerzasD )
esquema_FuerzasD2 = ( esquema_FuerzasD1 + 1 ) * 3
WU = array ( [ range ( esquema_FuerzasD2 [ i ] -3 ,
esquema_FuerzasD2 [ i ] ) for i in range ( len ( esquema_FuerzasD2 )) ] )
WP = WU . reshape ( len ( WU ) *3 , 1 )
print ' este es la clave '+ str ( WP )
Fuerzas_Distribuidas = zeros (( len ( ordenamiento ) *3 , 1 ))
Fuerzas_DD = [ ]
for i in range ( len ( longitudesFD )) :
Fuerzas_DD = Fuerzas_DD + [ [0 , Valores_FD [ i ] * ( longitudesFD [ i ] ) / float ( 2 ) , Va
[0 , Valores_FD [ i ] * ( longitudesFD [ i ] )
/ float ( 2 ) , - Valores_FD [ i ] * ( longitudesFD [ i ] * * 2 ) / float ( 12 ) ] ]
FuerzasDD1 = array ( Fuerzas_DD )
FuerzasDD2 = FuerzasDD1 . reshape ( len ( FuerzasDD1 ) *3 , 1 )
for i in range ( len ( FuerzasDD2 )) :
Fuerzas_Distribuidas [ WP [ i ] ] = Fuerzas_Distribuidas [ WP [ i ] ] + FuerzasDD2 [ i ]
# -- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- -#
#
Programacion de Fuerzas Nodales Equivalentes
196
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
# -- -- --- -- -- --- -- --- -- -- --- -- --- -- -- --- -- --- -- -- --- -- --- -- -- --- -- --- -- -- --- -Fuerzas_nequivalentes = Fuerzas_puntuales - Fuerzas_Distribuidas
Fuerzas_NodD = delete ( Fuerzas_nequivalentes , EL , axis = 0 )
print Fuerzas_NodD
# -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- --- -- #
#
Calculo de las deformaciones Nodales
# -- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- -- --- -- -- --- -- -- --- -Deformaciones01 = dot ( inv ( K_reducida_final ) , Fuerzas_NodD )
print Deformaciones01
WUP = range (0 , len ( Fuerzas_nequivalentes ))
WUP1 = array ( WUP )
WUP2 = WUP1 . reshape ( len ( WUP ) , 1 )
WUP3 = delete ( WUP2 , EL , axis = 0 )
Deformaciones_totales = zeros (( len ( ordenamiento ) *3 , 1 ))
for i in range ( len ( WUP3 )) :
Deformaciones_totales [ WUP3 [ i ] ] = Deformaciones_totales [ WUP3 [ i ] ] + Deforma
print Deformaciones_totales
# -- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- -- --- -- -- --- -- -- --- -#
#
Calculo de Fuerzas Internasx - Barras
# -- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- -- --- -- -- --- -- -- --- -for i in range ( len ( us01 )) :
sx = us01 [ i ] . reshape (1 , 6 )
ordenamiento_fuerzasU = ordenamiento_fuerzasU + [ sx ]
ordenamiento_ff = array ( ordenamiento_fuerzasU ). reshape ( len ( ordenamiento_fue
SMR = array ( [ [ 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 ]
for i in range ( len ( ordenamiento_ff )) ] )
for i in range ( len ( ordenamiento_ff )) :
for j in range ( 6 ) :
SMR [ i ] [ j ] = SMR [ i ] [ j ] +
Deformaciones_totales [ ordenamiento_ff [ i ] [ j ] ]
197
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
print SMR
resultados_fuerzapb = [ ]
for i in range ( len ( SMR )) :
resultados_fuerzapb = resultados_fuerzapb +
[ dot ( K_Rtodos [ i ] , SMR [ i ] . reshape (6 , 1 )) ]
print resultados_fuerzapb
restar_altotal = Fuerzas_nequivalentes - Fuerzas_puntuales
SMR1 = array ( [ [ 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 ]
for i in range ( len ( ordenamiento_ff )) ] )
WNN = WP . reshape ( len ( WP ) / 6 . 00 , 6 . 00 )
for i in range ( len ( ordenamiento_ff )) :
for j in range ( len ( WNN )) :
if ordenamiento_ff [ i ] [ 0 ] = = WNN [ j ] [ 0 ] and
ordenamiento_ff [ i ] [ 1 ] = = WNN [ j ] [ 1 ] and
ordenamiento_ff [ i ] [ 2 ] = = WNN [ j ] [ 2 ] and
ordenamiento_ff [ i ] [ 3 ] = = WNN [ j ] [ 3 ] and
ordenamiento_ff [ i ] [ 4 ] = = WNN [ j ] [ 4 ] and ordenamiento_ff [ i ] [ 5 ] = = WNN [ j
SMR1 [ i ] [ 0 ] = ordenamiento_ff [ i ] [ 0 ]
SMR1 [ i ] [ 1 ] = ordenamiento_ff [ i ] [ 1 ]
SMR1 [ i ] [ 2 ] = ordenamiento_ff [ i ] [ 2 ]
SMR1 [ i ] [ 3 ] = ordenamiento_ff [ i ] [ 3 ]
SMR1 [ i ] [ 4 ] = ordenamiento_ff [ i ] [ 4 ]
SMR1 [ i ] [ 5 ] = ordenamiento_ff [ i ] [ 5 ]
else :
SMR1 [ i ] [ 0 ] = 0 . 000000000
SMR1 [ i ] [ 1 ] = 0 . 000000000
SMR1 [ i ] [ 2 ] = 0 . 000000000
SMR1 [ i ] [ 3 ] = 0 . 000000000
SMR1 [ i ] [ 4 ] = 0 . 000000000
SMR1 [ i ] [ 5 ] = 0 . 000000000
SMR2 = array ( [ [ 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 , 0 . 000000 ]
for i in range ( len ( ordenamiento_ff )) ] )
for i in range ( len ( ordenamiento_ff )) :
198
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
for j in range ( 6 ) :
SMR2 [ i ] [ j ] = SMR2 [ i ] [ j ] + restar_altotal [ SMR1 [ i ] [ j ] ]
fuerzas_bfinal = [ ]
for i in range ( len ( ordenamiento_ff )) :
fuerzas_bfinal = fuerzas_bfinal + [ resultados_fuerzapb [ i ] - SMR2 [ i ] . reshape
print fuerzas_bfinal
# -- -- -- -- -- --- -- -- -- -- --- -- -- -- -- -- --- -- -- -- -- --- -- -- -- -- --- -- -- -- -- -- --- -- -#
#
Algoritmo de Graficas de u , a_ { i } , M_ { i } , V_ { i }
# -- -- -- -- -- --- -- -- -- -- --- -- -- -- -- -- --- -- -- -- -- --- -- -- -- -- --- -- -- -- -- -- --- -- -X=[]
for i in range ( len ( ordenamiento_ff )) :
xi = arange (0 , longitudes [ i ] ,0 . 1 )
X = X + [ xi ]
print X
VVUW = nodos_espacio . reshape ( len ( nodos_espacio ) /2 , 4 )
P0 = [ ]
for i in range ( len ( VVUW )) :
for j in range ( len ( F4 )) :
if VVUW [ i ] [ 0 ] = = F4 [ j ] [ 0 ] and VVUW [ i ] [ 1 ] = = F4 [ j ] [ 1 ]
and VVUW [ i ] [ 2 ] = = F4 [ j ] [ 2 ] and VVUW [ i ] [ 3 ] = = F4 [ j ] [ 3 ] :
P0 . append ( - Valores_FD [ j ] )
else :
P0 . append ( 0 )
F_DD = array ( P0 ). reshape ( len ( P0 ) , 1 )
Form = [ ]
for i in range ( len ( ordenamiento_ff )) :
Form = Form + [ Forma_GG ( X [ i ] , longitudes [ i ] ,
C3_Materiales [ i ] [ 1 ] , C3_Materiales [ i ] [ 0 ] , F_DD [ i ] ) ]
DEFF = [ ]
for i in range ( len ( ordenamiento_ff )) :
DEFF = DEFF + [ Form [ i ] . N_1 () * SMR [ i ] [ 0 ] +
199
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Form [ i ] . N_2 () * SMR [ i ] [ 1 ] + Form [ i ] . N_3 () * SMR [ i ] [ 2 ]
+ Form [ i ] . N_4 () * SMR [ i ] [ 3 ] + Form [ i ] . N_5 () * SMR [ i ] [ 4 ] +
Form [ i ] . N_6 () * SMR [ i ] [ 5 ] + Form [ i ] . R_1 () ]
print DEFF
DEFG = [ ]
for i in range ( len ( ordenamiento_ff )) :
DEFG = DEFG + [ ( Form [ i ] . W_1 () * SMR [ i ] [ 0 ] +
Form [ i ] . W_2 () * SMR [ i ] [ 1 ] + Form [ i ] . W_3 () * SMR [ i ] [ 2 ] +
Form [ i ] . W_4 () * SMR [ i ] [ 3 ] + Form [ i ] . W_5 () * SMR [ i ] [ 4 ]
+ Form [ i ] . W_6 () * SMR [ i ] [ 5 ] + Form [ i ] . R_2 ()) ]
print DEFG
Momenx = [ ]
for i in range ( len ( ordenamiento_ff )) :
Momenx = Momenx + [ - 1 * ( Form [ i ] . M_1 () * SMR [ i ] [ 0 ] +
Form [ i ] . M_2 () * SMR [ i ] [ 1 ] + Form [ i ] . M_3 () * SMR [ i ] [ 2 ] +
Form [ i ] . M_4 () * SMR [ i ] [ 3 ] + Form [ i ] . M_5 () * SMR [ i ] [ 4 ] +
Form [ i ] . M_6 () * SMR [ i ] [ 5 ] + Form [ i ] . R_3 ()) ]
print Momenx
Cort = [ ]
for i in range ( len ( ordenamiento_ff )) :
Cort = Cort + [ Form [ i ] . V_1 () * SMR [ i ] [ 0 ] +
Form [ i ] . V_2 () * SMR [ i ] [ 1 ] + Form [ i ] . V_3 () * SMR [ i ] [ 2 ] +
Form [ i ] . V_4 () * SMR [ i ] [ 3 ] + Form [ i ] . V_5 () * SMR [ i ] [ 4 ] +
Form [ i ] . V_6 () * SMR [ i ] [ 5 ] + Form [ i ] . R_4 () ]
print Cort
print longitudes
# -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- --- -- #
#
Algoritmo de Presentacion de Resultados .
# -- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- -- --- -- -- --- -- -- --- -def Diagramasfinales () :
def Diagrama () :
fiig = figure ( 1 )
200
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
TDef = fiig . add_subplot ( 221 )
title ( r ' $D_ { i } $ ')
grid ( True )
xlabel ( r ' $x_ { i } $ ')
ylabel ( r '$ \ delta$ ')
TDef . plot ( X [ m . get () ] , DEFF [ m . get () ] , 'r - - ')
TGir = fiig . add_subplot ( 222 )
title ( r '$ \ theta_ { i } $ ')
xlabel ( r ' $x_ { i } $ ')
ylabel ( r '$ \ theta_ { i } $ ')
grid ( True )
TGir . plot ( X [ m . get () ] , DEFG [ m . get () ] , 'r - - ')
TMom = fiig . add_subplot ( 223 )
title ( r ' $M_ { i } $ ')
xlabel ( r ' $x_ { i } $ ')
ylabel ( r ' $M_ { i } $ ')
grid ( True )
TMom . plot ( X [ m . get () ] , Momenx [ m . get () ] , 'r - - ')
TCort = fiig . add_subplot ( 224 )
title ( r ' $V_ { i } $ ')
xlabel ( r ' $x_ { i } $ ')
ylabel ( r ' $V_ { i } $ ')
grid ( True )
TCort . plot ( X [ m . get () ] , Cort [ m . get () ] , 'r - - ')
show ()
ven01 = Toplevel ()
ven01 . title ( ' Diagramas de las Barras ')
textoMM = Label ( ven01 , text = ' Elija la Barra : ' , fg = ' blue ' ). place ( x = 20 , y = 2
m = IntVar ()
EntradaMM = Entry ( ven01 , textvariable =m , width = 10 ). place ( x = 100 , y = 20 )
BotonMM = Button ( ven01 , text = ' ejecuta ' , command = Diagrama ). place ( x = 200 , y = 2
ven01 . mainloop ()
def Fuer_Int () :
def VFuerzas01 () :
ventana_alterna01 = Toplevel ()
201
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
texto = Label ( ventana_alterna01 , text = fuerzas_bfinal [ n . get () ] ). place
ventana_alterna01 . title ( ' Fuerzas Int por Barras . ')
ventana_alterna01 . mainloop ()
ventana_fuerzasint = Toplevel ()
texto_01 = Label ( ventana_fuerzasint , text = ' Elegir Barra : ' ). place ( x = 20 , y
n = IntVar ()
entrada01 = Entry ( ventana_fuerzasint , textvariable =n , width = 5 ). place ( x = 10
Boton01 = Button ( ventana_fuerzasint ,
text = ' ejecuta ' , command = VFuerzas01 ). place ( x = 150 , y = 20 )
ventana_fuerzasint . mainloop ()
def Deformaciones_FFU () :
ventana_Deformaciones = Toplevel ()
for i in range ( len ( Deformaciones_totales )) :
Label ( ventana_Deformaciones , text = ' Para el Punto : ' ). place ( x = 20 , y =
Label ( ventana_Deformaciones , text = i + 1 ). place ( x = 150 , y = i * 20 + 20 )
Label ( ventana_Deformaciones ,
text = Deformaciones_totales [ i ] ). place ( x = 180 , y = i * 20 + 20 )
ventana_Deformaciones . mainloop ()
def Matriz_RRIG () :
ventana_matrix = Toplevel ()
ventana_matrix . geometry ( ' 600x600 + 0 + 0 ')
ventana_matrix . title ( ' Matriz de Rigidez ')
textos = Canvas ( ventana_matrix , width = 400 ,
height = 400 , scrollregion = (0 ,0 , 2000 , 2000 ) ,
highlightcolor = ' black ' , relief = ' solid ' , background = ' white ')
for i in range ( len ( KT )) :
for j in range ( len ( KT )) :
textos . create_text ( 100 * i + 40 , 100 * j + 40 , text = KT [ i ] [ j ] )
for i in range ( len ( KT )) :
textos . create_text ( 100 * i + 40 , 10 , text = i +1 , fill = ' red ')
textos . create_text ( 10 , 100 * i + 40 , text = i +1 , fill = ' red ')
textos01 = Label ( ventana_matrix , text = ' CALCULO DE MATRIZ GENERAL ' , fg = ' re
textos01 . grid ( row =1 , column = 3 )
202
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
scrollY = Scrollbar ( ventana_matrix , orient = VERTICAL , command = textos . yview
scrollY . grid ( row =1 , column =2 , sticky = N + S )
scrollX = Scrollbar ( ventana_matrix , orient = HORIZONTAL , command = textos . xvi
scrollX . grid ( row =2 , column =1 , sticky = E + W )
textos [ ' xscrollcommand '] = scrollX . set
textos [ ' yscrollcommand '] = scrollY . set
textos . grid ( row =1 , column = 1 )
ventana_matrix . mainloop ()
def Matriz_DMM () :
ventana_matrixD = Toplevel ()
ventana_matrixD . geometry ( ' 600x600 + 0 + 0 ')
ventana_matrixD . title ( ' Matriz de Rigidez Simplificada ')
textos1 = Canvas ( ventana_matrixD , width = 400 , height = 400 ,
scrollregion = (0 ,0 , 2000 , 2000 ) ,
highlightcolor = ' black ' , relief = ' solid ' , background = ' white ')
for i in range ( len ( K_reducida_final )) :
for j in range ( len ( K_reducida_final )) :
textos1 . create_text ( 100 * i + 40 , 100 * j + 40 , text = K_reducida_final [ i
for i in range ( len ( K_reducida_final )) :
textos1 . create_text ( 100 * i + 40 , 10 , text = i +1 , fill = ' red ')
textos1 . create_text ( 10 , 100 * i + 40 , text = i +1 , fill = ' red ')
textos02 = Label ( ventana_matrixD , text = ' CALCULO DE MATRIZ SIMPLIFICADA ' ,
textos02 . grid ( row =1 , column = 3 )
scrollY = Scrollbar ( ventana_matrixD , orient = VERTICAL , command = textos1 . yvi
scrollY . grid ( row =1 , column =2 , sticky = N + S )
scrollX = Scrollbar ( ventana_matrixD , orient = HORIZONTAL , command = textos1 . x
scrollX . grid ( row =2 , column =1 , sticky = E + W )
textos1 [ ' xscrollcommand '] = scrollX . set
textos1 [ ' yscrollcommand '] = scrollY . set
textos1 . grid ( row =1 , column = 1 )
ventana_matrixD . mainloop ()
ventana_Resultados = Toplevel ()
ventana_Resultados . geometry ( ' 600x400 + 0 + 0 ')
203
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
ventana_Resultados . title ( ' Resultados de Analisis ')
texto_01 = Label ( ventana_Resultados , text = ' Deformaciones Internas : ' , fg = ' blu
Boton01 = Button ( ventana_Resultados , text = ' Ejecutar ' ,
fg = ' red ' , command = Deformaciones_FFU ). place ( x = 180 , y = 20 )
texto_02 = Label ( ventana_Resultados ,
text = ' Matriz de rigidez ' , fg = ' blue ' ). place ( x = 20 , y = 50 )
Boton02 = Button ( ventana_Resultados , text = ' Ejecutar '
, fg = ' red ' , command = Matriz_RRIG ). place ( x = 180 , y = 50 )
texto03 = Label ( ventana_Resultados , text = ' Matriz de Rigidez Simplificada ' , fg
Boton03 = Button ( ventana_Resultados , text = ' Ejecutar ' ,
command = Matriz_DMM , fg = ' red ' ). place ( x = 180 , y = 80 )
texto04 = Label ( ventana_Resultados ,
text = ' Fuerzas Internas ' , fg = ' blue ' ). place ( x = 20 , y = 110 )
Boton04 = Button ( ventana_Resultados ,
text = ' Ejecutar ' ,
command = Fuer_Int , fg = ' red ' ). place ( x = 180 , y = 110 )
texto05 = Label ( ventana_Resultados ,
text = ' Diagramas ' , fg = ' blue ' ). place ( x = 20 , y = 140 )
Boton05 = Button ( ventana_Resultados , text = ' ejecuta ' ,
command = Diagramasfinales , fg = ' red ' ). place ( x = 180 , y = 140 )
ventana_Resultados . mainloop ()
def grilla () :
global Ubicaciones_Universales
Ubicaciones_Universales = [ ]
def dibujo_grilla () :
if nx . get () ! = 0 and ny . get () ! = 0 :
for i in range ( nx . get () + 1 ) :
dibujo . create_line ( 50 + i * mx . get () * 50 , 550 , 50 +
i * mx . get () * 50 , 550 - ny . get () * my . get () * 50 ,
fill = ' gray ' , activefill = ' red ' , dash = (3 , 5 ) , tag = ( ' Recta01 ' ))
for i in range ( ny . get () + 1 ) :
dibujo . create_line ( 50 , 550 - i * my . get ()
* 50 , 50 + ( nx . get ()) * mx . get () * 50 ,
550 - i * my . get () * 50 , fill = ' gray ' , activefill = ' red '
204
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
, dash = (3 , 5 ) , tag = ( ' Recta02 ' ))
for u in range ( nx . get () + 1 ) :
for m in range ( ny . get () + 1 ) :
Ubicaciones_Universales . append ( [ 50 + u * mx . get ()
* 50 , 550 - m * my . get () * 50 ] )
dibujo . create_oval ( 50 + u * mx . get () * 50 -2 ,
550 - m * my . get () * 50 -2 , 50 + u * mx . get ()
* 50 +2 , 550 - m * my . get () * 50 +2 ,
fill = ' red ' , activefill = ' blue ')
else :
tkMessageBox . showinfo ( message = ' Por Favor poner Datos ')
ventana_grilla = Toplevel ()
ventana_grilla . title ( ' DIBUJAR GRILLA P / ESQUEMA ')
ventana_grilla . minsize ( 500 , 200 )
ventana_grilla . geometry ( ' 500x200 + 0 + 0 ')
# ----------- ------------ ------------ ----------- --------nx = IntVar ()
mx = DoubleVar ()
ny = IntVar ()
my = DoubleVar ()
# ------ ------- ------- ------ ------- ------- ------- ------ -----texto_principal = Label ( ventana_grilla ,
text = ' COORDENADAS EN EL EJE X : Y ' ). place ( x = 100 , y = 0 )
Texto_01 = Label ( ventana_grilla , text = 'N : Ejes - X ' ). place ( x = 10 , y = 20 )
texto_02 = Label ( ventana_grilla , text = ' Dist - Ejes - X ' ). place ( x = 250 , y = 20 )
texto03 = Label ( ventana_grilla , text = 'N : Ejes - Y ' ). place ( x = 10 , y = 60 )
texto04 = Label ( ventana_grilla , text = ' Dist - Ejes - Y ' ). place ( x = 250 , y = 60 )
# -- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- -- --- -- -- --- -- -- Ejes_Horizontales = Entry ( ventana_grilla , textvariable = nx ). place ( x = 80 , y = 20 )
Distancias_Horizontales = Entry ( ventana_grilla , textvariable = mx ). place ( x = 320
# -- -- -- -- --- -- -- -- --- -- -- -- --- -- -- -- --- -- -- -- --- -- -- -- --- -- -- -- --- -- -- -- Ejes_Verticales = Entry ( ventana_grilla , textvariable = ny ). place ( x = 80 , y = 60 )
205
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Distancias_Verticales = Entry ( ventana_grilla , textvariable = my ). place ( x = 320 , y
Boton01 = Button ( ventana_grilla , text = ' APLICAR ' ,
command = dibujo_grilla ). place ( x = 300 , y = 150 )
# -----------------------------------------------Boton02 = Button ( ventana_grilla , text = ' CANCELAR ' ,
command = ventana_grilla . destroy ). place ( x = 400 , y = 150 )
# ---- ----- ---- ----- ---- ----- ----- ---- ----- ----- ---- ----- ---- ----# VENTANA DE GRILLAS - LOKITOSAMAX - ELEMENTOS DE VARIABLE
# ---- ----- ---- ----- ---- ----- ----- ---- ----- ----- ---- ----- ---- ----ventana_grilla . mainloop ()
def Borrador () :
dibujo . delete ( ALL )
def dibuja_barra () :
tkMessageBox . showinfo ( message = ' Poner el Primero y Segundo punto . ')
global puntos
global longitudes
global u2
global u
start = None
def punto ( evento ) :
global start
global u
start = [ evento .x , evento . y ]
def punto2 ( evento ) :
global puntos
global longitudes
global start
global u
global u2
if start is not None :
206
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
x = start [ 0 ]
y = start [ 1 ]
dibujo . create_line (x ,y , evento .x , evento .y , width = 4 .5 ,
arrow = LAST , activefill = ' gray ' , tag = ( ' linea1 ' ))
dibujo . itemconfig ( ' linea1 ' , fill = ' red ')
u = u + [ ( x - 50 ) / 50 ,( 550 - y ) / 50 ,( evento . x - 50 ) / 50 ,( 550 - evento . y ) / 50 ]
longitudes = longitudes + [ norm ( array ( [ ( evento . x - 50 ) / 50 ,
( 550 - evento . y ) / 50 ] ) - array ( [ ( x - 50 ) / 50 ,( 550 - y ) / 50 ] )) ]
start = None
dibujo . bind ( ' < Button -1 > ' , punto )
dibujo . bind ( ' < Button -3 > ' , punto2 )
u1 = array ( u )
l1 = len ( u1 )
u2 = u1 . reshape ( l1 /2 , 2 )
print u2
print longitudes
def kill_XY ( evento = None ) :
dibujo . delete ( ' no ')
def Kill_2 ( evento = None ) :
dibujo . delete ( ' cuadradito ')
X , Y = None , None
def coordenadas ( evento ) :
global Ubicaciones_Universales
global X , Y
kill_XY ()
X = dibujo . create_line ( evento .x ,0 , evento .x , 1000 , dash = [3 , 2 ] , tags = ' no ' , fill = '
Y = dibujo . create_line (0 , evento .y , 1000 , evento .y , dash = [3 , 2 ] , tags = ' no ' , fill = '
global cuadrado
207
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Coordenada_mause [ ' text '] = 'x - >
'+ str (( evento . x - 50 ) / 50 ) + 'y - > '+ str (( 550 - evento . y ) / 50 )
m = array ( [ evento .x , evento . y ] )
if Ubicaciones_Universales is not None :
for s in range ( len ( Ubicaciones_Universales )) :
if evento . x = =
Ubicaciones_Universales [ s ] [ 0 ] and
evento . y = = Ubicaciones_Universales [ s ] [ 1 ] :
dibujo . create_rectangle
( Ubicaciones_Universales [ s ] [ 0 ] - 10 , Ubicaciones_Universales [ s ] [
- 10 , Ubicaciones_Universales [ s ] [ 0 ]
+ 10 , Ubicaciones_Universales [ s ] [ 1 ]
+ 10 , outline = ' blue ' , tag = ' Cuadrado_Identificado '+ str ( s ))
else :
dibujo . delete ( ' Cuadrado_Identificado '+ str ( s ))
# --- --- --- --- ---- --- --- ---- --- --- --- ---- --- --- --- ---- --- --- --- ---- --- --- ventana = Tk ()
ventana . title ( ' FEMAX ')
ventana . minsize ( 1200 , 800 )
ventana . geometry ( ' 1200x800 + 0 + 0 ')
barra_dibujo = Frame ( ventana , width = 200 , height = 100 )
barra_dibujo . grid ( row =0 , column = 4 )
# --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---- --- --- --- --- --- --- --- -
dibujo = Canvas ( ventana , width = 950 , height = 600 , scrollregion = ( - 2000 , - 2000 , 2000 , 200
highlightcolor = ' black ' , relief = ' solid ' , background = ' white ')
# -- --- -- --- -- --- --- -- --- -- --- -- --- --- -- --- -- --- --- -- --- -- --- -- --- --- -- --- -- -dibujo . bind ( ' < Motion > ' , coordenadas )
208
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
flecha_X = dibujo . create_line ( 50 , 550 , 100 , 550 , arrow = LAST , fill = ' blue ')
X_sumate = dibujo . create_text ( 125 , 550 , text = ' Eje_X ' , fill = ' blue ')
flecha_Y = dibujo . create_line ( 50 , 550 , 50 , 500 , arrow = LAST , fill = ' blue ')
X_sumate = dibujo . create_text ( 50 , 480 , text = ' Eje_Y ' , fill = ' blue ')
# -- --- -- --- -- --- -- --- -- --- -- --- -- --- -- --- --- -- --- -- --- -- --- -- --- -- --- -- --- -- dibujo . grid ( row =1 , column = 1 )
scrollY = Scrollbar ( ventana , orient = VERTICAL , command = dibujo . yview )
scrollY . grid ( row =1 , column =2 , sticky = N + S )
scrollX = Scrollbar ( ventana , orient = HORIZONTAL , command = dibujo . xview )
scrollX . grid ( row =2 , column =1 , sticky = E + W )
dibujo [ ' xscrollcommand '] = scrollX . set
dibujo [ ' yscrollcommand '] = scrollY . set
# -- -- --- -- -- --- -- --- -- -- --- -- --- -- -- --- -- --- -- -- --- -- --- -- -- --- -- --- -- -- --- -#
#
BOTONES Y CONTROLES GENERALES DEL PROGRAMA EN GENERAL - - - - - - - - - - - - - - - - - > LOK
# -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- --- -- ''' TITULO DEL PROGRAMA EN GENERAL '''
Texto_General = Label ( ventana ,
text = ' PROGRAMA DE ESTRUCTURAS - HECHO EN 01 / 2014 - UNIVERSIDAD NACIONAL DE CAJAM
fg = ' blue ')
Texto_General . grid ( row =0 , column = 1 )
# -- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- -- -- --- -- -- --- -- -- --- -Im_barra = PhotoImage ( file = ' frame . gif ')
Im_grilla = PhotoImage ( file = ' grilla . gif ')
Im_Borrador = PhotoImage ( file = ' borrador . gif ')
Im_Materiales = PhotoImage ( file = ' materiales_damier . gif ')
Im_Procesos = PhotoImage ( file = ' proceso . gif ')
Im_Apoyosgeneral = PhotoImage ( file = ' movil . gif ')
Im_Fuerzas1 = PhotoImage ( file = ' FP . gif ')
Im_Fuerzas2 = PhotoImage ( file = ' FD . gif ')
# -- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- --- -- -- --- -- -- --- -- -- --- -- -- --- -- --- -- barra_nodal = Button ( barra_dibujo , image = Im_barra ,
command = dibuja_barra , width = 30 , height = 30 ). place ( x = 20 , y = 20 )
209
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
grillas_nodal = Button ( barra_dibujo , image = Im_grilla ,
command = grilla , width = 30 , height = 30 ). place ( x = 55 , y = 20 )
Borrar = Button ( barra_dibujo , image = Im_Borrador ,
command = Borrador , width = 30 , height = 30 ). place ( x = 20 , y = 60 )
Materiales_Elementos = Button ( barra_dibujo ,
image = Im_Materiales , width = 30 , height = 30 ,
command = Materiales_Calculo ). place ( x = 55 , y = 60 )
Prueba_ultima = Button ( barra_dibujo , image = Im_Procesos ,
command = nodos_calculo , width = 30 , height = 30 ). place ( x = 90 , y = 20 )
Boton_Apoyos = Button ( barra_dibujo , image = Im_Apoyosgeneral ,
command = apoyos_universales , width = 30 , height = 30 ). place ( x = 90 , y = 60 )
Boton_Fuerzas1 = Button ( barra_dibujo , image =
Im_Fuerzas1 , width = 30 , height = 30 ,
command = Fuerzas_puntuales ). place ( x = 130 , y = 20 )
Boton_Fuerzas2 = Button ( barra_dibujo , image =
Im_Fuerzas2 , width = 30 , height = 30 ,
command = Fuerzas_distribuidas ). place ( x = 130 , y = 60 )
# -------- -------- --------- -------- --------- -------- ------''' MODELADO DEL MAUSE PRIMEROS PROPIEDADES DEL MOUSE '''
Coordenada_mause = Label ( ventana )
Coordenada_mause . grid ( row =4 , column = 1 )
ventana . mainloop ()
210
Captulo 11
Figuras y Otros.
Figura 11.1: Interaccin suelo Estructura.
211
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 11.2: Aplicaciones del FEM(Finite Element Method.)
Figura 11.3: Mecnica de Fluidos FEM(Finite Element Method)
212
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
Figura 11.4: Idealizacin de un sistema de Fluidos.
Figura 11.5: Puente Idealizado con Elementos Finitos.
213
Bibliografa
[1] H. Partl: Perez Villar Luis Alberto,Tesis Anlisis de Estructuras por Mtodo de
Elementos finitos Asistido por computadora IPN,(2003)
[2] H. partl: O.CZienkiewichz-R.LTaylor,El Mtodo de Elementos Finitos,McGrawHill,(1998)
[3] H. partll: Eugenio Oate,Clculo de Estructuras por el mtodo de elementos finitos Anlisis Esttico Lineal,C.I de Mtodos Numricos en Ingeniera UPC,(1992)
[4] H. partll: Sergio Gallegos Czares,Anlisis de Slidos y Estructural mediante el
mtodo de Elementos finitos,Tecnolgico de Monterrey-LIMUSA,(2008)
[5] H. partll: Sandro Tosi,Matplotlib for Python Develops,Birmingham-Noviembre
2009.
[6] H.
partll:
Egor
P.Popov(University
of
California-Berkeley),Mecnica
de
Slidos,Educational-Person,Edition(2000)
[7] H. partll: Manuel Vasquez,Eloiza Lopez,El Mtodo de Elementos Finitos Aplicado al anlisis Estructural.
[8] H. partll: Arturo Tenna Colunga ,Anlisis de Estructuras con Mtodos Matriciales,Limusa Mxico-2007.
[9] H. partll: Manuel Casado Martin,Lenguaje de Programacin Python Orientado a
Objetos,Santiago Gualadajara Perez,Universidad de Salamanca.
214
Universidad Nacional de Cajamarca.
Mtodo de Elementos Finitos.
2014.
Asesor:Ing Marco Mendoza Linares.
Tesista:Christian G. Salcedo Malaver
[10] H. partll: Gabriel Valiente Feruglio,Composicin de textos cientficos con LaTeX
215