Índice ... 1
Capítulo 1 Ejemplo paso a paso... 3
1.1. Descripción del problema ... 3
1.2. Preproceso: Malla de elementos finitos ... 4
1.3. Proceso de cálculo ... 6
1.4. Obtención, organización y presentación de resultados...14
Capítulo 2 Problemas unidimensionales de campo escalar ...23
2.1. Deflexión de una viga con elementos unidimensionales lineales ...23
2.2. Deflexión de una viga con elementos unidimensionales cuadráticos...29
Capítulo 3 Problemas bidimensionales de campo escalar ...33
3.1. Barra prismática sometida a torsión pura...35
3.1.1. Descripción del problema y definición de la malla de elementos finitos .36 3.1.2. Proceso de cálculo y resultados obtenidos ...37
3.1.3. Resultados con diferentes mallas de elementos finitos...40
3.2. Infiltración del agua en suelos permeables ...47
3.3. Infiltración del agua en acuíferos ...50
Capítulo 4 Problemas de elasticidad bidimensional...53
4.1. Formulación en elementos finitos...53
4.2. Implementación en el programa PEFiCA ...56
4.3. Ejemplo de aplicación: ménsula de concreto ...59
4.4. Ejemplo de aplicación: principio de Saint Venant ...62
4.5. Ejemplo de aplicación: estructura de drenaje...65
Ejemplo paso a paso
Con el fin de preparar al usuario en el manejo del programa, este capítulo presenta la solu-ción de un problema de elasticidad bidimensional utilizando PEFiCA, en el cual se obtiene
la distribución de esfuerzos en una lámina de aluminio con orificio en el centro sometida a presión uniforme en dos de sus caras.
Inicialmente se indica la geometría, las condiciones de contorno y las acciones externas aplicadas sobre la lámina, después se describe la construcción de la malla de elementos finitos, mostrando como se introduce en las hojas de cálculo las propiedades generales del problema, las coordenadas de los nudos, las conectividades de los elementos, las condicio-nes de borde y las fuerzas actuantes. El proceso de cálculo, compilado y ejecutado, se explica por tareas particulares realizadas por pequeños grupos de líneas de código. Entre las rutinas llamadas desde la macro principal están las instrucciones de postproceso dedica-das a la impresión de las matrices creadedica-das y obtenidedica-das en el proceso de cálculo y a la pre-sentación gráfica en mapas de colores de los resultados sobre la malla de elementos finitos.
Observación. La carpeta \ejemplos\ incluida en los medios de instalación del programa PEFiCA contiene el ejemplo paso a paso, los ejemplos de aplicación y de
validación presentados en este documento. En particular el libro de Excel llamado
PEFICA-Ejemplo-Lamina.xls corresponde al ejemplo de la lámina sometida a ten-sión con orificio en el centro descrito en este capítulo.
1.1.
Descripción del problema
Una lámina cuadrada de L = 8.0 pul de lado, t = 0.1 pul de espesor y un orificio en el centro de diámetro d = 1 pul, está sometida a una carga distribuida por unidad de longitud
= x
q 1.0 k/pul en dirección x como se indica en la Figura 1.1. La lámina esta hecha de
aluminio cuyo módulo de Young y relación de Poisson son iguales a E = 10 000 k/pul2 y ν= 0.3, respectivamente.
El objetivo del problema es encontrar los desplazamientos, las deformaciones y los es-fuerzos sobre la lámina. En particular, se desea calcular la distribución del esfuerzo nor-mal σxx en la línea AB (Figura 1.1).
Para el nivel de carga aplicado el material es elástico y las deformaciones son infinite-simales. De acuerdo con la geometría y las condiciones de carga se puede considerar éste problema como un estado plano de esfuerzos.
1.2.
Preproceso: Malla de elementos finitos
Debido a que el problema es doblemente simétrico, se analiza una cuarta parte de la lámina, colocando restricciones en dirección x sobre la frontera AB y restricciones en y sobre la frontera CD, como se indica en la Figura 1.1. El tipo de elemento utilizado es el triangular lineal de elasticidad plana o también denominado elemento triangular de deformación cons-tante.
La teoría de la elasticidadestablece que la concentración de esfuerzos ocurre en la ve-cindad del orificio, por lo tanto es necesario utilizar una red de elementos más densa alre-dedor de este.
Figura 1.1. Lámina sometida a tensión con orificio en el centro. Esquema descriptivo: (a) lámina
completa, (b) región modelada, condiciones de carga y de borde.
Se construye una malla de 108 nudos y 176 elementos, introduciendo las coordenadas de los nudos en la hoja de cálculo TB_XYZ (Figura 1.2) y las conectividades de los
elemen-tos en la hoja de cálculo TB_ELE (Figura 1.3).
Figura 1.2. Lámina sometida a tensión con orificio en el centro. Hoja de cálculo TB_XYZ
x q B D E C A (b) 2 L 2 L x q x q A B C D E (a) d x q B D E C A (b) x q B D E C A (b) 2 L 2 L x q x q A B C D E (a) d 2 L 2 L x q x q A B C D E (a) d
Los nudos asociados a cada elemento deben numerarse en sentido anti-horario a partir del nudo inicial i presentado en la columna NI de la tabla TB_ELE. Al utilizar solo
elemen-tos triangulares lineales el número máximo de nudos por elemento es de 3.
Las características generales de la malla, las propiedades mecánicas del material y los parámetros de dibujo están contenidos en la hoja TB_GEN mostrada en la Figura 1.4.
En un espacio bidimensional el campo de desplazamientos se describe por las compo-nentes de desplazamiento lineal en x y en y: ux y uy: por lo tanto, el número de grados de
libertad por nudo es igual a 2.
Figura 1.3. Lámina sometida a tensión con orificio en el centro. Hoja de cálculo TB_ELE
área de código
explorador de proyectos
ventana de propiedades
del objeto ventana de inspección
de variables área de código explorador de proyectos ventana de propiedades
del objeto ventana de inspección
de variables
1.3.
Proceso de cálculo
El algoritmo de cálculo se escribe en el Editor de Visual Basic (VBE), como un grupo de subrutinas organizadas en módulos según su objetivo, por ejemplo, las rutinas encargadas de crear la matriz de rigidez de diferentes tipos de elementos finitos están contenidas en el módulo MdRG, mientras que, las rutinas que realizan las operaciones matriciales básicas se
encuentran en el módulo MdMT.
Para acceder al código del programa desde la hoja de cálculo se hace clic de forma se-cuencial sobre el menú Herramientas > Macro > Editor de Visual Basic. Como resultado
se activa la ventana del editor de Visual Basic mostrada en la Figura 1.5, en la cual se crean, editan, depuran y ejecutan las macros utilizadas sobre Microsoft Excel.
Figura 1.5. Editor de Visual Basic en Excel
El explorador de proyectos ubicado al lado izquierdo del VBE, presenta los objetos y los módulos que hacen parte del libro de Excel. Está ventana se activa haciendo clic en el menú Ver > Explorador de proyectos. A la derecha del VBE se ubica el código escrito en
un módulo específico, el cual se activa desde el menú Ver > Código.
El análisis por elementos finitos se realiza ejecutando la subrutina principal de cálculo
PEFICA() ubicada en el módulo Md. En esta rutina se construye el procedimiento general
invocando subrutinas que realizan tareas específicas.
Inicialmente se declaran las variables escalares y las matrices que se utilizarán durante el cálculo, en esto se recomienda describir cada variable mediante comentarios y separar la declaración de los escalares y las matrices, como se indica en la Figura 1.6. A continua-ción se lee la informacontinua-ción general y la geometría del problema introducida en las hojas de cálculo TB_GEN, TB_XYZ y TB_ELE, mediante las líneas de código presentadas en la Figura
'declaración de variables escalares
Dim NNUD As Integer, NELE As Integer, NGLE As Integer, NGLN As Integer, _ NNUE As Integer, NGLD As Integer, NGLC As Integer, NDIM As Integer, _ NMAE As Integer
Dim EYOU As Double, POIS As Double, ESPE As Double, PXEL As Double, _ PYEL As Double, LADO As Integer, SP As Double, TP As Double Dim I As Integer, J As Integer, FILA As Integer, COLM As Integer, _ IELE As Integer, IDST As Integer
'NNUD número de nudos 'NELE número de elementos
'NGLE número de grados de libertad por elemento 'NGLN número de grados de libertad por nudo :
:
'declaración de matrices
Dim ELE() As Integer, MGL() As Integer, INC() As Integer, MRE() As Integer, _ NUD() As Integer, LNU() As Integer, LEL() As Integer
Dim XYZ() As Double, KEL() As Double, KGL() As Double, FEL() As Double, _ FGL() As Double
Dim DGL() As Double, DGC() As Double, DGT() As Double, DXY() As Double Dim DEL() As Double, BEL() As Double, EPE() As Double, CEL() As Double, _ STE() As Double, SXX() As Double, SPE() As Double, TPE() As Double Dim NXX() As Double, FXY() As Double, VO() As Double, DNU() As Double, _ NAB() As Double, EAB() As Double
Dim GEM(10, 1) As Double, GRA() As Integer, TM1() As Double, TM2() As Double
Figura 1.6. Lámina sometida a tensión con orificio en el centro. Parte de la rutina PEFICA().
Declaración de variables.
'parámetros predefinidos
'posición inicial de la fila en la hoja TB_OUT FILA = 2
COLM = 1
EDLIMH "TB_OUT" 'limpiar la hoja de salida 'leer parámetros generales
EDLECE "TB_GEN", 5, 2, NNUD 'número de nudos EDLECE "TB_GEN", 6, 2, NELE 'número de elementos
EDLECE "TB_GEN", 7, 2, NGLN 'grados de libertad por nudo EDLECE "TB_GEN", 8, 2, NNUE 'número de gl por elemento EDLECE "TB_GEN", 9, 2, NDIM 'número de dimensiones 'leer geometría
EDLECR "TB_XYZ", 5, 2, XYZ(), NNUD, NDIM 'leer matriz de coord. nudos EDLECI "TB_ELE", 5, 2, ELE(), NELE, NNUE 'leer matriz de conectividades '(opcional) escribir geometría
EDIMPR "TB_OUT", "XYZ()", FILA, COLM, XYZ() 'escribir matriz de coord. nudos EDIMPI "TB_OUT", "ELE()", FILA, COLM, ELE() 'escribir matriz de conectividades '(opcional) dibujar geometría
'GRAFDE GRA() 'si no tiene parámetros de dibujo puede activar esta línea EDLECI "TB_GEN", 33, 2, GRA(), 14, 1 'leer parámetros de dibujo
GRAGEO XYZ(), ELE(), GRA(), 2 'dibuja elementos
'leer propiedades mecánicas
EDLECE "TB_GEN", 12, 2, EYOU 'módulo de Young EDLECE "TB_GEN", 13, 2, POIS 'relación de Poisson EDLECE "TB_GEN", 14, 2, ESPE 'espesor
'matriz de restricciones
EDTABI "TB_RES", 5, 2, MRE(), NNUD, NGLN 'leer matriz de restricciones EDIMPI "TB_OUT", "MRE()", FILA, COLM, MRE() 'escribir matriz de restric.
Figura 1.7. Lámina sometida a tensión con orificio en el centro. Parte de la rutina PEFICA().
Después de ejecutadas estas instrucciones, se obtiene en pantalla el dibujo de la malla de elementos finitos mostrado en la Figura 1.8, donde se indican la posición y numeración de los nudos y los elementos. La línea al lado del número del elemento señala el nudo ini-cial del mismo.
Las condiciones de borde del problema de elasticidad corresponden a valores conocidos de los desplazamientos en puntos específicos. En este ejemplo en particular el desplaza-miento en dirección y es cero (uy =0) sobre la línea CD (Figura 1.1) y en consecuencia,
también lo es sobre los nudos 1, 2, 3, 4, 5, 6, 7, 8, 92 y 105 mostrados en la Figura 1.8. En cambio, los nudos 17, 25, 26, 27, 28, 29, 30, 31, 90, 92, 105 y 106 (Figura 1.8) sobre la línea AB (Figura 1.1), tienen un desplazamiento ux =0.
La información relacionada con los grados de libertad conocidos mostrada en la Figura 1.9 se guarda en la hoja TB_RES. Allí se indica con el valor entero de 001 que el grado de
libertad correspondiente es conocido y con 000 si es desconocido. La magnitud de los
desplazamientos no hace parte de esta tabla, suponiendo por defecto que todo desplaza-miento conocido es igual a cero (restricción).
Figura 1.8. Lámina sometida a tensión con orificio en el centro. Malla de elementos finitos
La matriz de incidencias indica el código de cada grado de libertad asociado a cada uno de los elementos. Con la información anterior se puede generar esta matriz así:
• Dada la ubicación de los grados de libertad conocidos, se establece la numeración de los grados de libertad de los nudos. Para tal caso, primero se numeran de forma
consecutiva los grados de libertad desconocidos agrupándolos y después se numeran los grados de libertad conocidos.
• Dada la matriz de conectividades de los elementos y la matriz de grados de libertad por cada nudo obtenida en el ítem anterior, se establecen los grados de libertad por cada elemento o matriz de incidencias.
Figura 1.9. Lámina sometida a tensión con orificio en el centro. Hoja de cálculo TB_RES
El algoritmo de cálculo correspondiente es el siguiente:
'construcción de la matriz de incidencias
NGLNUD MGL(), MRE() 'construir la matriz de grados de libertad por nudo EDIMPI "TB_OUT", "MGL()", FILA, COLM, MGL() '(opcional) escribir la matriz NGLELE INC(), MGL(), ELE() 'construir la matriz de gl por elemento
'o matriz de incidencias 'numero de grados de libertad
NGLC = MTSUCI(MRE()) 'número de grados de libertad conocidos NGLD = NNUD * NGLN - NGLC 'número de grados de libertad desconocidos
Figura 1.10. Lámina sometida a tensión con orificio en el centro. Parte de la rutina PEFICA().
Construcción de la matriz de incidencias.
Con la geometría de la malla de elementos finitos descrita por la matriz de coordenadas, la matriz de conectividades de los elementos, la matriz de incidencias y las propiedades mecánicas del material se construye la matriz de rigidez de cada uno de los elementos y se ensambla la matriz de rigidez del sistema, de acuerdo con el siguiente código:
'matriz de rigidez de la estructura (submatriz de cálculo Kdd)
MTCONS KGL(), 0, NGLD, NGLD 'crea matriz de rigidez llena de ceros de tamaño '(gl desconocidos)x(gl desconocidos)
For I = 1 To NELE
'crear matriz de rigidez del elemento
KTRIEL KEL(), XYZ(), ELE(), I, EYOU, POIS, ESPE 'ensamblaje de la matriz de rigidez del elemento ENSAMK KGL(), KEL(), INC(), I
'(opcional) escribir matriz de rigidez de cada elemento EDIMPR "TB_OUT", "KEL() elemento #" & I, FILA, COLM, KEL() Next I
'(opcional) escribir matriz de rigidez del sistema EDIMPR "TB_OUT", "KGL() (Kdd)", FILA, COLM, KGL()
Figura 1.11. Lámina sometida a tensión con orificio en el centro. Parte de la rutina PEFICA().
Creación de la matriz de rigidez
Los resultados preliminares del proceso pueden escribirse en cualquier hoja de cálculo, sin embargo se recomienda utilizar una sola hoja para tal fin. En este ejemplo la hoja de resultados de denomina TB_OUT.
Las instrucciones de impresión como EDIMPR y EDIMPI escriben los coeficientes de una
matriz especificada con un formato especial. La Figura 1.12 y la Figura 1.13 muestran dicho formato el cual tiene las siguientes características:
• Cada matriz presenta un título identificador en color negro que termina con el tama-ño de la misma entre paréntesis.
• Los rótulos en color gris C1, C2, …. y F1, F2, … indican el número de la
colum-na y de la fila respectivamente.
• Los coeficientes positivos de la matriz se presentan en color azul, los negativos en color rojo y los coeficientes iguales a cero en color negro.
• Los coeficientes de matrices reales se escriben en notación científica con formato
0.0000E+00. En cambio, los coeficientes de matrices enteras se representan con
formato 000.
La carga distribuida aplicada a la lámina se representa como una presión sobre el lado de los elementos de la malla vecinos a la línea DE (Figura 1.1).
La tabla TB_FUE presentada en la Figura 1.14, contiene los datos relacionados con las
cargas distribuidas en el volumen de un elemento finito y las cargas distribuidas en un lado del mismo. Las columnas WX y WY de la tabla y las componentes wxy wy de la Figura
1.15(a) indican las fuerzas de cuerpo o cargas por unidad de volumen aplicadas en las di-recciones x y y respectivamente. En cambio, las columnas PX y PY en la tabla y las
com-ponentes pxy py en la Figura 1.15(b), representan las presiones o cargas por unidad de área aplicadas sobre un lado del elemento.
Figura 1.12. Formato de impresión de matrices con términos enteros
Figura 1.13. Formato de impresión de matrices con términos reales
La columna LADO de la tabla establece el lado del elemento donde se aplica la presión.
Como lo indica la Figura 1.15(b), el lado 1 corresponde al segmento ij, el lado 2 es el seg-mento jk y el lado 3 es el segseg-mento ik, recordando que los nudos se numeran en sentido anti-horario a partir del nudo i.
Matriz de términos enteros Título de matriz Rótulos indicadores de columnas de la matriz Rótulos indicadores de filas de la matriz Coeficiente entero positivo Coeficiente entero cero Tamaño de matriz
Matriz de términos enteros Título de matriz Rótulos indicadores de columnas de la matriz Rótulos indicadores de filas de la matriz Coeficiente entero positivo Coeficiente entero cero Tamaño de matriz Título de matriz Rótulos indicadores de columnas de la matriz Rótulos indicadores de filas de la matriz Coeficiente real positivo Coeficiente real cero Coeficiente real negativo
Matriz de términos reales Tamaño de matriz Título de matriz Rótulos indicadores de columnas de la matriz Rótulos indicadores de filas de la matriz Coeficiente real positivo Coeficiente real cero Coeficiente real negativo
Matriz de términos reales Tamaño de matriz
nudo i nudo j nudo k y w x w (a) y lado 3 x p lado 2 nudo i nudo j nudo k lado 1 y p lado 3 lado 2 nudo i nudo j nudo k lado 1 x (b) nudo i nudo j nudo k y w x w nudo i nudo j nudo k y w x w (a) y lado 3 x p lado 2 nudo i nudo j nudo k lado 1 y p lado 3 lado 2 nudo i nudo j nudo k lado 1 x (b) y lado 3 x p lado 2 nudo i nudo j nudo k lado 1 y p lado 3 lado 2 nudo i nudo j nudo k lado 1 x (b)
Figura 1.14. Lámina sometida a tensión con orificio en el centro. Hoja de cálculo TB_FUE
Figura 1.15. Cargas aplicadas sobre un elemento triangular lineal: (a) carga distribuida sobre el
volumen del elemento en dirección x y y, (b) carga por unidad de área distribuida sobre el lado 2 del elemento en dirección x y y.
Como ejemplo se presenta a continuación el procedimiento de asignación de cargas so-bre el elemento 20 de malla.
• Se identifica los elementos finitos cuyo lado coincide con la zona de aplicación de la carga, entre ellos el elemento 20 mostrado en color gris en la Figura 1.16(a). • Observando la malla de elementos finitos (Figura 1.16(a)-(b)) y la tabla de nudos
asociados a los elementos TB_ELE (Figura 1.16(c)), se establece el lado donde se
aplica la carga. Para el elemento 20, la presión se aplica sobre el lado 2 (o lado jk), en dirección x.
(b) (c) (a) D E pul t pul k qx 1 . 0 / 1 = = lado 3 2 / 10k pul px= lado 2 nudo 1 nudo 10 lado 1 elem. 20 nudo 87 (inicial) (d) (b) (c) (a) D E pul t pul k qx 1 . 0 / 1 = = D E pul t pul k qx 1 . 0 / 1 = = lado 3 2 / 10k pul px= lado 2 nudo 1 nudo 10 lado 1 elem. 20 nudo 87 (inicial) lado 3 2 / 10k pul px= lado 2 nudo 1 nudo 10 lado 1 elem. 20 nudo 87 (inicial) (d)
• En la tabla TB_FUE se escribe el valor de la presión aplicada
2 / 10 1 . 0 ) / 1
( k pul pul k pul
t q
px = x = = como lo indica la Figura 1.16(d).
Figura 1.16. Lámina sometida a tensión con orificio en el centro. Cargas aplicada sobre un
ele-mento 20: (a) eleele-mentos finitos donde se aplica la carga, (b) carga por unidad de área distribuida sobre el lado 2 del elemento 20, (c) Nudos asociados al elemento 20 en la hoja de cálculo
TB_ELE, (d) Fuerzas sobre el elemento 20 en la hoja de cálculo TB_FUE
A partir de la información contenida en la tabla TB_FUE, la matriz de coordenadas, la
matriz de conectividades de los elementos, la matriz de incidencias y las propiedades me-cánicas del material se construye el vector de fuerzas de cada uno de los elementos y se ensambla el vector de fuerzas del sistema, de acuerdo con el código mostrado en la Figura 1.17.
En este caso, el vector de desplazamientos desconocidos corresponde a la solución del sistema de ecuaciones simultáneas de la forma
[
Kdd]
{ } { }
ud = fd dado que los desplaza-mientos conocidos son iguales a cero. La instrucción SOCHLK presentada en la Figura 1.18utiliza el método de Cholesky modificado para resolver de forma directa sistemas de ecua-ciones simultáneas con matrices simétricas. Un vector completo de desplazamientos
{ } { } { }
[
]
Tc d
n u u
u = , estará compuesto por los subvectores de desplazamientos desconocidos
{ }
ud y conocidos{ } { }
T c'vector de fuerzas de la estructura (subvector de cálculo Fd)
MTCONS FGL(), 0, NGLD, 1 'crea vector fuerzas lleno de ceros de tamaño '(número de gl desconocidos)x(1)
For I = 1 To NELE
'leer cargas distribuidas en elementos
EDLECE "TB_FUE", 4 + I, 1, IELE 'numero de elemento If IELE = 0 Then Exit For
EDLECE "TB_FUE", 4 + I, 4, PXEL 'carga por unidad de área en x EDLECE "TB_FUE", 4 + I, 5, PYEL 'carga por unidad de área en y
EDLECE "TB_FUE", 4 + I, 6, LADO 'lado del elem donde se aplica la carga 'crear vector de fuerzas en el elemento
FTRIES FEL(), XYZ(), ELE(), IELE, ESPE, PXEL, PYEL, LADO 'ensamblaje del vector de fuerzas en el elemento
ENSAMV FGL(), FEL(), INC(), IELE Next I
'(opcional) escribir vector de fuerzas del sistema EDIMPR "TB_OUT", "FGL()", FILA, COLM, FGL()
Figura 1.17. Lámina sometida a tensión con orificio en el centro. Parte de la rutina PEFICA().
Creación del vector de fuerzas en el sistema.
1.4.
Obtención, organización y presentación de resultados
Este vector se presenta ordenado según la numeración de los grados de libertad desconoci-dos, sin embargo, es posible mostrar las componentes en dirección x y y del vector de des-plazamiento de cada nudo de la estructura, ordenados según la numeración de los nudos. La rutina ORGLFU es la encargada de realizar este tipo de ordenamiento, el cual consiste en:
• Leer la matriz que contiene la numeración de los grados de libertad por nudo deno-minada en el ejemplo MGL() y el vector de desplazamientos de la estructura
ordena-do de acuerordena-do con la numeración de los graordena-dos de libertad definiordena-do como DGT().
• Crear una tabla que contiene por cada fila, las componentes de desplazamiento en x y en y de cada nudo denominada en este ejemplo DXY(). En general, el número de
filas de esta matriz corresponde al número de nudos de la estructura y la cantidad de columnas coincide con el número de grados de libertad posibles en cada nudo, al igual que en la matriz de grados de libertad por nudo MGL(). En elasticidad plana
los grados de libertad en cada nudo corresponden a las dos componentes del vector de desplazamientos ux,uy.
• Como lo indica la Figura 1.19, la componente j del desplazamiento de un nudo i contenida en la tabla DXY() es igual al coeficiente del vector de desplazamientos FGL() en la fila correspondiente al grado libertad de la componente de
desplaza-miento j en el nudo i indicada en la matriz MGL(). Es decir, DXY(I,J)=FGL((MGL(I,J),1).
• Si el número asignado a un grado de libertad en la matriz MGL() es igual a cero, el
coeficiente correspondiente en la tabla DXY() también será igual a cero. Es decir, si MGL(I,J)=000 entonces DXY(I,J)=0.0000+E00.
'desplazamientos nodales en la estructura
SOCHLK KGL(), FGL(), DGL() 'solucionar sistema de ecuaciones MTCONS DGC(), 0, NGLC, 1 'vector de desplazamientos conocidos
EDIMPR "TB_OUT", "DGL()", FILA, COLM, DGL() '(opcional) escribir desplaz MTADJU DGT(), DGL(), DGC() 'construir vector de desplazamientos (desc y con) ORGLFU DXY(), DGT(), MGL() 'ordenar desplazamientos en el formato
'(NUDO),(UX),(UY)
EDIMPR "TB_OUT", "DXY()", FILA, COLM, DXY() 'escribir desplazamientos 'dibujar deformada
MTPORE DXY(), 100#, TM1() 'multiplicar desplazamientos por un factor de exag. MTSUMA XYZ(), TM1(), TM2() 'sumarle estos desplazamientos a las coord orig GRA(13, 1) = -1 'parámetro gráfico de numeración de elementos sin indicador
'de nudo inicial
GRAGEO TM2(), ELE(), GRA(), 2 'dibujar geometría deformada
Figura 1.18. Lámina sometida a tensión con orificio en el centro. Parte de la rutina PEFICA().
Cálculo de los desplazamientos de la estructura y obtención de la geometría deformada.
Figura 1.19. Construcción de la tabla de componentes de desplazamientos ordenados según la
numeración de los nudos mediante la instrucción ORGLFU.
Para dibujar la geometría deformada se suman los valores de desplazamiento amplifica-dos a las coordenadas originales de la estructura. La última línea en el código anterior ge-nera la Figura 1.20.
El campo de deformaciones se obtiene como la derivada del vector de desplazamiento con respecto a la posición. En el interior de un elemento finito, las componentes de la de-formación εxx,εyy,γxy en un espacio bidimensional son iguales al producto entre la matriz de operadores diferenciales actuando sobre funciones de forma (e)
B y el vector de despla-zamientos en los nudos del elemento (e)
n
U , en otras palabras ε(e) =
[
εxx,εyy,γxy]
T =B(e)Un(e). En general, la matriz (e)B establece el lugar en el interior del elemento donde se eva-lúa tal deformación, sin embargo, en el elemento triangular lineal o elemento de deforma-ción constante la matriz (e)
B es independiente de la posición dentro del elemento.
Matriz de grados de libertad por nudo
desplazamientos ordenados por grados de libertad desplazamientos ordenados por numeración de nudos nudo desplazamiento en x en y grado de libertad desplazamiento nudo
grado de libertad que representa el desplazamiento
en x en y
Matriz de grados de libertad por nudo
desplazamientos ordenados por grados de libertad desplazamientos ordenados por numeración de nudos nudo desplazamiento en x en y grado de libertad desplazamiento nudo
grado de libertad que representa el desplazamiento
grados de libertad del elemento 1 nudo i =77 nudo j =86 nudo k =85 gl 137 gl 138 gl 156 gl 155 gl 153 gl 154 matriz de incidencias vector de desplazamientos de la estructura vector de desplazamientos del elemento 1 grados de libertad del elemento 1 nudo i =77 nudo j =86 nudo k =85 gl 137 gl 138 gl 156 gl 155 gl 153 gl 154 grados de libertad del elemento 1 nudo i =77 nudo j =86 nudo k =85 gl 137 gl 138 gl 156 gl 155 gl 153 gl 154 matriz de incidencias vector de desplazamientos de la estructura vector de desplazamientos del elemento 1
Figura 1.20. Lámina sometida a tensión con orificio en el centro. Geometría deformada
Figura 1.21. Extracción del vector del desplazamientos en el elemento 1mediante la instrucción EXTRAV.
Las componentes de esfuerzo contenidas en el vector
[
]
T xy yy xx e σ σ σ , , ) ( = σ son elresul-tado del producto entre matriz de constantes elásticas y el vector de componentes de la de-formación, es decir (e) (e)ε(e)
C
σ = .
'calcular y dibujar esfuerzos '
CELAPL CEL(), EYOU, POIS 'constantes elásticas del material IDST = 1
'IDST =1 dibuja la componente de esfuerzo Sxx 'IDST =2 dibuja la componente de esfuerzo Syy 'IDST =3 dibuja la componente de esfuerzo Sxy 'IDST =4 dibuja esfuerzo principal Sp1
'IDST =5 dibuja esfuerzo principal Sp2 'IDST =6 dibuja esfuerzo de Von Mises
MTCONS SXX(), 0, NELE, NNUE 'crear tabla de esfuerzos por elemento For I = 1 To NELE
'extraer vector de desplazamientos en el elemento I EXTRAV DGT(), DEL(), INC(), I
'(opcional) escribir vector de desplazamiento del elemento I EDIMPR "TB_OUT", "DEL() elem # " & I, FILA, COLM, DEL()
BTRIEL BEL(), XYZ(), ELE(), I 'crear la matriz B del elemento I MTMULT BEL(), DEL(), EPE() 'calcular deformación en el elemento I MTMULT CEL(), EPE(), STE() 'calcular esfuerzo en el elemento I '(opcional) escribir vector de componentes de esfuerzo del elemento I EDIMPR "TB_OUT", "STE() elem # " & I, FILA, COLM, STE()
For J = 1 To NNUE Select Case IDST
Case 1 To 3 'esfuerzos Sxx, Syy, Sxy SXX(I, J) = STE(IDST, 1)
Case 4 To 5 'esfuerzos principales Sp1, Sp2 TRPRIN STE(), SPE(), TPE()
SXX(I, J) = SPE(IDST - 3, 1) Case 6 'esfuerzo de Von Mises SXX(I, J) = TRVMIS(STE())
End Select Next J
Next I
'componente de esfuerzo por elemento
'escribir componente de esfuerzo IDST por elemento EDIMPR "TB_OUT", "SXX()", FILA, COLM, SXX() 'dibujar componente de esfuerzo IDST por elemento GRAFIE XYZ(), ELE(), SXX(), GRA(), 7
'componente de esfuerzo por nudo
'calcular valores promedio de esfuerzo en los nudos ORSONO NXX(), SXX(), ELE(), NNUD
'escribir componente de esfuerzo IDST por nudo EDIMPR "TB_OUT", "NXX()", FILA, COLM, NXX()
'dibujar componente de esfuerzo promedio IDST por nudo GRAFIF XYZ(), ELE(), NXX(), GRA(), 6
Figura 1.22. Lámina sometida a tensión con orificio en el centro. Parte de la rutina PEFICA().
Calculo de las componentes de esfuerzo en la estructura.
El vector de desplazamientos en los nudos de un elemento debe obtenerse del vector de desplazamientos de la estructura obtenido en el apartado anterior, mediante un procedi-miento inverso al ensamblaje en el cual se extraen los coeficientes del vector de la
estructu-esfuerzos en elementos triangulares lineales nudo i nudo j nudo k xx σ yy σ xy σ esfuerzo constante
nudo i nudo j nudo k
vector esfuerzos de los elementos 1,2 y 3
matriz de la componente de esfuerzos xx por elemento elemento esfuerzos en elementos triangulares lineales nudo i nudo j nudo k xx σ yy σ xy σ xx σ yy σ xy σ esfuerzo constante
nudo i nudo j nudo k
vector esfuerzos de los elementos 1,2 y 3
matriz de la componente de esfuerzos xx por elemento elemento
ra ubicados en los grados de libertad asociados al elemento. La instrucción EXTRAV
es-quematizada en la Figura 1.21 se encarga de esta tarea.
Dado que la lámina esta conformada por un material homogéneo la matriz de constantes elásticas es la misma para todos los elementos finitos, y por esta razón en el código se defi-ne fuera del ciclo de los elementos.
Existen varias formas de organizar los resultados de esfuerzos de acuerdo con las canti-dades de interés en el problema. El código presentado en la Figura 1.22 calcula y dibuja un tipo de esfuerzo seleccionado con la variable IDST, tal como las componentes de
esfuer-zos en el plano σxx,σyy,σxy, los esfuerzos principales σ1,σ2 o el esfuerzo de von Mises vm
σ .
La matriz SXX() guarda los valores de una componente de esfuerzo en los nudos de
ca-da elemento finito. Como se observa Figura 1.23, el esfuerzo en un elemento triangular lineal es igual en sus tres nudos, lo cual es particular en este tipo de elementos. En general, la matriz de operadores diferenciales actuando sobre funciones de forma cambia con res-pecto a la posición en el interior del elemento, como en el elemento rectangular bi-lineal o el cuadrilateral isoparamétrico, en cuyo caso el algoritmo cambia un poco con respecto al indicado para elementos triangulares en la Figura 1.23.
Figura 1.23. Cálculo de la componente de esfuerzo σxx en cada elemento triangular lineal
(resul-tado elemental).
Dado que los esfuerzos al igual que las deformaciones son el resultado de la derivación de las funciones de aproximación o campo de desplazamientos en el caso de problemas de elasticidad, la función de esfuerzos en la malla es discontinua en los nudos de los elemen-tos, es decir, los elementos que comparten un nudo común presentan valores diferentes de esfuerzo en el mismo. Para obtener una respuesta continua de los campos derivados se recurre a calcular el promedio entre los valores aportados por todos los elementos al nudo específico. La instrucción ORSONO calcula los valores nodales de esfuerzo a partir de la
nudo i nudo j nudo k elemento
nudo i nudo j nudo k elemento
calcular
promedio vector de esfuerzos promedio en los nudos (resultado nodal) matriz de esfuerzos en los elementos
(resultado elemental)
matriz de conectividades comparten el nudo 86elementos finitos que
esfuerzo promedio nudo
nudo i nudo j nudo k elemento nudo i nudo j nudo k elemento
nudo i nudo j nudo k elemento nudo i nudo j nudo k elemento
calcular
promedio vector de esfuerzos promedio en los nudos (resultado nodal) matriz de esfuerzos en los elementos
(resultado elemental)
matriz de conectividades comparten el nudo 86elementos finitos que
esfuerzo promedio nudo
matriz de esfuerzos por elemento SXX() y de la matriz de conectividades ELE(), como lo
ilustra la Figura 1.24.
Las instrucciones GRAFIE y GRAFIF dibujan regiones de colores que describen la
distri-bución del esfuerzo σxx en los elementos y en los nudos respectivamente, como se muestra en la Figura 1.25. De la misma forma se pueden obtener los resultados para otras compo-nentes de esfuerzo, los esfuerzos principales o el esfuerzo de von Mises, tan solo cambian-do el valor del parámetro IDST. Para dibujar la distribución de esfuerzos promedio en los
nudos mediante iso-líneas se escribe el número 3 en el último argumento de la instrucción
GRAFIF (Figura 1.26).
Figura 1.24. Cálculo del esfuerzo σxx promedio en el nudo 86 (resultado nodal).
Como fue planteado inicialmente, en el ejemplo se pretende mostrar la distribución de los esfuerzos normales en dirección x sobre la línea AB (Figura 1.1).
El código presentado en la Figura 1.27 obtiene los valores nodales promedio y los valo-res en los elementos que hacen parte del segmento AB. Allí la instrucción ORNLIN crea la
lista de los nudos sobre la línea definida entre los nudos 25 (punto A) y 17 (punto B), y los ordena de acuerdo a su distancia con respecto al nudo 25. De forma similar la instrucción
(a)
(b) (a)
(b)
ORELIN crea un listado de los elementos que comparten uno de sus lados con la línea
espe-cificada anteriormente, en cuyo caso no se incluyen los elementos que tienen un solo nudo sobre la línea, como por ejemplo, los elementos 4, 13, 15, 118, 119, 120,121,150, 171,175.
Figura 1.25. Lámina sometida a tensión con orificio en el centro. Gráfico de regiones llenas de la
distribución del esfuerzo σxx: (a) en los elementos (resultado elemental), (b) promedio en los nudos (resultado nodal).
El resultado es una tabla donde en la primera columna se indican el número del elemen-to y en la segunda el número del nudo. Ambas instrucciones crean además una matriz que indica las distancias entre el nudo 25 y cada uno de los nudos contenidos en la línea.
Figura 1.26. Lámina sometida a tensión con orificio en el centro. Gráfico de iso-líneas de la
distri-bución del esfuerzo σxxpromedio en los nudos (resultado nodal).
A partir de las matrices obtenidas por los procedimientos anteriores se organiza una ta-bla de esfuerzo promedio en los nudos mostrada en la Figura 1.28(a) y una tata-bla de esfuer-zo en los elementos presentada en la Figura 1.28(b). Con estos datos se elabora la gráfica tipo dispersión de la Figura 1.28(c), la cual indica con línea discontinua los valores de es-fuerzo promedio en los nudos y con línea continua los eses-fuerzos en el interior de cada ele-mento finito. Los escalones de esta última función demuestran el valor constante del es-fuerzo en el interior de los elementos triangulares lineales.
'calculo de esfuerzo xx sobre la línea AB 'promedio en los nudos
ORNLIN LNU(), DNU(), XYZ(), 25, 17
EDIMPI "TB_OUT", " nudos el la linea AB", FILA, COLM, LNU()
EDIMPR "TB_OUT", "distancia de los nudos sobre la linea AB", FILA, COLM, DNU() ORXYNU NAB(), NXX(), LNU()
EDIMPR "TB_OUT", "esfuerzo promedio en los nudos sobre la linea AB", _ FILA, COLM, NAB()
'en los lados de los elementos
ORELIN LEL(), DNU(), XYZ(), ELE(), 25, 17, 0, 1
EDIMPI "TB_OUT", " elementos con lado en la linea AB", FILA, COLM, LEL() EDIMPR "TB_OUT", "distancia de los nudos sobre la linea AB", FILA, COLM, DNU() ORXYNU EAB(), SXX(), LEL()
EDIMPR "TB_OUT", "esfuerzo promedio en los nudos sobre la linea AB", _ FILA, COLM, EAB()
Figura 1.27. Lámina sometida a tensión con orificio en el centro. Parte de la rutina PEFICA().
solución nodal
nudo dist (pul) sxx sxx/sm
017 3.5 9.6534E+00 0.9653 026 3.0 9.8531E+00 0.9853 027 2.5 1.0065E+01 1.0065 028 2.0 1.0278E+01 1.0278 029 1.5 1.0525E+01 1.0525 030 1.0 1.0942E+01 1.0942 031 0.8 1.1572E+01 1.1572 090 0.5 1.2594E+01 1.2594 106 0.3 1.5277E+01 1.5277 025 0.0 2.1579E+01 2.1579 solución elemental
elem nudo dist (pul) sxx sxx/sm
014 017 3.5 9.7521E+00 0.9752 014 026 3.0 9.7521E+00 0.9752 140 026 3.0 9.9647E+00 0.9965 140 027 2.5 9.9647E+00 0.9965 141 027 2.5 1.0173E+01 1.0173 141 028 2.0 1.0173E+01 1.0173 142 028 2.0 1.0401E+01 1.0401 142 029 1.5 1.0401E+01 1.0401 143 029 1.5 1.0693E+01 1.0693 143 030 1.0 1.0693E+01 1.0693 176 030 1.0 1.1236E+01 1.1236 176 031 0.8 1.1236E+01 1.1236 144 031 0.8 1.1997E+01 1.1997 144 090 0.5 1.1997E+01 1.1997 153 090 0.5 1.3289E+01 1.3289 153 106 0.3 1.3289E+01 1.3289 152 106 0.3 1.7173E+01 1.7173 152 025 0.0 1.7173E+01 1.7173 (a) (b) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3
esfuerzo normal en x / esfuerzo medio
d is ta n c ia d e s d e A ( p u l) punto A nudo 25 punto B nudo 17 (c) solución nodal solución elemental solución nodal
nudo dist (pul) sxx sxx/sm
017 3.5 9.6534E+00 0.9653 026 3.0 9.8531E+00 0.9853 027 2.5 1.0065E+01 1.0065 028 2.0 1.0278E+01 1.0278 029 1.5 1.0525E+01 1.0525 030 1.0 1.0942E+01 1.0942 031 0.8 1.1572E+01 1.1572 090 0.5 1.2594E+01 1.2594 106 0.3 1.5277E+01 1.5277 025 0.0 2.1579E+01 2.1579 solución elemental
elem nudo dist (pul) sxx sxx/sm
014 017 3.5 9.7521E+00 0.9752 014 026 3.0 9.7521E+00 0.9752 140 026 3.0 9.9647E+00 0.9965 140 027 2.5 9.9647E+00 0.9965 141 027 2.5 1.0173E+01 1.0173 141 028 2.0 1.0173E+01 1.0173 142 028 2.0 1.0401E+01 1.0401 142 029 1.5 1.0401E+01 1.0401 143 029 1.5 1.0693E+01 1.0693 143 030 1.0 1.0693E+01 1.0693 176 030 1.0 1.1236E+01 1.1236 176 031 0.8 1.1236E+01 1.1236 144 031 0.8 1.1997E+01 1.1997 144 090 0.5 1.1997E+01 1.1997 153 090 0.5 1.3289E+01 1.3289 153 106 0.3 1.3289E+01 1.3289 152 106 0.3 1.7173E+01 1.7173 152 025 0.0 1.7173E+01 1.7173 (a) (b) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3
esfuerzo normal en x / esfuerzo medio
d is ta n c ia d e s d e A ( p u l) punto A nudo 25 punto B nudo 17 (c) solución nodal solución elemental 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 0.9 1.1 1.3 1.5 1.7 1.9 2.1 2.3
esfuerzo normal en x / esfuerzo medio
d is ta n c ia d e s d e A ( p u l) punto A nudo 25 punto B nudo 17 (c) solución nodal solución elemental solución nodal solución elemental solución nodal solución elemental
Figura 1.28. Lámina sometida a tensión con orificio en el centro. Distribución del esfuerzo normal
en x sobre la línea AB: (a) tabla de resultados promedio en los nudos, (b) tabla de resultados en los elementos, (c) gráfica de nivel de esfuerzo versus distancia medida desde el punto A.
Problemas unidimensionales de campo
escalar
Este capítulo presenta los resultados obtenidos por el programa PEFiCA de un problema de
Resistencia de Materiales definido por una ecuación diferencial parcial unidimensional de campo escalar de la forma (Segerlin 1984; Hughes 2000; Oñate & Zárate 2000):
Ω ∈ ∀ = + ∂ ∂ x Q x D 2 0 2φ (2.1) donde φ(x)es un campo escalar en un dominio unidimensional Ω, y D(x) y Q(x) son
parámetros de la ecuación diferencial, sin embargo se considera que conservan un valor constante (e)
D y Q(e) en el interior de cada elemento finito.
Uno de los tipos de condiciones de borde más común corresponde a valores conocidos de φ(x) en un contorno Γφ ⊂∂Ω, es decir
φ
φ
φ(x)= 0 ∀x∈Γ (2.2)
La anterior ecuación diferencial describe la deflexión de vigas como lo indican los ejemplos presentados a continuación.
2.1.
Deflexión de una viga sometida a carga distribuida con
elementos unidimensionales lineales
Una viga simplemente apoyada de longitud L=8.00 m está sometida a una carga distribuida parcial w=6 kN/m como se muestra en la Figura 2.1(a). La viga esta construida con un perfil W14x82 de acero cuyo módulo de elasticidad es E=200 GPa y está reforzada en la cuarta parte central con dos placas de 0.5 pulgadas de espesor (Figura 2.1(b)).
De acuerdo con la teoría de vigas (Timoshenko & Young 1965), la deflexión v se obtie-ne de la solución de una ecuación diferencial de la forma:
) ( ) ( 22 M x dx v d x EI =− (2.3)
siendo M(x) la función momento flector mostrada en la Figura 2.1(c).
El objetivo de este ejemplo es obtener la deflexión a lo largo de la viga resolviendo la ecuación diferencial anterior mediante el método de los elementos finitos.
x y A A’ A-A’ z y B B’ B-B’ z y x x M( )=18−6 x 3.0 1.0 1.0 3.0 ) (x M ) 8 ( 6 ) (x x M = − W14x82 W14x82+ 2P0.5” 2 73420kN m EIAA= ⋅ 2 96480kN m EIBB= ⋅ GPa E=200 m kN w=6 (a) (c) (b) x y A A’ A-A’ z y B B’ B-B’ z y x x M( )=18−6 x 3.0 1.0 1.0 3.0 ) (x M ) 8 ( 6 ) (x x M = − W14x82 W14x82+ 2P0.5” 2 73420kN m EIAA= ⋅ 2 96480kN m EIBB= ⋅ GPa E=200 m kN w=6 (a) (c) (b) 1 3 4 9 10 3 5 7 11 0 10 = φ φ11 =0 1.0 1.0 4 1.0 1.0 6 2 2 1.0 8 1.0 0.5 1 9 0.5 0.5 0.5 6 5 7 8 10 ) (kNm M ) ( 2 kNm EI 96 480 73 420 73 420 4.125 8.250 19.50 25.50 4.50 1.50 9.00 15.00 25.50 21.00 (a) (b) (c) 1 3 4 9 10 3 5 7 11 0 10 = φ φ11 =0 1.0 1.0 4 1.0 1.0 6 2 2 1.0 8 1.0 0.5 1 9 0.5 0.5 0.5 6 5 7 8 10 ) (kNm M ) ( 2 kNm EI 96 480 73 420 73 420 4.125 8.250 19.50 25.50 4.50 1.50 9.00 15.00 25.50 21.00 (a) (b) (c)
Figura 2.1. Viga sometida a carga distribuida con elementos unidimensionales lineales: (a)
es-quema general, (b) corte A-A’ y B-B’, (c) momento flector a lo largo de la viga.
El dominio de la viga se divide en 10 elementos finitos unidimensionales lineales co-nectados entre sí por 11 nudos como lo indica la Figura 2.2(a). Las condiciones de borde del problema corresponden a valores conocidos de la deflexión en los nudos 10 y 11.
Figura 2.2. Viga sometida a carga distribuida con elementos unidimensionales lineales: (a) malla
de elementos finitos, (b) rigidez de cada elemento finito y (c) momento flector constante aproxi-mado en cada elemento finito.
Los elementos finitos numerados del 1 al 4 y del 7 al 10 tienen una rigidez
EI=73420kNm2, mientras que la rigidez de los elementos 5 y 6 en el centro de la viga es EI=96480kNm2, como se indica en la Figura 2.2(b).
Dado que el vector de términos independientes considera un valor constante de −M(x) en el dominio del elemento finito, es necesario suponer un valor medio del momento en cada elemento de la malla, como lo muestra la Figura 2.2(c).
(a) (b)
(c)
(a) (b)
(c)
Observación. En la carpeta \ejemplos\ se incluye la solución de este problema con elementos unidimensionales lineales en el archivo PEFICA-1Dviga01.xls.
Los datos del problema se introducen en las celdas de las diferentes hojas de cálculo de acuerdo con el tipo de información. En la Figura 2.3 se ilustra las hojas de cálculo que contienen los datos generales del problema, las coordenadas de los nudos, las conectivida-des de los elementos y las propiedaconectivida-des (e)
D y Q(e) de cada uno de ellos.
Figura 2.3. Viga sometida a carga distribuida con elementos unidimensionales lineales: (a) tabla
de datos generales, (b) tabla de coordenadas de los nudos y (c) tabla de conectividades y propieda-des de cada elemento finito.
El procedimiento para resolver una ecuación diferencial de campo unidimensional me-diante el método de los elementos finitos esta explicado en algunas de las referencias rela-cionadas con el tema (Segerlin 1984; Hughes 2000; Oñate & Zárate 2000). Parte del códi-go escrito en la subrutina PEFICA()se presenta en la Figura 2.4. Algunos resultados
par-ciales como la matriz de rigidez y el vector de términos independientes del sistema se ilus-tran en la Figura 2.5.
De la solución de la ecuación diferencial de campo unidimensional se obtienen los valo-res del desplazamiento vertical o deflexión en los nudos de la malla de elementos finitos, los cuales se indican en la Figura 2.6 y representan de forma gráfica en la Figura 2.7(a). La derivada de la deflexión con respecto a la posición, la cual corresponde al ángulo de giro de la viga, se puede calcular a partir del producto entre la matriz de operadores actuando sobre las funciones de forma y el vector de valores nodales en el interior de cada elemento. El resultado mostrado en la Figura 2.7(b) pone en evidencia la discontinuidad de la deriva-da de la función de aproximación en los nudos, cuando los elementos finitos tienen conti-nuidad C0 (Oñate & Zárate 2000).
: :
'matriz de coordenadas de los nudos EDLECR "TB_XYZ", 5, 2, XYZ(), NNUD, 1
'matriz de conectividades = matriz de incidencias EDLECI "TB_ELE", 5, 2, INC(), NELE, NGLE
'parametros D y Q del elemento EDLECR "TB_ELE", 5, 8, DEL(), NELE, 1 EDLECR "TB_ELE", 5, 9, QEL(), NELE, 1 'longitud de cada elemento
ReDim LEL(NELE, 1) For IELE = 1 To NELE
LEL(IELE, 1) = XYZ(INC(IELE, 2), 1) - XYZ(INC(IELE, 1), 1) Next IELE
'escribir en hoja de salida los datos de entrada EDIMEI "TB_OUT", "NNUD", FILA, COLM, NNUD
EDIMEI "TB_OUT", "NELE", FILA, COLM, NELE EDIMEI "TB_OUT", "NGLT", FILA, COLM, NGLT EDIMEI "TB_OUT", "NGLD", FILA, COLM, NGLD EDIMPI "TB_OUT", "INC()", FILA, COLM, INC() EDIMPR "TB_OUT", "LEL()", FILA, COLM, LEL() EDIMPR "TB_OUT", "DEL()", FILA, COLM, DEL() EDIMPR "TB_OUT", "QEL()", FILA, COLM, QEL() 'matriz de rigidez del sistema
MTCONS KGL(), 0, NGLT, NGLT For IELE = 1 To NELE
'matriz de rigidez del elemento
KUNID2 KEL(), DEL(IELE, 1), LEL(IELE, 1)
EDIMPR "TB_OUT", "KEL() - " & IELE, FILA, COLM, KEL() ENSAMK KGL(), KEL(), INC(), IELE
Next IELE
EDIMPR "TB_OUT", "KGL()", FILA, COLM, KGL(), 1 'vector de fuerzas del sistema
MTCONS FGL(), 0, NGLT, 1 For IELE = 1 To NELE
'vector de fuerzas del elemento
FUNID2 FEL(), QEL(IELE, 1), LEL(IELE, 1)
EDIMPR "TB_OUT", "FEL() - " & IELE, FILA, COLM, FEL() ENSAMV FGL(), FEL(), INC(), IELE
Next IELE
EDIMPR "TB_OUT", "FGL()", FILA, COLM, FGL() 'solución del sistema de ecuaciones simultaneas MTSUBM KGL(), KAA(), 1, 1, NGLD, NGLD
MTSUBM FGL(), FAA(), 1, 1, NGLD, 1 SOCHLK KAA(), FAA(), DAA()
'deflexión viga formato GL MTCONS DBB(), 0, NGLC, 1 MTADJU DGL(), DAA(), DBB()
EDIMPR "TB_OUT", "DGL()", FILA, COLM, DGL() 'grafica de la deflexion
EDIMPR "TB_GRA", "XYZ()", 5, 1, XYZ() EDIMPR "TB_GRA", "DGL()", 5, 4, DGL() 'derivadas de la deflexión
ReDim TDR(2 * NELE, 1) For IELE = 1 To NELE
EXTRAV DGL(), DEE(), INC(), IELE, NGLE BUNID2 BEL(), LEL(IELE, 1)
MTMULT BEL(), DEE(), DER() TDR(2 * IELE - 1, 1) = DER(1, 1) TDR(2 * IELE, 1) = DER(1, 1) Next IELE
EDIMPR "TB_OUT", "TDR()", FILA, COLM, TDR()
Figura 2.4. Viga sometida a carga distribuida con elementos unidimensionales lineales: parte de la
KGL() (11x11)
C1 C2 C3 C4
F1 2.9368E+05 -1.4684E+05 0.0000E+00 0.0000E+00
F2 -1.4684E+05 2.2026E+05 -7.3420E+04 0.0000E+00
F3 0.0000E+00 -7.3420E+04 1.4684E+05 -7.3420E+04
F4 0.0000E+00 0.0000E+00 -7.3420E+04 1.6990E+05
F5 0.0000E+00 0.0000E+00 0.0000E+00 -9.6480E+04
F6 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F7 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F8 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F9 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F10 -1.4684E+05 0.0000E+00 0.0000E+00 0.0000E+00
F11 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
C5 C6 C7 C8
F1 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F2 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F3 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F4 -9.6480E+04 0.0000E+00 0.0000E+00 0.0000E+00
F5 1.9296E+05 -9.6480E+04 0.0000E+00 0.0000E+00
F6 -9.6480E+04 1.6990E+05 -7.3420E+04 0.0000E+00
F7 0.0000E+00 -7.3420E+04 1.4684E+05 -7.3420E+04
F8 0.0000E+00 0.0000E+00 -7.3420E+04 2.2026E+05
F9 0.0000E+00 0.0000E+00 0.0000E+00 -1.4684E+05
F10 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F11 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
C9 C10 C11
F1 0.0000E+00 -1.4684E+05 0.0000E+00
F2 0.0000E+00 0.0000E+00 0.0000E+00
F3 0.0000E+00 0.0000E+00 0.0000E+00
F4 0.0000E+00 0.0000E+00 0.0000E+00
F5 0.0000E+00 0.0000E+00 0.0000E+00
F6 0.0000E+00 0.0000E+00 0.0000E+00
F7 0.0000E+00 0.0000E+00 0.0000E+00
F8 -1.4684E+05 0.0000E+00 0.0000E+00
F9 2.9368E+05 0.0000E+00 -1.4684E+05
F10 0.0000E+00 1.4684E+05 0.0000E+00
F11 -1.4684E+05 0.0000E+00 1.4684E+05
FGL() (11x1) C1 F1 -3.0938E+00 F2 -1.1813E+01 F3 -2.2500E+01 F4 -2.5500E+01 F5 -2.3250E+01 F6 -1.8000E+01 F7 -1.2000E+01 F8 -5.6250E+00 F9 -1.5000E+00 F10 -1.0313E+00 F11 -3.7500E-01
Figura 2.5. Viga sometida a carga distribuida con elementos unidimensionales lineales: matriz de
x (m) v (m m x 1 0 3) -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 θ (r a d x 1 0 3) (a) (b) -1.00 -0.75 -0.50 -0.25 0.00 0.25 0.50 0.75 1.00 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 x (m) v (m m x 1 0 3) -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 x (m) v (m m x 1 0 3) -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 θ (r a d x 1 0 3) (a) (b) -1.00 -0.75 -0.50 -0.25 0.00 0.25 0.50 0.75 1.00 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 DGL() (11x1) C1 F1 -4.6186E-04 F2 -9.0265E-04 F3 -1.6233E-03 F4 -2.0376E-03 F5 -2.0885E-03 F6 -1.8985E-03 F7 -1.4035E-03 F8 -7.4519E-04 F9 -3.7770E-04 F10 0.0000E+00 F11 0.0000E+00 TDR() (20x1) C1 F1 -9.2372E-04 F2 -9.2372E-04 F3 -8.8158E-04 F4 -8.8158E-04 F5 -7.2069E-04 F6 -7.2069E-04 F7 -4.1424E-04 F8 -4.1424E-04 F9 -5.0927E-05 F10 -5.0927E-05 F11 1.9006E-04 F12 1.9006E-04 F13 4.9491E-04 F14 4.9491E-04 F15 6.5836E-04 F16 6.5836E-04 F17 7.3497E-04 F18 7.3497E-04 F19 7.5540E-04 F20 7.5540E-04
Figura 2.6. Viga sometida a carga distribuida con elementos unidimensionales lineales: deflexión
en los nudos y derivada de la deflexión en los elementos presentados en la hoja de resultados
TB_OUT.
Figura 2.7. Viga sometida a carga distribuida con elementos unidimensionales lineales: (a)
20 6 10 14 21 0 20 =
φ
φ21=0 8 12 4 16 2 18 1 3 5 7 9 11 13 15 17 19 n. extremos n. intermedios 1 2 3 4 5 6 7 8 9 10 20 6 10 14 21 0 20 =φ
φ21=0 8 12 4 16 2 18 1 3 5 7 9 11 13 15 17 19 n. extremos n. intermedios 1 2 3 4 5 6 7 8 9 102.2.
Deflexión de una viga sometida a carga distribuida con
elementos unidimensionales cuadráticos
A continuación se describe la solución del problema anterior utilizando elementos unidi-mensionales cuadráticos.
El dominio de la viga se divide en 10 elementos finitos unidimensionales cuadráticos y 21 nudos como lo indica la Figura 2.8(a). Las condiciones de borde del problema corres-ponden a valores conocidos de la deflexión en los nudos 20 y 21.
La magnitud de las propiedades D(e) =EI y Q(e)=−M de cada elemento unidimen-sional cuadrático corresponden a los mismos valores definidos para los elementos unidi-mensionales lineales del Apartado anterior indicados en la Figura 2.2(b) y (c).
Observación. En la carpeta \ejemplos\ se incluye la solución de este problema con elementos unidimensionales cuadráticos en el archivo PEFICA-1Dviga02.xls.
Figura 2.8. Viga sometida a carga distribuida con elementos unidimensionales cuadráticos: malla
de elementos finitos.
A diferencia del código del ejemplo anterior, las subrutinas de creación de matrices elementales cambian. La Figura 2.9 muestra una parte de la rutina principal PEFI-CA()donde las letras en negrita indican las instrucciones propias de elementos
unidimen-sionales cuadráticos.
La deflexión en cada nudo y el ángulo de giro en cada elemento se ilustran en la Figura 2.11. Al igual que en el ejemplo anterior, se observa la discontinuidad de la derivada de la función de aproximación en los nudos de los extremos de los elementos.
: :
'matriz de rigidez del sistema MTCONS KGL(), 0, NGLT, NGLT For IELE = 1 To NELE
'matriz de rigidez del elemento unidimensional cuadrático
KUNID3 KEL(), DEL(IELE, 1), LEL(IELE, 1)
EDIMPR "TB_OUT", "KEL() - " & IELE, FILA, COLM, KEL() ENSAMK KGL(), KEL(), INC(), IELE
Next IELE
EDIMPR "TB_OUT", "KGL()", FILA, COLM, KGL(), 1
'vector de fuerzas del sistema MTCONS FGL(), 0, NGLT, 1 For IELE = 1 To NELE
'vector de fuerzas del elemento unidimensional cuadrático
FUNID3 FEL(), QEL(IELE, 1), LEL(IELE, 1)
x (m) v (m m x 1 0 3) θ (r a d x 1 0 3) (a) (b) -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 -1.00 -0.75 -0.50 -0.25 0.00 0.25 0.50 0.75 1.00 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 x (m) v (m m x 1 0 3) θ (r a d x 1 0 3) (a) (b) -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 -1.00 -0.75 -0.50 -0.25 0.00 0.25 0.50 0.75 1.00 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0
ENSAMV FGL(), FEL(), INC(), IELE Next IELE
EDIMPR "TB_OUT", "FGL()", FILA, COLM, FGL() :
:
'derivadas de la deflexión ReDim TDR(2 * NELE, 1) For IELE = 1 To NELE
EXTRAV DGL(), DEE(), INC(), IELE, NGLE 'nudo inicial i
BUNID3 BEL(), 0#, LEL(IELE, 1)
MTMULT BEL(), DEE(), DER() TDR(2 * IELE - 1, 1) = DER(1, 1) 'nudo final k
BUNID3 BEL(), 1#, LEL(IELE, 1)
MTMULT BEL(), DEE(), DER() TDR(2 * IELE, 1) = DER(1, 1) Next IELE
Figura 2.9. Viga sometida a carga distribuida con elementos unidimensionales cuadráticos: parte
de la rutina PEFICA().
Figura 2.10. Viga sometida a carga distribuida con elementos unidimensionales cuadráticos: (a)
deflexión en función de x y (b) derivada de la deflexión o ángulo de giro en función de x.
Al comparar los resultados del problema utilizando una malla de 10 elementos finitos lineales y otra malla de 10 elementos finitos cuadráticos, se observa que la deflexión es casi la misma como lo muestra la Figura 2.11. Sin embargo, haciendo un acercamiento entre
-2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 -2.1 -2.0 -1.9 -1.8 2.5 3.0 3.5 4.0 4.5 x (m) v ( m m x 1 0 3) elem. lineales elem. cuadráticos -2.5 -2.0 -1.5 -1.0 -0.5 0.0 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 -2.1 -2.0 -1.9 -1.8 2.5 3.0 3.5 4.0 4.5 x (m) v ( m m x 1 0 3) elem. lineales elem. cuadráticos elem. lineales elem. cuadráticos
2.5m y 4.5m del extremo izquierdo de la viga se aprecia una pequeña diferencia en el valor
máximo de la deflexión.
Figura 2.11. Viga sometida a carga distribuida con elementos unidimensionales cuadráticos: (a)
Problemas bidimensionales de campo escalar
Este capítulo presenta los resultados obtenidos por el programa PEFiCA de algunos
pro-blemas de Mecánica de sólidos y de fluidos definidos por una ecuación diferencial parcial bidimensional de campo escalar denominada en ocasiones ecuación bidimensional de
Pois-son (Segerlin 1984; Oñate & Zárate 2000)
Sea φ( yx, )un campo escalar en un dominio bidimensional Ω, la ecuación de Poisson
se puede expresar de la forma:
(
)
∈Ω ∀ = + − ∂ ∂ + ∂ ∂ y x Q G y D x Dx y 2 0 , 2 2 2 φ φ φ (3.1) Los parámetros Dx, Dy, G y Q de la ecuación diferencial dependen de (x,y), sin embar-go, se considera que conservan un valor constante (e)x
D , D(ey), ) (e
G y Q(e) en el interior de
cada elemento finito. El tipo de condición de borde más común corresponde a valores co-nocidos de φ( yx, ) en un contorno Γφ ⊂∂Ω, es decir
(
)
φφ
φ(x,y)= 0 ∀ x,y ∈Γ (3.2)
La solución de la ecuación diferencial anterior mediante el método de los elementos fi-nitos se expresa matricialmente de la forma:
f
KΦ= (3.3)
La matriz de rigidez del sistema K y el vector de fuerzas f se obtienen del proceso de ensamblaje de las matrices de rigidez y de los vectores de fuerzas de los elementos, respec-tivamente así: ) ( 1 ) ( 1 , e ne e e ne e f f K K
A
A
= = = = (3.4)La matriz de rigidez del elemento finito (e)
K está definida como la suma de las siguien-tes dos integrales en el dominio del elemento,
∫
∫
Ω + Ω = + = () () ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( e e dA G dA e T e e e e T e e G e D e N N B D B K K K (3.5)Asimismo, el vector de términos independientes o vector de fuerzas del elemento (e) f corresponde a una integral en el área de la forma:
∫
Ω = () ) ( ) ( ) ( e Q dA T e e e N f (3.6) Siendo (e)N la matriz de funciones de forma del elemento y B(e) la matriz de operado-res diferenciales aplicados sobre las funciones de forma, es decir:
∂ ∂ = ∇ = () ) ( ) ( ) ( e y e x e e N N N B (3.7) La matriz diagonal (e)
D mostrada a continuación, contiene los parámetros Dx(e) y D(ey) de la ecuación diferencial en el interior del elemento finito,
= ( ) ) ( ) ( 0 0 e y e x e D D D (3.8)
El vector de valores nodales del sistema Φ se puede dividir en un subvector de valores nodales desconocidos Φ y un subvector de valores nodales conocidos α Φβ dado por las
condiciones de borde del problema, de tal manera que la Ecuación (3.3) de puede reescribir como: = − Φ Φ 0 0 f f K K K K β α β α ββ βα αβ αα (3.9) Donde la matriz de rigidez K se ha dividido en las submatrices Kαα,Kαβ,Kβα y Kββ,
de acuerdo con el número de valores nodales desconocidos y conocidos del sistema. Por las mismas razones el vector de fuerzas f está conformado por los subvectores fα y fβ. En
consecuencia la ecuación anterior corresponde a dos ecuaciones matriciales de la forma: = − Φ + Φ = − Φ + Φ 0 f K K 0 f K K β β ββ α βα α β αβ α αα (3.10) Despejando el vector de valores nodales desconocidos de la primera expresión se tiene que:
(
α αβ β)
αα
α = − Φ
Φ K−1 f K (3.11)
Las cantidades de interés en el interior de cada elemento finito, como la función de aproximación y sus derivadas, se calculan de la siguiente manera. Primero se extrae el vector de valores nodales del elemento (e)
Φ a partir del vector de valores nodales del sis-tema Φ y de acuerdo con la información de la tabla de incidencias. Después se evalúa la función de aproximación en los puntos (x,y) del interior del elemento de la forma:
) ( ) ( ) ( ( , ) ( , ) ) , ( e e e y x y x y x = N Φ ∀ ∈Ω φ (3.12)
Finalmente, las derivadas de la función de aproximación del elemento con respecto a x y a y se calculan en cada punto (x,y) como: