PEFICA Vol1
PEFICA Vol1
PEFICA Vol1
Programa de elementos
finitos a cdigo abierto versin 1.0
Volumen 1. Descripcin y manejo del programa
PEFiCA
1.0
Dorian L. Linero S.
PEFiCA
Programa de elementos
finitos a cdigo abierto versin 1.0
Volumen 1. Descripcin y manejo del programa
ndice
ndice ................................................................................................................................ 1
Captulo 1 Descripcin general del programa .................................................................. 5
1.1.
Antecedentes .................................................................................................. 6
1.2.
Objetivos ........................................................................................................ 7
1.3.
Alcance........................................................................................................... 7
1.4.
Caractersticas tcnicas .................................................................................. 8
Captulo 2 Estructura y manejo del programa................................................................ 11
2.1.
Estructura del pre- y post-proceso: hojas de clculo.................................... 11
2.2.
Estructura del proceso: mdulos y rutinas en VBA ..................................... 12
2.3.
Capacidad del programa PEFiCA ................................................................ 20
2.4.
Instalacin y ejecucin del programa PEFiCA ............................................ 21
2.5.
Editor de Visual Basic.................................................................................. 23
2.6.
Etapas de clculo con el programa PEFiCA ................................................ 27
Captulo 3 Tipos de datos, formatos y matrices ............................................................. 31
3.1.
Tipos de datos .............................................................................................. 31
3.1.1. Variables escalares ................................................................................... 31
3.1.2. Variables matriciales o matrices .............................................................. 32
3.1.3. Variables especiales ................................................................................. 33
3.2.
Formatos de salida........................................................................................ 33
3.3.
Presentacin de resultados de forma secuencial en una hoja de clculo...... 35
3.4.
Matrices especiales....................................................................................... 37
3.4.1. Matrices o tablas de la topologa de la malla de elementos finitos.......... 37
3.4.2. Matrices o tablas de fuerzas y desplazamientos aplicados....................... 41
Captulo 4 Instrucciones de edicin de matrices ............................................................ 45
4.1.
EDLECI........................................................................................................ 45
4.2.
EDLECR ...................................................................................................... 46
4.3.
EDLECE ...................................................................................................... 48
4.4.
EDTABI ....................................................................................................... 49
4.5.
EDTABR...................................................................................................... 50
4.6.
EDIMEI........................................................................................................ 52
4.7.
EDIMER ...................................................................................................... 53
4.8.
EDIMPI........................................................................................................ 54
4.9.
EDIMPR....................................................................................................... 55
4.10.
EDLIMH ...................................................................................................... 56
Captulo 5 Instrucciones de operaciones matriciales bsicas ......................................... 57
5.1.
MTCONS ..................................................................................................... 57
5.2.
MTCONI...................................................................................................... 58
5.3.
MTSUBM .................................................................................................... 58
ndice
5.4.
MTADJU ......................................................................................................59
5.5.
MTADMR.....................................................................................................61
5.6.
MTADMI ......................................................................................................63
5.7.
MTTRAN......................................................................................................63
5.8.
MTMULT .....................................................................................................64
5.9.
MTMUL3......................................................................................................65
5.10.
MTSUMA .....................................................................................................67
5.11.
MTREST.......................................................................................................68
5.12.
MTPROD ......................................................................................................69
5.13.
MTDIVI ........................................................................................................69
5.14.
MTPORE ......................................................................................................70
5.15.
MTSUCI........................................................................................................71
5.16.
MTSUCR ......................................................................................................72
5.17.
MTMACI ......................................................................................................72
5.18.
MTMACR.....................................................................................................73
5.19.
MTBAND .....................................................................................................73
5.20.
MTFUDU......................................................................................................74
5.21.
MTFCLU ......................................................................................................75
5.22.
MTDETE ......................................................................................................76
5.23.
MTINVE .......................................................................................................77
5.24.
MTCOPI........................................................................................................78
Captulo 6 Instrucciones de solucin de ecuaciones simultneas ...................................79
6.1.
SOGAUS.......................................................................................................79
6.2.
SOCHLK.......................................................................................................80
6.3.
SOBAND ......................................................................................................81
Captulo 7 Instrucciones de clculo de valores y vectores propios .................................85
7.1.
VPITER.........................................................................................................85
7.2.
VPJACK........................................................................................................87
7.3.
VPJACO........................................................................................................88
Captulo 8 Instrucciones para crear la matriz de funciones de forma de un elemento....91
8.1.
NUNID2........................................................................................................91
8.2.
NUNID3........................................................................................................93
8.3.
NTRIAN........................................................................................................94
8.4.
NRECTA.......................................................................................................97
8.5.
NTRIEL ......................................................................................................101
8.6.
NRECEL .....................................................................................................102
Captulo 9 Instrucciones para crear la matriz de derivadas de funciones de forma de un
elemento ..............................................................................................................................105
9.1.
BUNID2 ......................................................................................................105
9.2.
BUNID3 ......................................................................................................106
9.3.
BTRIAN......................................................................................................108
9.4.
BRECTA.....................................................................................................109
9.5.
BTRIEL.......................................................................................................111
9.6.
BRECEL .....................................................................................................112
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
ndice
16.10. ORXYNU....................................................................................................186
Captulo 17 Instrucciones para importar y exportar matrices .......................................189
17.1.
IOEXPR ......................................................................................................190
17.2.
IOEXPI........................................................................................................191
17.3.
IOEXPD ......................................................................................................192
17.4.
IOELDR ......................................................................................................193
17.5.
IOEXPT ......................................................................................................194
Captulo 18 Instrucciones internas de uso comn .........................................................195
18.1.
PBDEMR ....................................................................................................195
18.2.
PBDEMI......................................................................................................195
18.3.
PBATRI ......................................................................................................195
18.4.
PBDIST.......................................................................................................196
18.5.
PBCOSD .....................................................................................................196
18.6.
PBDIAG......................................................................................................197
18.7.
PBCOEL .....................................................................................................197
18.8.
PBREDO.....................................................................................................198
18.9.
PBDINU......................................................................................................198
18.10. PBPGAU.....................................................................................................199
Captulo 19 Instrucciones grficas ................................................................................201
19.1.
GRAFDE.....................................................................................................204
19.2.
GRAFIL ......................................................................................................204
19.3.
GRAGEO ....................................................................................................205
19.4.
GRAMAT ...................................................................................................207
19.5.
GRAFIF ......................................................................................................208
19.6.
GRAFIM .....................................................................................................210
19.7.
GRAFIE ......................................................................................................214
19.8.
GRATDE ....................................................................................................217
19.9.
GRATFI ......................................................................................................218
19.10. GRATFE .....................................................................................................221
Captulo 20 Instrucciones de generacin de malla........................................................223
20.1.
GEMARE....................................................................................................223
Captulo 21 Instrucciones para crear el vector de contribucin interelemental ............227
21.1.
ITRIAN .......................................................................................................228
21.2.
IRECTA ......................................................................................................229
Referencias ....................................................................................................................233
Captulo 1
Descripcin general del programa
Desde la dcada de los setenta, la simulacin numrica en la mecnica de slidos y fluidos
mediante el mtodo de los elementos finitos (Zienkiewicz 1980; Hughes 2000), ha permitido representar el comportamiento de estructuras, suelos, rocas y lquidos ante diferentes
acciones, con geometras irregulares, con varios materiales y con condiciones de borde particulares.
En las primeras aplicaciones del mtodo de los elementos finitos se obtena la distribucin de esfuerzos en un slido de comportamiento lineal elstico bidimensional, sustituyendo el medio continuo por barras elsticas simples (Argyris 1954; Argyris 1955; Clough
1960). Actualmente, el desarrollo de la mecnica computacional y la capacidad de clculo
de los computadores, permiten la simulacin de problemas no-lineales en slidos y fluidos
considerando materiales inelsticos, grandes deformaciones, condiciones especiales de contacto y acciones estticas o dinmicas, entre otras (Crisfield 1991a; Crisfield 1991b;
Felippa 1991; Bonet & Wood 1997; Belytschko, Liu et al. 2000; Holzapfel 2000; Reddy
2004; Kojic & Bathe 2005).
La potencia y funcionalidad del mtodo de los elementos finitos lo ha convertido en una
herramienta importante para la investigacin terica y experimental en aplicaciones de la
Mecnica de Slidos y de Fluidos. De igual forma, el mtodo participa cada vez ms en la
ingeniera de diseo y construccin en las reas de Geotecnia, Hidrulica y principalmente
en la Ingeniera Estructural.
En algunas universidades se ha considerado que la simulacin numrica del comportamiento mecnico de slidos y fluidos debe hacer parte de la formacin de un Ingeniero Civil. En particular en la Universidad Nacional de Colombia sede Bogot, la asignatura Taller III del programa curricular de Ingeniera Civil dedica 3 horas por semana a dicho tema,
desde la reforma acadmica de 1993.
En la dcada de los 70s, las Maestras en Geotecnia y en Estructuras introducen en sus
programas curriculares la simulacin numrica de slidos, ofreciendo como electivas las
asignaturas Mtodos Numricos en Geotecnia y Anlisis Estructural por Elementos Finitos,
respectivamente.
La intervencin del computador como medio para la aplicacin del mtodo de los elementos finitos en la simulacin de problemas con muchos grados de libertad, exige que el
estudiante, adems de comprender el mtodo, programe y automatice el procedimiento de
clculo.
La investigacin en el tema busca desarrollar nuevos modelos numricos que describan
el comportamiento de slidos y fluidos con mayor precisin y eficiencia. Para cumplir este
objetivo, es habitual que cada centro de investigacin cuente con un programa bsico de
elementos finitos a cdigo abierto, el cual enriquece permanentemente con sus nuevos desarrollos.
Los planteamientos expresados en los prrafos anteriores justificaron y motivaron la
creacin de PEFiCA, acrnimo que significa Programa de Elementos Finitos a Cdigo
Abierto.
Este documento est dividido en tres partes. La primera parte o Captulo 1 presenta los
antecedentes, el objetivo y el alcance del programa. La segunda parte, conformada por los
captulos 2 y 3, describe la estructura y el manejo del programa, as como los tipos y formatos de los datos de entrada y de salida. En la tercera parte presentada entre los captulos 4
y 21, se detallan las instrucciones o subrutinas disponibles para construir el proceso principal de clculo, donde cada captulo agrupa las instrucciones con un fin comn.
1.1. Antecedentes
En los aos 60s despus de establecidos los conceptos bsicos del anlisis matricial, comienza el desarrollo de programas aislados de simulacin numrica con propsito especfico. Mediante un proyecto de cooperacin de la NASA surge en 1968, uno de los primeros
programas de elementos finitos de uso general denominado NASTRAN (Nasa STRuctural
ANalysis) (MacNeal 1972). Desde entonces se han desarrollado muchos programas de
computador con objetivos similares. En la actualidad se encuentran algunos programas
comerciales como el ABACUS, ALGOR, ANSYS, COSMOS y ADINA, entre otros, que permiten la simulacin numrica de problemas multifsicos con gran eficiencia y comodidad
para el usuario. En este tipo de herramientas un programa previamente compilado realiza
el proceso de clculo y otro programa denominado post proceso, presenta los resultados,
actuando en conjunto como una caja negra para el usuario.
Por otro lado, los centros de investigacin en el rea han desarrollado programas a cdigo abierto, es decir, grupos de rutinas observables y modificables, que despus de ser compiladas en conjunto generan un programa ejecutable de elementos finitos. Entre los ms
populares se encuentran los programas escritos en lenguaje FORTRAN como el FEAP
(Taylor 2008) y el COMET (Cervera, Agelet et al. 2001), y las herramientas ejecutables en
el programa MATLAB como el FEMLAB (COMSOL 2007) y CALFEM (LundUniversity
1999).
En la Universidad Nacional de Colombia se desarroll el Programa Didctico de Elementos Finitos - Euler (Linero 1999), el cual proporcionaba al usuario un grupo de instrucciones fijas con las cuales se podran resolver algunos problemas de campo y de elasticidad
unidimensional y bidimensional. Durante 3 aos ste programa fue incorporado en las
asignaturas correspondientes en los programas curriculares de Ingeniera Civil y de Maestra en Ingeniera Estructuras. La respuesta de los estudiantes revel las fortalezas y debilidades de la herramienta, dando paso a la creacin del nuevo programa denominado PEFiCA.
1.2. Objetivos
El programa PEFiCA tiene como objetivo principal motivar, estimular y facilitar el aprendizaje del Mtodo de los Elementos Finitos (MEF) en el campo de la Ingeniera Civil, a
travs del uso de subrutinas preestablecidas para resolver un problema especfico. El estudiante debe programar el procedimiento principal a partir de las subrutinas proporcionadas
por el programa o mediante nuevas rutinas creadas por l mismo. Con lo anterior el programa busca que el usuario participe activamente del proceso de aprendizaje en el tema,
observando, entendiendo y desarrollando progresivamente cada una de las etapas de clculo.
El programa pone al estudiante en un estadio intermedio entre la programacin de todos
y cada uno de los procedimientos de clculo y el proceso automatizado entrada de datos y
presentacin de resultados. El programa evita que el usuario ocupe mucho tiempo en los
procedimientos bsicos como la solucin de un sistema de ecuaciones simultaneas o el ensamblaje de una matriz, sin embargo permite que observe y modifique cualquiera de las
subrutinas. Esta transparencia y flexibilidad del programa le permitan al usuario analizar
cada procedimiento y desarrollar nuevos procesos de clculo.
1.3. Alcance
Las rutinas definidas en la primera versin programa permiten resolver algunos problemas
particulares en Ingeniera y especficamente en mecnica de slidos, mediante el mtodo de
los elementos finitos.
Por un lado, PEFiCA soluciona de forma dbil la ecuacin diferencial de campo unidimensional presentada en la Expresin (10.1), la cual gobierna problemas como deflexin de
vigas, alargamiento de barras sometidas a fuerza axial distribuida y transferencia de calor
unidimensional. De igual manera, se puede resolver la ecuacin diferencial parcial de
campo bidimensional denominada ecuacin de Poisson (Oate & Zrate 2000) expresada
en la Ecuacin (10.5), que define varios fenmenos en Ingeniera, tales como: distribucin
de esfuerzos cortantes en barras de seccin transversal arbitraria sometidas a torsin pura,
lneas de potencial y de corriente en flujo irrotacional, infiltracin del agua en suelos permeables y transferencia de calor bidimensional, entre otros.
Asimismo, el programa permite obtener el campo de los desplazamientos, deformaciones y esfuerzos de un slido sometido a fuerzas estticas en condicin plana de esfuerzos o
de deformaciones, considerando que las deformaciones son infinitesimales y que el material
es elstico lineal istropo.
Para dar solucin a estos tipos de problemas el programa cuenta con subrutinas capaces
de construir la matriz de funciones de forma, la matriz de operadores diferenciales actuando
sobre funciones de forma, el vector de fuerzas y la matriz de rigidez de los elementos finitos unidimensional lineal y cuadrtico, triangular lineal y rectangular bilineal de campo,
triangular lineal y rectangular bilineal de elasticidad. Otro grupo de subrutinas permite,
entre otras operaciones matriciales, calcular el vector solucin de un sistema de ecuaciones
simultneas linealmente independiente y los valores y vectores propios de un sistema de
sistema operativo Microsoft Windows y con el programa Microsoft Excel, lo cual es comn
en el medio.
Documentacin. El manual del usuario est dividido en dos volmenes: el presente
documento o volumen 1, el cual contiene la descripcin y manejo del programa, y el volumen 2 que presenta los ejemplos de aplicacin y los algoritmos de clculo ms representativos. Adicionalmente, se incluyen los archivos de ms de 20 ejemplos resueltos con el
programa.
Captulo 2
Estructura y manejo del programa
El Programa de Elementos Finitos a Cdigo Abierto - PEFiCA es una herramienta computacional de anlisis de problemas fsicos por medio del mtodo de los elementos finitos,
cuyas rutinas son visibles, modificables y ejecutables.
El programa est conformado por un libro de Microsoft Office Excel que contiene los
datos y las rutinas del proceso denominado PEFiCA.xls y por otro programa ejecutable
llamado PEFiCAGraf.exe el cual genera las grficas resultantes del anlisis.
La documentacin incluida en el archivo PEFiCA.pdf presenta la descripcin, estructura
y manejo del programa y de las rutinas que lo conforman, como tambin muestra algunos
ejemplos de aplicacin. Adicionalmente, la carpeta \ejemplos\ tiene los libros de Microsoft Office Excel con los ejemplos de aplicacin indicados en la documentacin.
El libro PEFiCA.xls contiene un grupo de hojas de clculo que almacena los datos de
entrada y de salida asociados al proceso de clculo escrito y compilado en los mdulos de
Visual Basic for Applications (VBA). Las partes que conforman el archivo PEFiCA.xls se
presentan en los siguientes apartados.
Se recomienda al usuario del programa consultar permanente de libros y manuales de
referencia de programacin en lenguaje VBA aplicado a Microsoft Excel (Microsoft 2001;
Roman 2002; Simon 2002; Microsoft 2003; Walkenbach 2004).
Las hojas de entrada de datos constituyen el pre procesador del programa de elementos finitos. En cada una de ellas se almacena parte de la informacin del problema,
como las coordenadas de los nudos, las conectividades del los elementos, las fuerzas
aplicadas, entre otras. La Tabla 2.1 describe el contenido sugerido en cada una de las
hojas de entrada de datos incluidas en el libro de Excel, sin embargo, el usuario puede
modificar la organizacin presentada de las hojas de clculo siempre y cuando contenga la informacin completa del problema.
12
Hoja de
clculo
TB_GEN
TB_XYZ
TB_ELE
TB_RES
TB_FUN
TB_FUE
Descripcin
Contiene los parmetros generales del problema como el ttulo, la cantidad de nudos y
de elementos de la malla, el nmero de grados de libertad por nudo, las variables de
dibujo de los resultados, etc.
Contiene las coordenadas de los nudos de la malla de elementos finitos, ordenados de
forma secuencial. A partir de esta tabla se construye la matriz especial de coordenadas
de los nudos descrita en la Seccin 3.4.1.
Contiene los nudos asociados a cada elemento de la malla, ordenados de forma secuencial. A partir de esta tabla se construye la matriz especial de elementos descrita en la
Seccin 3.4.1.
Establece las condiciones de borde naturales, indicando los grados de libertad conocidos por cada nudo. A partir de esta tabla se construye la matriz especial de condiciones
de borde descrita en la Seccin 3.4.1.
Contiene las componentes de las fuerzas puntuales aplicadas a cada uno de los nudos
para los problemas de elasticidad. A partir de esta tabla se construye la matriz especial
de fuerzas organizadas por nudos descrita en la Seccin 3.4.2
Contiene las componentes de las fuerzas distribuidas por unidad de superficie y por
unidad de volumen aplicadas sobre los elementos para los problemas de elasticidad. A
partir de esta tabla se construye la matriz especial de fuerzas distribuidas descrita en la
Seccin 3.4.2
Tabla 2.1. Hojas de entrada de datos
La hoja de salida de datos se utiliza para presentar los resultados del problema a travs de las matrices escogidas por el usuario. Las instrucciones EDIMEI, EDIMER,
EDIMPI y EDIMPR permiten escribir en una hoja de clculo: matrices y escalares, enteras y reales, con un formato de salida particular. Se recomienda utilizar la hoja
TB_OUT para presentar los datos de salida, sin embargo el usuario puede escribir los
resultados en las celdas de cualquier hoja de clculo. El Apartado 3.3 indica como
presentar los resultados en la hoja de clculo TB_OUT de manera secuencial, lo cual
evita que se sobrescriban las matrices resultantes.
13
Mdulo
Prefijo de
las rutinas
Md
MdED
ED
MdMT
MT
MdSO
SO
MdVP
VP
MdN
N
MdB
B
MdK
K
MdF
F
MdCE
CE
MdTR
TR
MdNGL
NGL
MdEN
EN
MdEX
EX
MdOR
OR
MdIO
IO
MdPB
PB
MdGRA
GRA
MdGE
GE
MdI
I
objetivo
Contiene solamente la subrutina principal del programa PEFiCA().
Contiene las subrutinas que construyen una matriz a partir de los valores de un
grupo de celdas de una hoja de clculo y que escriben o presentan los coeficientes
de una matriz en una hoja de clculo (Captulo 4).
Contiene las subrutinas que realizan las operaciones bsicas entre matrices. Estas
instrucciones se describen en el Captulo 5.
Contiene las subrutinas que solucionan sistemas de ecuaciones simultneas linealmente independientes mediante diferentes mtodos. Estas instrucciones se describen en el Captulo 6.
Contiene las subrutinas que calculan los valores y vectores propios en sistemas
homogneos de ecuaciones simultneas (Captulo 7).
Contiene las subrutinas que crean la matriz o el vector de funciones de forma de un
tipo de elemento finito de la librera del programa (Captulo 8).
Contiene las subrutinas que crean la matriz de operadores diferenciales actuando
sobre las funciones de forma de un tipo de elemento finito (Captulo 9).
Contiene las subrutinas que crean la matriz de rigidez de los elementos finitos que
constituyen la librera del programa (Captulo 10).
Contiene las subrutinas que el vector de fuerzas equivalentes o vector de trminos
independientes de los elementos finitos que constituyen la librera del programa.
Estas instrucciones se describen en el Captulo 11.
Contiene las subrutinas que generan la matriz de constantes elsticas D en materiales cuya relacin constitutiva indicada en la Ecuacin (12.1). Estas instrucciones se
describen en el Captulo 12.
Contiene las subrutinas de cambio de base coordenada de variables fsicas como
fuerzas, desplazamientos, esfuerzos y deformaciones. En algunas rutinas se construye la matriz de transformacin T, y en otros casos la instruccin transforma
directamente a la variable fsica. Estas instrucciones se describen en el Captulo 13.
Contiene las subrutinas que generan matrices o tablas de los identificadores de los
grados de libertad o valores nodales asociados a cada uno de los nudos o cada uno
de los elementos de la malla. Estas instrucciones se describen en el Captulo 14.
Contiene las subrutinas que construyen la matriz o vector del sistema a partir del
ensamblaje de las matrices o vectores elementales (Captulo 15).
Contiene las subrutinas que extraen una matriz o vector elemental conformada por
algunos coeficientes de una matriz o vector del sistema (Captulo 15).
Contiene las subrutinas dedicadas a ordenar los coeficientes de una matriz de
acuerdo con la numeracin de los grados de libertad, de los nudos o de los elementos del problema. Estas instrucciones se describen en el Captulo 16.
Contiene las subrutinas que permiten importar y exportar matrices a un archivo
plano. Estas instrucciones se describen en el Captulo 17.
Contiene las subrutinas miscelneas del programa, generalmente utilizadas por las
dems instrucciones. Estas instrucciones se describen en el Captulo 18.
Contiene las subrutinas dedicadas a la generacin de grficas de cantidades de
inters sobre la malla de elementos finitos (Captulo 19).
Contiene las subrutinas dedicadas a la generacin de la malla a partir de una regin
especfica. Estas instrucciones se describen en el Captulo 20.
Contiene las subrutinas dedicadas a la generacin de vectores de constribucin
interelemental. Estas instrucciones se describen en el Captulo 21.
Tabla 2.2. Mdulos del programa
14
rutina
MTCONS
MTCONI
MTSUBM
MTADJU
MTADMR
MTADMI
MTTRAN
MTMULT
MTMUL3
MTSUMA
objetivo
Crea una matriz M de nf filas por nc columnas, cuyos coeficientes corresponden a un nmero
real c.
Crea una matriz M de nf filas por nc columnas, cuyos coeficientes corresponden a un nmero
entero c.
Extrae una submatriz S de la matriz existente M.
Crea un vector columna x conformado por dos subvectores columna existentes s y t.
Crea una matriz real X conformada por dos submatrices reales existentes S y T, adjuntando T
despus de la ltima fila o de la ltima columna de S.
Crea una matriz de trminos enteros X conformada por dos submatrices enteras existentes S y
T, adjuntando T despus de la ltima fila o de la ltima columna de S.
Calcula la matriz transpuesta de la matriz existente M, creando la matriz T.
Multiplica la matriz A por la matriz B obteniendo la matriz C.
Multiplica la primera matriz transpuesta AT por la segunda matriz B y el resultado lo multiplica a la primera matriz A.
Calcula la matriz C como la suma entre las matrices A y B.
MTDIVI
MTPORE
MTSUCI
MTSUCR
MTMACI
MTMACR
MTDETE
MTINVE
MTCOPI
MTREST
MTPROD
MTBAND
MTFUDU
MTFCLU
rutina
objetivo
Resuelve
un
sistema
de
ecuaciones
simultaneas
linealmente independiente mediante el mtodo
SOGAUS
de eliminacin de Gauss.
Resuelve un sistema simtrico de ecuaciones simultaneas linealmente independiente mediante
SOCHLK
el mtodo de Cholesky modificado.
Resuelve un sistema de ecuaciones simultaneas linealmente independiente mediante el mtodo
SOBAND
de Cholesky modificado, en el cual la matriz simtrica se lee como una matriz banda.
Tabla 2.4. Instrucciones de solucin de ecuaciones simultneas indicadas en el mdulo MdSO
15
rutina
EDLECI
EDLECR
EDLECE
EDTABI
EDTABR
EDIMEI
EDIMER
EDIMPI
EDIMPR
EDLIMH
objetivo
Crea la matriz entera M para la cual cada coeficiente corresponde a una celda de la hoja de
clculo.
Crea la matriz real M para la cual cada coeficiente corresponde a una celda de la hoja de clculo
Captura el valor de una celda especfica de una hoja de clculo y lo guarda en una variable
escalar.
Construye una matriz entera a partir de un bloque de celdas de una hoja de clculo especfica.
En esta subrutina un ndice establece en que fila de la matriz creada se guardarn los valores
de las celdas
Construye una matriz real a partir de un bloque de celdas de una hoja de clculo especfica. En
esta subrutina un ndice establece en que fila de la matriz creada se guardarn los valores de
las celdas.
Escribe una variable escalar entera en una hoja de clculo en el formato de salida para variables enteras.
Escribe una variable escalar real en una hoja de clculo en el formato de salida para variables
reales.
Escribe una matriz entera en una hoja de clculo en el formato de salida para variables enteras.
Escribe una matriz real en una hoja de clculo en el formato de salida para variables reales.
Borra el contenido de todas las celdas de la hoja de clculo especificada.
Tabla 2.5. Instrucciones de edicin de matrices indicadas en el mdulo MdED
rutina
objetivo
Obtiene el primer vector propio y el primer valor propio mediante el mtodo de la iteracin
VPITER
inversa.
Obtiene los vectores propios y los valores propios mediante el mtodo de Jacobi de un sistema
VPJACK
de ecuaciones homogneo sin matriz de masas.
Obtiene los vectores propios y los valores propios mediante el mtodo de Jacobi de un sistema
VPJACO
de ecuaciones homogneo con matriz simtrica de masas.
Tabla 2.6. Instrucciones de clculo de vectores y valores propios, indicadas en el mdulo MdVP
rutina
NUNID2
objetivo
Crea la matriz de funciones de forma de un elemento unidimensional lineal.
16
rutina
objetivo
Crea
la
matriz
de
operadores
diferenciales
actuando
sobre funciones de forma de un elemento
BUNID2
unidimensional lineal en un problema de campo unidimensional.
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
BUNID3
unidimensional cuadrtico en un problema de campo unidimensional.
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
BTRIAN
triangular lineal con un grado de libertad por nudo.
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
BRECTA
rectangular bilineal con un grado de libertad por nudo.
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
BTRIEL
triangular lineal para elasticidad bidimensional u otro problema con dos grados de libertad por
nudo.
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
BRECEL
rectangular bilineal para elasticidad bidimensional u otro problema con dos grados de libertad
por nudo.
Tabla 2.8. Instrucciones para crear la matriz de derivadas de funciones de forma de un elemento, indicadas
en el mdulo MdB
rutina
objetivo
Crea
la
matriz
de
rigidez
de
un
elemento
finito
unidimensional lineal preparado para resolver
KUNID2
una ecuacin diferencial de campo unidimensional.
Crea la matriz de rigidez de un elemento finito unidimensional cuadrtico preparado para
KUNID3
resolver una ecuacin diferencial de campo unidimensional..
Crea la matriz de rigidez de un elemento finito triangular lineal preparado para resolver la
KTRIAN
ecuacin diferencial de campo bidimensional de Poisson.
Crea la matriz de rigidez de un elemento finito rectangular bilineal preparado para resolver la
KRECTA
ecuacin diferencial de campo bidimensional de Poisson.
Crea la matriz de rigidez de un elemento finito triangular lineal de elasticidad para un material
KTRIEL
istropo en condicin plana de esfuerzos o de deformaciones.
Crea la matriz de rigidez de un elemento finito rectangular bilineal de elasticidad para un maKRECEL
terial istropo en condicin plana de esfuerzos o de deformaciones.
Tabla 2.9. Instrucciones para crear la matriz rigidez de un elemento, indicadas en el mdulo MdK
rutina
objetivo
Crea
la
matriz
de
constantes
elsticas
para
un
material de comportamiento lineal elstico isCELAPL
tropo en condicin plana de esfuerzos y en condicin plana deformaciones.
Tabla 2.10. Instrucciones para crear matrices de constantes elsticas, indicadas en el mdulo MdCE
rutina
TRVECO
TRESP2
TRPRIN
TRVMIS
objetivo
Crea la matriz de transformacin de un vector definido en el plano. Se utiliza para realizar
cambios de base del vector de fuerza o de desplazamiento en un espacio bidimensional.
Crea la matriz de transformacin de las componentes de esfuerzo o deformacin contenidas en
el plano xy.
Calcula los esfuerzos (o deformaciones) principales y las respectivas direcciones principales a
partir de las componentes de esfuerzo (o de deformaciones) en la base original en un espacio
bidimensional.
Calcula el esfuerzo de von Misses asociado al criterio de fluencia de la energa de distorsin a
partir de las componentes de esfuerzo en la base original en un espacio bidimensional.
Tabla 2.11. Instrucciones de cambio de base, indicadas en el mdulo MdTR
17
rutina
objetivo
Crea el vector de trminos independientes de un elemento finito unidimensional lineal prepaFUNID2
rado para resolver una ecuacin diferencial de campo unidimensional donde el parmetro
independiente es constante.
Crea el vector de trminos independientes de un elemento finito unidimensional lineal prepaFUN2QL
rado para resolver una ecuacin diferencial de campo unidimensional donde el parmetro
independiente tiene variacin lineal.
Crea el vector de trminos independientes de un elemento finito unidimensional cuadrtico
FUNID3
preparado para resolver una ecuacin diferencial de campo unidimensional donde el parmetro
independiente es constante.
Crea el vector de trminos independientes de un elemento finito unidimensional cuadrtico
FUN3QL
preparado para resolver una ecuacin diferencial de campo unidimensional donde el parmetro
independiente tiene variacin lineal.
Crea el vector de trminos independientes de un elemento finito triangular lineal preparado
FTRIAN
para resolver la ecuacin diferencial de campo bidimensional de Poisson.
Crea el vector de trminos independientes de un elemento finito rectangular bilineal preparado
FRECTA
para resolver la ecuacin diferencial de campo bidimensional de Poisson.
Crea el vector de fuerzas en los nudos equivalentes a la aplicacin de una fuerza de superficie
FTRIES
o presin constante sobre uno de los lados de un elemento finito triangular lineal de elasticidad.
Crea
el vector de fuerzas en los nudos equivalentes a la accin de una fuerza msica constante
FTRIEC
o fuerza distribuida por unidad de volumen del elemento finito triangular lineal de elasticidad.
Crea el vector de fuerzas en los nudos equivalentes a la aplicacin de una fuerza de superficie
FRECES
o presin constante sobre uno de los lados de un elemento finito rectangular bilineal de elasticidad.
Crea el vector de fuerzas en los nudos equivalentes a la accin de una fuerza msica constante
FRECEC
o fuerza distribuida por unidad de volumen del elemento finito rectangular bilineal de elasticidad.
Tabla 2.12. Instrucciones para crear el vector de fuerzas de un elemento, indicadas en el mdulo MdF
rutina
NGLNUD
NGLELE
NGLBAN
objetivo
Crea la matriz de grados de libertad por nudo a partir de la matriz indicadora de condiciones
de borde del problema.
Crea la matriz de incidencias o tabla de grados de libertad por elemento a partir de la matriz
de grados de libertad por nudo y la matriz de conectividades del problema.
Calcula el ancho de la semi-banda de la matriz de rigidez y el nmero de grados de libertad del
sistema a partir de la matriz de incidencias.
Tabla 2.13. Instrucciones numerar grados de libertad, indicadas en el mdulo MdNGL
rutina
objetivo
Suma
la
contribucin
de
una
matriz
elemental
a la matriz del sistema de acuerdo con la numeENSAMK
racin de los valores nodales o grados de libertad del elemento adicionado.
Suma la contribucin de un vector elemental al vector del sistema de acuerdo con la numeraENSAMV
cin de los valores nodales o grados de libertad del elemento adicionado.
Suma
la contribucin de una matriz elemental simtrica a la matriz del sistema en formato de
ENBAND
matriz banda de acuerdo con la numeracin de los grados de libertad del elemento.
Suma un coeficiente especificado de una matriz elemental a los coeficientes de un vector del
ENSAMX
sistema de acuerdo con la numeracin de los grados de libertad del elemento.
Extrae un vector elemental conformado por los coeficientes de un vector del sistema definidos
EXTRAV
de acuerdo con la numeracin de los valores nodales o grados de libertad del elemento.
Tabla 2.14. Instrucciones para ensamblar y extraer matrices, indicadas en los mdulos MdEN y MdEX
18
rutina
ORFUGL
ORGLFU
ORSONO
ORSONM
ORNUDE
ORNLIN
ORNLIX
ORELIN
ORELIX
ORXYNU
rutina
objetivo
Crea el vector de valores nodales de la estructura ordenado de acuerdo con la numeracin de
los grados de libertad a partir de la tabla de valores nodales ordenada por nudo.
Crea la tabla de valores nodales ordenada por nudo a partir del vector de valores nodales de la
estructura ordenado de acuerdo con la numeracin de los grados de libertad.
Crea un vector de resultados nodales a partir de una matriz de resultados elementales calculados en los nudos de cada elemento.
Crea una matriz de resultados nodales por material a partir de una matriz de resultados elementales calculados en los nudos de cada elemento.
Crea una matriz o tabla que contiene en cada fila los elementos asociados a cada nudo.
Construye una listado de los nudos que hacen parte de un segmento recto entre dos nudos
extremos definidos en la tabla de coordenadas.
Construye una listado de los nudos que hacen parte de un segmento recto definido entre dos
puntos cuya posicin puede o no coincidir con los nudos de la malla.
Construye una listado de los elementos cuyos lados hacen parte de un segmento definido por
dos nudos.
Construye una listado de los elementos cuyos lados hacen parte de segmento recto definido
entre dos puntos cuya posicin puede o no coincidir con los nudos de la malla.
Extrae de la matriz de coordenadas o de cualquier matriz de resultados nodales, los respectivos
valores para los nudos relacionados en un vector o lista predefinida.
Tabla 2.15. Instrucciones de organizacin de matrices, indicadas en el mdulo MdOR
objetivo
IOEXPR
IOEXPI
rutina
GEMARE
objetivo
Genera una malla de elementos finitos rectangulares en una regin en forma de rectangular.
Tabla 2.17. Instrucciones de generacin de malla, indicadas en el mdulo MdGE
rutina
objetivo
Crea
el
vector
de
contribucin
interelemental
de un elemento finito triangular lineal preparado
ITRIAN
para resolver una ecuacin diferencial de campo bidimensional de Poisson.
Crea el vector de contribucin interelemental de un elemento finito rectangular bilineal prepaIRECTA
rado para resolver una ecuacin diferencial de campo bidimensional de Poisson.
Tabla 2.18. Instrucciones para crear el vector de contribuciones interelementales, indicadas en el mdulo
MdI
19
rutina
objetivo
PBDEMR
PBDEMI
PBATRI
PBDIST
PBCOSD
PBDIAG
PBCOEL
PBREDO
PBDINU
PBPGAU
rutina
GRAFDE
GRAFIL
GRAGEO
GRAMAT
GRAFIF
GRAFIM
GRAFIE
GRATDE
GRATFI
GRATFE
Calcula la distancia entre un nudo y un segmento recto definido por dos nudos.
Construye una tabla que contiene las constantes de ponderacin en el mtodo de integracin
numrica de la cuadratura de Gauss.
Tabla 2.19. Instrucciones internas de uso comn, indicadas en el mdulo MdPB
objetivo
Crea la matriz de parmetros grficos con los valores por defecto de cada uno de los coeficientes.
Crea un archivo que contiene los parmetros grficos almacenados en un vector existente.
Dibuja la geometra de la malla de elementos finitos a partir de la matriz de coordenadas de
los nudos y la matriz de conectividades.
Dibuja la malla de elementos finitos y representa el valor de una cantidad entera definida en
cada elemento (como por ejemplo el tipo de material), con un color especificado.
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el vector de valores nodales, la cual es interpolada en el interior de cada elemento mediante sus
funciones de forma.
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el vector de valores nodales, la cual es interpolada en el interior de los elementos finitos del mismo
material.
Dibuja los resultados elementales de una cantidad o funcin de aproximacin definida por una
matriz de valores en el interior de cada elemento.
Dibuja la malla de elementos finitos deformada de acuerdo con el vector de desplazamientos
en los nudos para un problema de elasticidad bidimensional durante varios pasos de carga.
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el vector de valores en los nudos durante varios pasos de carga (o de pseudo-tiempo en general).
Dibuja los resultados elementales de una cantidad o funcin de aproximacin definida por el
vector de valores en los elementos durante varios pasos de carga (o de pseudo-tiempo en general).
Tabla 2.20. Instrucciones grficas indicadas en el mdulo MdGR
20
Observacin 2.1. El Editor de Visual Basic (VBE) incluido en Microsoft Office Excel permite visualizar y modificar las rutinas contenidas en los mdulos. Para activar el VBE en Excel 2000 o 2003 seleccione el men: Herramientas
Macro
Editor de Visual Basic. En cambio para activar el VBE en Excel 2007,
seleccione la ficha Programador de la cinta de opciones y haga clic en el icono de
Visual Basic. Si la ficha Programador no est disponible en la cinta de opciones,
haga clic en el botn de Office, haga clic en el botn Opciones de Excel, seleccione
la pestaa Ms frecuentes, seleccione la caja de verificacin Mostrar ficha del
Programador en la cinta de opciones y haga clic en le botn Aceptar.
Mximo de
elementos
32,762
32,762
32,762
16,381
32,762
16,381
32,762
10,920
32,762
10,920
32,762
5,460
32,762
10,920
32,762
Tipo de problema
Problema de campo unidimensional.
Problema de campo bidimensional: torsin pura en secciones
transversales, flujo potencial, infiltracin del agua en suelos,
transferencia de calor.
Anlisis mecnico bidimensional de slidos: estado plano de
esfuerzos y estado plano de deformaciones.
Anlisis estructural de armaduras bidimensionales.
La lectura y presentacin de matrices esta limitada al nmero mximo de filas y de columnas de las hojas de clculo propio de la versin de Microsoft Excel que se est utilizando.
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
21
Copie la carpeta PEFiCA\ en el lugar del disco duro donde se desea ubicar el programa.
Esta carpeta contiene los archivos: PEFiCA.xls, PEFiCAGraf.exe, PEFiCA.pdf, y la carpeta \ejemplos\.
22
del programa PEFiCAgraf.exe y otros programas de ingeniera utilizan el punto como separador decimal.
Abra Microsoft Office Excel, haga clic en el botn de Office en el extremo superior
izquierdo de la ventana, haga clic en el botn Opciones de Excel, seleccione la pestaa Centro de confianza, haga clic en el botn Configuracin del centro de confianza, seleccione la pestaa Configuracin de macros, haga clic en las cajas de verificacin Deshabilitar todas las macros con notificacin y Confiar en el acceso al modelo de objetos de proyectos de VBA, finalmente haga clic en el botn Aceptar de la
ventana actual, y haga clic en el botn Aceptar de la ventana Centro de confianza.
Esto le permitir decidir si ejecuta o no las macros contenidas en un archivo de Excel;
en particular, podr ejecutar las macros de PEFiCA.xls e impedir la ejecucin de macros no seguras provenientes de otros archivos.
Copie la carpeta PEFiCA\ en el lugar del disco duro donde se desea ubicar el programa.
Esta carpeta contiene los archivos: PEFiCA.xls, PEFiCAGraf.exe, PEFiCA.pdf, y la carpeta \ejemplos\.
Abra el archivo PEFiCA.xls desde Microsoft Excel 2007, aparecer en la barra de tareas el mensaje Advertencia de seguridad las macros se han deshabilitado y el botn Opciones, haga clic sobre este botn, seleccione Habilitar este contenido y haga
clic en el botn Aceptar. De esta forma el archivo PEFiCA.xls dispondr de las rutinas que conforman el programa.
Despus de la instalacin, se puede ejecutar el programa desde el Editor de Visual Basic, el cual es comn para Excel 2003 y 2007. Los siguientes pasos conducen a la ejecucin de la rutina principal de clculo.
23
Escriba las lneas de cdigo dentro de la rutina PEFiCA() que conformen el proceso
general de clculo del problema contando con las subrutinas contenidas en los dems
mdulos y con las instrucciones bsicas del lenguaje de programacin (Dim, For
Next, If Then Else , entre otras).
Ventana de inmediato: muestra la informacin que resulta de las instrucciones de depuracin en el cdigo o comandos escritos directamente en la ventana. Se activa seleccionando el men Ver
Ventana inmediato. Puede utilizarse para visualizar la
evolucin del proceso de clculo mediante mensajes de texto.
24
rea de cdigo
explorador de
proyectos
ventana de
propiedades
del objeto
ventana de inspeccin
de variables
25
Interrumpir
ejecucin
Modo de diseo
Ejecutar rutina
Alternar punto
de interrupcin
Ventana de
locales
Reestablecer
proyecto
Ventana de
inspeccin
Pila de
llamadas
Ventana de
inmediato
Paso a paso
para salir
Inspeccin
rpida
Ejecutar una rutina o macro: ejecuta la rutina actual si el cursor est situado sobre
ella y no tiene una lista de argumentos (Observacin 2.2). Se activa seleccionando el
men Ejecutar
Ejecutar Sub/UserForm u oprimiendo la tecla F5.
26
Ejecutar paso a paso por instrucciones: ejecuta de forma secuencial una de las instrucciones de la rutina actual. Permite correr una rutina completa ejecutando instruccin por instruccin. Si la instruccin es un llamado a otra subrutina entra a ella para
ejecutar su primera instruccin. Se activa seleccionando el men Depuracin
Paso a
paso por instrucciones u oprimiendo la tecla F8. La Figura 2.1 muestra en color
amarrillo la ejecucin de una instruccin.
Ejecutar paso a paso por procedimientos: ejecuta de forma secuencial una de las instrucciones de la rutina actual. A diferencia del procedimiento anterior, cuando la instruccin es un llamado a otra subrutina sin salirse de la rutina principal ejecuta todas
las instrucciones de la subrutina. Permite correr la rutina principal completa ejecutando instruccin por instruccin sin entrar a las subrutinas llamadas. Para comenzar
el proceso se selecciona el men Depuracin
Paso a paso por instrucciones o se
oprime la tecla F8, en adelante se ejecuta cada instruccin seleccionando el men Depuracin
Paso a paso por procedimientos u oprimiendo simultneamente las teclas
Mayus+F8.
Pila de llamadas: muestra en un cuadro de dilogo la lista de las rutinas que han llamado a una instruccin activa en tiempo de ejecucin. Por ejemplo, cuando se produce un error de compilacin, como lo indica la Figura 2.4, aparece en color amarillo
la lnea del cdigo dentro de la subrutina generadora del error EDIMER (paso 1); para
conocer las rutinas que llamaron a la subrutina EDIMER se hace clic en el icono de pila
de llamadas (paso 2), se selecciona del cuadro de dialogo la rutina principal PEFiCA,
y se hace clic en Mostrar (paso 3), finalmente, en la rutina PEFiCA aparece un triangulo verde a la izquierda de la lnea de cdigo que llam a la subrutina generadora del
error (paso 4).
27
Etapa de pre proceso: Introducir los datos del problema en las hojas de clculo designadas para tal fin, describiendo la geometra de la malla de elementos finitos, las condiciones de borde, los parmetros mecnicos de los materiales, las acciones externas y
las dems caractersticas propias del problema, como lo ilustra la Figura 2.6(1).
Etapa de construccin del proceso: Escribir en la rutina principal PEFiCA() las lneas
de cdigo del anlisis con elementos finitos (Figura 2.5), apoyndose en las instrucciones preexistentes en el programa y las instrucciones propias del lenguaje de programacin, como lo ilustra la Figura 2.6(2). En esta etapa el usuario construye por si
mismo el proceso de clculo apropindose del conocimiento en el tema.
28
Etapa de post-proceso: Como parte del proceso de clculo se incluyen lneas de cdigo que presentan los resultados mediante matrices escritas en la hoja de salida habitualmente denominada TB_OUT (Figura 2.6(3)) y grficas creadas en ventanas nuevas
(Figura 2.6(4)).
'opciones generales
Option Explicit
'forzar la declaracin de todas las variables
Option Base 1
'declarar el lmite inferior predeterminado para subndices
'de matriz igual a 1
'--------------------------------------------------------------Public Sub PEFiCA()
'escriba aqu el procedimiento principal de clculo
End Sub
Figura 2.5. Rutina principal de clculo PEFiCA() donde el usuario escribir el procedimiento de
clculo
Observacin 2.4. Las dos primeras lneas del mdulo Md mostradas en la Figura
2.5, se utilizan para forzar declaraciones explcitas de todas las variables en dicho
mdulo y para establecer el lmite inferior del ndice de toda matriz como 1. En
consecuencia todas las variables utilizadas deben ser declaradas y el primer trmino de una matriz cualquiera A debe ser el A1,1 .
29
Captulo 3
Tipos de datos, formatos y matrices
En este captulo se describen los tipos de datos y los formatos de presentacin numrica,
como tambin las matrices especiales utilizadas por las instrucciones del programa.
Descripcin
Tamao
almacenado
Intervalo
String
cadena de
caracteres
10 bytes +
longitud de
la cadena
Integer
entero
2 bytes
-32768 a 32767
8 bytes
Double
real de
doble precisin
32
Notacin matricial
0.5758 0.9594
M=
0.1249 0.8963 2 2
Figura 3.1. Ejemplo de definicin de la matriz M.
Una matriz con un tamao especificado es una matriz de tamao fijo; por ejemplo, en la
primera lnea de cdigo de la Figura 3.2 se declara a una matriz de tamao fijo con 2 filas y
4 columnas como real de doble precisin (double). El primer argumento corresponde al
nmero de filas y el segundo al nmero de columnas.
Dim M(2, 4) As Double
:
:
Dim I() as Integer
En cambio, una matriz cuyo tamao puede cambiar mientras el programa se est ejecutando es una matriz dinmica. Al declarar la matriz se abre y cierra parntesis omitiendo
los indicadores de tamao, como se presenta en la ltima lnea de cdigo en la Figura 3.2.
Cuando se necesario establecer una dimensin especfica de la matriz se utiliza la instruccin ReDim, como se ilustra la Figura 3.1. Este tipo de matrices son las ms utilizadas
en el programa.
El tamao almacenado en memoria depende de las dimensiones de la matriz y del tipo
de datos. Cada elemento o trmino de la matriz tiene el tamao de una variable escalar del
mismo tipo, por lo tanto, una matriz de nf filas y nc columnas ocupar nf por nc por el tamao segn el tipo (Tabla 3.1).
33
Tanto el sistema operativo, como la cantidad de memoria disponible determinan el tamao mximo de una matriz. Es ms lento utilizar una matriz que sobrepasa la cantidad de
memoria RAM disponible en el sistema ya que los datos tienen que ser ledos y escritos del
disco.
columna 2
columna 3
POSF = 20
Figura 3.3. Designacin numrica las filas y las columnas en la posicin de una celda.
34
Cada matriz presenta un ttulo identificador en color negro y en letra negrita cursiva
que termina con el tamao de la misma entre parntesis.
En las matrices, los rtulos en color gris C1, C2, y F1, F2, indican el nmero
de la columna 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.
Formato numrico
Tipo de
datos
Entera
Real
positivos
cero
negativos
010
000
-010
1.52340E+01
0.0000E+00
-1.52340E+01
Tamao de matriz
Rtulos indicadores de
columnas de la matriz
Ttulo de matriz
Rtulos indicadores
de filas de la matriz
Coeficiente
entero cero
Coeficiente
entero positivo
35
Tamao de matriz
Rtulos indicadores de
columnas de la matriz
Ttulo de matriz
Coeficiente
real positivo
Rtulos indicadores
de filas de la matriz
Coeficiente
real cero
Coeficiente
real negativo
Matriz de trminos reales
Con anterioridad se crea la hoja de clculo para presentar los resultados o hoja de salida. Por defecto el programa tiene la hoja TB_OUT.
La posicin de las matrices en la hoja de salida se define con las variables FILA y
COLM, las cuales solo deben ser utilizadas para tal fin.
Se limpia la hoja de salida con la instruccin EDLIMH, por ejemplo la lnea de cdigo
en Visual Basic for Applications EDLIMH "TB_OUT" borra el contenido de la hoja de
clculo TB_OUT.
36
A travs del cdigo en Visual Basic for Applications se escriben los resultados en la
hoja de salida utilizando las instrucciones EDIMER, EDIMEI, EDIMPR y EDIMPI. Algunos parmetros de este tipo de instrucciones, como el nombre de la hoja de clculo
debe ser el mismo nombre asignado a la hoja de salida, (por ejemplo "TB_OUT").
Asimismo, la fila POSF y la columna POSC donde se escriben los resultados deben corresponder a las variables FILA y COLM.
La Figura 3.6 muestra algunas lneas de cdigo de la rutina principal relacionadas con la
presentacin secuencial de resultados en una hoja de salida, en particular escribe las matrices XYZ() y ELE() en la hoja TB_OUT. Despus de ejecutada la rutina PEFiCA, el contenido
del la hoja TB_OUT es el presentado en la Figura 3.7.
Public Sub PEFiCA()
'declaracin de variables escalares
'declaracin de variables que definen la posicin en la hoja de salida
Dim FILA As Integer, COLM As Integer
:
:
'declaracin de matrices
Dim ELE() As Integer, GRA() As Integer
Dim XYZ() As Double
:
:
'parmetros predefinidos
'posicin inicial en la hoja de salida
FILA = 2
COLM = 1
'limpiar hoja de salida
EDLIMH "TB_OUT" 'limpiar la hoja de salida
:
:
'escribir la matriz real XYZ() en la hoja de salida
EDIMPR "TB_OUT", "XYZ()", FILA, COLM, XYZ()
:
:
'escribir la matriz entera ELE() en la hoja de salida
EDIMPI "TB_OUT", "ELE()", FILA, COLM, ELE()
:
:
End Sub
Figura 3.6. Parte del Cdigo en VBA de la rutina principal PEFiCA, donde se indican las
l-
37
Figura 3.7. Contenido de la hoja de salida TB_OUT despus de ejecutar la rutina PEFiCA.
38
(09)
(08)
06
03
04
(02)
(01)
(07)
(06)
05
01
(12)
(11)
# grado de
libertad
04
vk
um
08
(16)=0
(05)
vm
magnitud de un
g.l. conocido
(11)=2.4
(10)
03
01
(17)=0
(18)=0
notacin
09
02
02
(14)
(13)
07
(15)=0
(10)
k
(e)
vi
vj
ui
# nudo
uj
07
En la figura, los grados de libertad desconocidos estn numerados del 1 al 14 y los conocidos del 15 al 18, de tal manera que el vector de valores nodales se puede dividir en
los subvectores y que contienen los grados de libertad desconocidos y conocidos
respectivamente.
= [
T
T
= [1 2 K 14 ]
= [15 16
(3.1)
T
17 18 ] = [0 0 0 0]
Como parte de la programacin del mtodo son esenciales las matrices o tablas que describan la geometra y las condiciones de borde de la malla de elementos finitos. A continuacin se indican dichas matrices:
Matriz o tabla de coordenadas de los nudos. Matriz real que contiene en cada fila la
coordenada de un nudo de la malla con respecto al origen de un sistema coordenado
cartesiano general. En la primera columna se ubica el valor de la coordenada x, en la
segunda la coordenada y, y en la tercera, si es el caso, la coordenada z. El nmero de
filas de esta matriz es igual al total de nudos de la malla y el nmero de columnas corresponde a la dimensin del problema. La Figura 3.9 indica la matriz de coordenadas de los 9 nudos del ejemplo bidimensional ilustrado en la Figura 3.8.
nudo
coordenada
en x
en y
39
Matriz de elementos o tabla de conectividades. Matriz entera que contiene los cdigos identificadores de los nudos asociados a cada elemento finito. Una fila de la matriz presenta la informacin de un elemento finito y cada columna contiene el identificador de un nudo, por lo tanto, el nmero de filas es igual a la cantidad de elementos
de la malla y el nmero de columnas corresponde con la cantidad de nudos que tenga
un elemento finito. El orden establecido para identificar los nudos de un elemento
finito corresponder con el orden de las columnas de la matriz de elementos, por
ejemplo, si los nudos de los elementos rectangulares bilineales de una malla estn
identificados en su orden como i, j, k y m (Figura 3.8), la primera columna de la matriz de elementos contendr el cdigo que identifica al nudo i, la segunda al nudo j, la
tercera al nudo k y la cuarta al nudo m como se indica en la Figura 3.10. Cuando la
malla tiene elementos finitos con diferente cantidad de nudos, el nmero de columnas
de la tabla de conectividades estar definido por el tipo de elemento finito con mayor
nmero de nudos. En este caso, se llenan con cero los coeficientes de la(s) ltima(s)
columna(s) de la tabla de conectividades que corresponde(n) a el(los) nudo(s) inexistente(s) de los elementos finitos con menor cantidad de nudos.
elem
en x
en y
Identificador de grado
de libertad desconocido
40
Matriz o tabla de grados de libertad por nudo. Matriz entera que contiene el identificador de los valores nodales o grados de libertad de cada uno de los nudos de la malla. Cada fila contiene la informacin de un nudo y cada columna presenta el identificador de un grado de libertad o valor nodal, por lo tanto, el nmero de filas de la
matriz es igual a la cantidad de nudos de la malla y el nmero de columnas corresponde a la cantidad de valores nodales o de grados de libertad tenga un nudo. En
problemas donde hay dos o ms grados de libertad por nudo es necesario establecer el
orden en el cual se presentarn en la matriz de grados de libertad, por ejemplo, en
problemas de elasticidad bidimensional en un plano xy, la primera columna contiene
el identificador del desplazamiento nodal en direccin x, y la segunda columna almacena el identificador del desplazamiento nodal en direccin y. La Figura 3.12 indica
la matriz de grados de libertad por nudo para el ejemplo de esta seccin. Un coeficiente igual a 0 est indicando que no existe o que no se quiere considerar ese grado
de libertad. Esta matriz se puede obtener a partir de la tabla de condiciones de borde,
utilizando la instruccin NGLNUD.
nudo
Matriz de incidencias o tabla de grados de libertad por elemento. Matriz entera que
contiene los identificadores de los grados de libertad o valores nodales asociados a
cada elemento finito de la malla. Se presenta en cada fila la informacin de un elemento finito y en cada columna el identificador de un grado de libertad, como lo
muestra la Figura 3.13 para el ejemplo de esta seccin. Esta tabla es indispensable en
el proceso de ensamblaje de la matriz de rigidez y del vector de trminos independientes. A partir de la matriz de elementos y de la matriz de grados de libertad por
nudo, la instruccin NGLELE del programa puede generar la matriz de incidencias.
41
# ui
# vi
# uj
# vj
# uk
# vk
# um
# vm
Matriz o tabla de fuerzas organizadas por nudo. Tabla que contiene en cada fila la
magnitud de las componentes de fuerzas aplicadas sobre un nudo especfico, por tanto, su tamao ser el nmero nudos por el nmero de grados de libertad por nudo.
Un coeficiente igual a cero indica que la componente de la fuerza nodal es cero o que
es desconocida (fuerza reactiva en un apoyo), dicha diferencia estar definida por la
matriz indicadora de condiciones de borde. En el ejemplo de elasticidad plana presentado en la Figura 3.14, el coeficiente de la fila 3 y columna 2 de la matriz indica la
magnitud de la fuerza en direccin y aplicada en el nudo 3. Esta forma de organizar
las fuerzas en los nudos permite introducir la informacin cmodamente y presentar
de manera agradable de los resultados.
Vector o tabla de fuerzas organizadas por grados de libertad. Vector que contiene la
magnitud de las fuerzas nodales organizadas de acuerdo con la numeracin previamente asignada a los grados de libertad. Para el ejemplo anterior, la Figura 3.15
muestra que el coeficiente de la fila 10 de la matriz corresponde a la magnitud de la
fuerza nodal en el grado de libertad nmero 10. Esta forma de organizar las fuerzas
nodales es indispensable en el proceso de clculo, dado que el sistema de ecuaciones
del problema est planteado en trminos de los valores nodales o grados de libertad.
En el programa se puede cambiar el formato de la matriz de fuerzas con las instrucciones ORFUGL y ORGLFU descritas en el Captulo 16.
42
nudo
fuerza nodal
en x
en y
FY
FY=4.8
FX=1.5
FX
03
02
FY
09
FY
FX
04
01
notacin
magnitud de
la fuerza
componente
de la fuerza
FX
12
11
FY
FY
FX
FY
FX
FX
08
FY=1.2
FX=-1.6
10
07
FY
FY
FX
FY=2.4
FX=2.3
FY
FX
FX
06
05
malla de
elementos
finitos
FY=2.4
FX=2.3
07
# nudo
Matriz o tabla de desplazamientos organizados por nudo. Tabla que contiene en cada fila la magnitud de las componentes de desplazamiento en un nudo especfico.
Esta matriz tiene las mismas caractersticas de la tabla de fuerzas organizadas por
nudo (Figura 3.14).
Matriz o tabla de fuerzas distribuidas. Tabla que contiene en cada fila la magnitud
de las componentes de fuerza de volumen o de superficie aplicadas sobre un elemento
finito especfico. Las fuerzas de superficie son acciones distribuidas por unidad de
rea actuantes en una cara del elemento y las fuerzas de volumen son acciones distribuidas en el volumen del elemento. Como se muestra en la Figura 3.16, la primera
columna contiene el nmero identificador del elemento, la segunda y la tercera contienen las componentes en las direcciones x y y respectivamente, de la fuerza por unidad de volumen o fuerza msica. La cuarta y quinta columna indican la magnitud de
la presin en direccin x y y aplicada sobre la cara del elemento identificada en la sexta columna. Las caras o lados de un elemento finito se numera de forma secuencial a
partir del nudo inicial y en sentido antihorario, como se muestra en la Figura 11.1 para
un elemento triangular lineal y la Figura 11.3 para un elemento rectangular bilineal.
Los datos contenidos en esta tabla proporcionan los argumentos necesarios para calcular el vector de fuerzas equivalentes a la accin de una fuerza msica mediante las
instrucciones FTRIEC y FRECEC, o para obtener el vector de fuerzas equivalentes a la
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
43
accin de una presin aplicada sobre un lado del elemento mediante las instrucciones
FTRIES y FRECES.
grado de
libertad
fuerza
nodal
Vector de fuerzas
nodales ordenadas
segn la numeracin
de los grados de
libertad
notacin
magnitud de
la fuerza
# grado de
libertad
F(11)=2.4
F(10)=2.3
07
F(01)
F(00)
02
F(13)
F(12)
08
F(00)
F(00)
01
# nudo
F(11)=2.4
F(10)=2.3
F(03)=4.8
F(02)=1.5
03
10
07
F(19)
F(18)
F(15)
F(14)
09
F(07)
F(06)
04
F(21)
F(20)
12
11
F(05)
F(04)
F(17)=1.2
F(16)=-1.6
F(09)
F(08)
06
05
malla de
elementos finitos
fuerza msica
en x
en y
presin en un lado
en x
en y
lado
nudo 10
lado 3
elem. 20
nudo 87
(inicial)
lado 2
lado 1
nudo 1
p x = 10 k / pul 2
Figura 3.16. Tabla de fuerzas distribuidas en los elementos.
Captulo 4
Instrucciones de edicin de matrices
Una de las ventajas sustanciales del uso de Microsoft Excel como plataforma del programa
consiste en utilizar las celdas de las hojas de clculo como interfaz de lectura y escritura de
datos. El pre proceso del programa de elementos finitos se realiza a travs de tablas que
contienen la descripcin del problema. Asimismo, el post proceso presenta las cantidades
de inters o incluso algunos resultados parciales mediante tablas escritas en una hoja de
clculo preparada para tal fin o a travs de grficos de la malla de elementos finitos.
Este captulo describe las instrucciones que construyen una matriz a partir de los valores
de un grupo de celdas de una hoja de clculo y que escriben o presentan los coeficientes de
una matriz en una hoja de clculo.
Estas subrutinas tienen el prefijo ED y estn contenidas en el mdulo MdED del libro de
Excel para facilitar su ubicacin en el cdigo. La Tabla 2.4 resume el objetivo de cada una
de las rutinas de este mdulo.
4.1. EDLECI
Construye una matriz entera a partir de un bloque de celdas de una hoja de clculo especfica. En otras palabras, crea la matriz entera M para la cual cada coeficiente corresponde a
una celda de la hoja de clculo.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
EDLECI HOJA, POSF, POSC, MX(), NF, NC
Argumento
POSF
Integer (entero)
POSC
Integer (entero)
MX()
Integer (entero)
Descripcin
Hoja de clculo que contiene las celdas que conformarn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
la celda correspondiente al coeficiente m11 de la matriz creada.
Nmero de la columna en la hoja de clculo donde se
ubica la celda correspondiente al coeficiente m11 de la
matriz creada.
Matriz creada M.
NF
Integer (entero)
NC
Integer (entero)
Nmero de columnas de la matriz M.
Tabla 4.1. Sintaxis de la instruccin EDLECI.
HOJA
Tipo de variable
String (cadena de
caracteres)
46
La designacin alfabtica de las columnas en la hoja de clculo se transforma en numrica para especificar la posicin de las celdas en el programa, como lo indica el argumento
POSC en la Tabla 4.1.
Ejemplo 4.1 Construir una matriz MI()de 2 filas por 4 columnas cuyos coeficientes estn en la hoja de clculo Hoja1; especficamente, el trmino (1,1) corresponde
a la celda A14 como lo indica la Figura 4.1.
columna 1 columna 2
columna 3
POSF = 14
POSC = 1
NC = 4
NF = 2
fila 13
fila 14
fila 15
HOJA = Hoja1
(2x4)
C1
000
004
C2
001
005
C3
002
006
C4
003
007
4.2. EDLECR
Construye una matriz real a partir de un bloque de celdas de una hoja de clculo especfica.
En otras palabras, crea la matriz real M para la cual cada coeficiente corresponde a una
celda de la hoja de clculo.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
47
Argumento
Tipo de variable
String (cadena de
caracteres)
POSF
Integer (entero)
POSC
Integer (entero)
MX()
Double (real)
Descripcin
Hoja de clculo que contiene las celdas que conformarn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
la celda correspondiente al coeficiente m11 de la matriz creada.
Nmero de la columna en la hoja de clculo donde se
ubica la celda correspondiente al coeficiente m11 de la
matriz creada.
Matriz creada M.
NF
Integer (entero)
NC
Integer (entero)
Nmero de columnas de la matriz M.
Tabla 4.2. Sintaxis de la instruccin EDLECR.
HOJA
Como se puede observar, que esta instruccin tiene un objetivo similar al de la instruccin EDLECI con la nica diferencia en el tipo de variable de la matriz creada.
Ejemplo 4.2 Construir una matriz XY()de 6 filas por 2 columnas cuyos coeficientes estn en la hoja de clculo TB_XYZ; especficamente, el trmino (1,1) corresponde a la celda B5 como lo indica la Figura 4.2.
columna 2
columna 1
columna 3
POSF = 5
POSC = 2
NC = 2
fila 5
fila 6
fila 7
NF = 6
HOJA = TB_XYZ
(6x2)
C1
4.0000E+00
C2
0.0000E+00
48
5.0000E-01
3.5000E+00
3.0000E+00
2.5000E+00
2.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
4.3. EDLECE
Captura el valor de una celda especfica de una hoja de clculo y lo guarda en una variable
escalar.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
EDLECE HOJA, POSF, POSC, ESC
Argumento
HOJA
Tipo de variable
String (cadena de
caracteres)
POSF
Integer (entero)
POSC
Integer (entero)
ESC
Descripcin
Hoja de clculo que contiene la celda que se desea
capturar.
Nmero de la fila en la hoja de clculo que identifica
a la celda.
Nmero de la columna en la hoja de clculo que identifica a la celda.
Integer (entero) o
Variable escalar donde se guarda el valor de la celda.
Double (real)
Tabla 4.3. Sintaxis de la instruccin EDLECE.
columna 2
POSF = 12
POSC = 2
fila 12
fila 13
fila 14
HOJA = TB_GEN
49
4.4. EDTABI
Construye una matriz entera a partir de un bloque de celdas de una hoja de clculo especfica. A diferencia de la instruccin EDLECI, en esta subrutina un ndice establece en que fila
de la matriz creada se guardarn los valores de las celdas. Los nmeros de filas no especificados por los ndices generan coeficientes iguales a cero en la matriz.
Esta instruccin permite construir una matriz indicando solamente las filas donde sus
coeficientes diferentes de cero. La tabla de condiciones de borde y de fuerzas en los nudos
son ejemplos de este tipo de matrices.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
EDTABI HOJA, POSF, POSC, MX(), NF, NC
Argumento
POSF
Integer (entero)
POSC
Integer (entero)
MX()
Integer (entero)
Descripcin
Hoja de clculo que contiene las celdas que conformarn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
la celda correspondiente al coeficiente mi1 de la matriz
creada.
Nmero de la columna en la hoja de clculo donde se
ubica la celda correspondiente al coeficiente mi1 de la
matriz creada. La columna POSC-1 debe contener el
ndice i correspondiente.
Matriz creada M.
NF
Integer (entero)
NC
Integer (entero)
Nmero de columnas de la matriz M.
Tabla 4.4. Sintaxis de la instruccin EDTABI.
HOJA
Tipo de variable
String (cadena de
caracteres)
Ejemplo 4.4 Construir una matriz MRE()de NNUD=10 filas por NGLN=2 columnas
cuyos coeficientes diferentes de cero estn ubicados en las filas 1 y 5, como se indica en la hoja de clculo TB_RES de la siguiente figura.
50
POSC-1
nmero de la fila de los
coeficientes de la matriz
POSC = 2
fila 1 de
la matriz
coeficientes
de la matriz
m11=001
m12=001
POSF = 5
coeficientes
de la matriz
fila 5 de
la matriz
HOJA = TB_RES
m51=000
m52=001
(10x2)
C1
001
000
000
000
000
000
000
000
000
000
C2
001
000
000
000
001
000
000
000
000
000
4.5. EDTABR
Construye una matriz real a partir de un bloque de celdas de una hoja de clculo especfica.
A diferencia de la instruccin EDLECR, en esta subrutina un ndice establece en que fila de la
matriz creada se guardarn los valores de las celdas. Los nmeros de filas no especificados por los ndices generan coeficientes iguales a cero en la matriz.
Esta instruccin permite construir una matriz indicando solamente las filas donde sus
coeficientes diferentes de cero. La tabla de condiciones de borde y de fuerzas en los nudos
son ejemplos de este tipo de matrices.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
51
Argumento
POSF
Integer (entero)
POSC
Integer (entero)
MX()
Double (real)
Descripcin
Hoja de clculo que contiene las celdas que conformarn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
la celda correspondiente al coeficiente mi1 de la matriz
creada.
Nmero de la columna en la hoja de clculo donde se
ubica la celda correspondiente al coeficiente mi1 de la
matriz creada. La columna POSC-1 debe contener el
ndice i correspondiente.
Matriz creada M.
NF
Integer (entero)
NC
Integer (entero)
Nmero de columnas de la matriz M.
Tabla 4.5. Sintaxis de la instruccin EDTABR.
HOJA
Tipo de variable
String (cadena de
caracteres)
Ejemplo 4.5 Construir una matriz MFN()de NNUD=12 filas por NGLN=2 columnas
cuyos coeficientes diferentes de cero estn ubicados en las filas 3, 7 y 10, como se
indica en la hoja de clculo TB_FUN de la siguiente figura.
POSC-1
nmero de la fila de los
coeficientes de la matriz
POSC = 2
coeficientes
de la matriz
fila 3 de
la matriz
m31=1.500
m32=4.800
POSF = 5
coeficientes
de la matriz
fila 7 de
la matriz
m71=2.300
m72=2.400
fila 10 de
la matriz
coeficientes
de la matriz
HOJA = TB_FUN
m10,1=-1.600
m10,2=1.200
52
(12x2)
C1
0.0000E+00
0.0000E+00
1.5000E+00
0.0000E+00
0.0000E+00
0.0000E+00
2.3000E+00
0.0000E+00
0.0000E+00
-1.6000E+00
0.0000E+00
0.0000E+00
C2
0.0000E+00
0.0000E+00
4.8000E+00
0.0000E+00
0.0000E+00
0.0000E+00
2.4000E+00
0.0000E+00
0.0000E+00
1.2000E+00
0.0000E+00
0.0000E+00
4.6. EDIMEI
Escribe una variable escalar entera en una hoja de clculo en el formato de salida para variables enteras indicado en el Captulo 3. La sintaxis de la instruccin y la descripcin de
sus respectivos argumentos se presentan a continuacin.
EDIMEI HOJA, MXLB, POSF, POSC, ESC
Argumento
HOJA
MXLB
POSF
POSC
ESC
Tipo de variable
String (cadena de
caracteres)
String (cadena de
caracteres)
Descripcin
Hoja de clculo donde se escribir la variable ESC.
53
POSC = 2
MXLB = BAND
tamao de la matriz
rotulo y tamao de matriz
ESC
lnea en blanco
POSF-1
POSF
POSF+1
POSF+3
HOJA = TB_OUT
4.7. EDIMER
Escribe una variable escalar real en una hoja de clculo en el formato de salida para variables reales indicado en el Captulo 3. La sintaxis de la instruccin y la descripcin de sus
respectivos argumentos se presentan a continuacin.
EDIMER HOJA, MXLB, POSF, POSC, ESC
Argumento
HOJA
MXLB
POSF
POSC
ESC
Tipo de variable
String (cadena de
caracteres)
String (cadena de
caracteres)
Descripcin
Hoja de clculo donde se escribir la variable ESC.
54
POSC = 2
MXLB = determinante
tamao de la matriz
POSF-1
POSF
POSF+1
ESC
lnea en blanco
POSF+3
HOJA = TB_OUT
4.8. EDIMPI
Escribe una matriz entera en una hoja de clculo en el formato de salida para variables
enteras indicado en el Captulo 3.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
EDIMPI HOJA, MXLB, POSF, POSC, MX(), TP
Argumento
HOJA
MXLB
Tipo de variable
String (cadena de
caracteres)
String (cadena de
caracteres)
POSF
Integer (entero)
POSC
Integer (entero)
MX()
Integer (entero)
TP
Optional Integer
(argumento opcional
tipo entero)
Descripcin
Hoja de clculo donde se escribir la variable ESC.
Rotulo relacionado con la variable que ser escrito en
la fila superior a la celda que contiene la variable.
Como variable de entrada corresponde al nmero
de fila de la celda donde se desea ubicar el trmino m1,1 de la matriz M. Este parmetro debe ser
mayor que 2.
Como variable de salida corresponde al parmetro
de entrada POSF ms el nmero de filas de la matriz M y ms 3.
Nmero de columna de la celda donde se desea ubicar
la variable ESC.
Matriz entera que se desea escribir M.
Ejemplo 4.8 Escribir la matriz ELE() de 6 filas y 4 columnas en la hoja de clculo TB_OUT, mediante la instruccin:
EDIMPI "TB_OUT", "ELE()", FILA, COLM, ELE()
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
55
POSC = 2
rotulo de la matriz
MXLB = ELE()
donde
FILA=977 y COLM=2.
tamao de la matriz
El
rotulo de columnas
POSF-1
POSF
POSF+1
rotulo de filas
POSF+NF+1
POSF+NF+3
resultado se
presenta en la
guiente figura:
si-
HOJA = TB_OUT
trminos de la matriz
4.9. EDIMPR
Escribe una matriz real en una hoja de clculo en el formato de salida para variables reales
indicado en el Captulo 3. La sintaxis de la instruccin y la descripcin de sus respectivos
argumentos se presentan a continuacin.
EDIMPR HOJA, MXLB, POSF, POSC, MX(), TP
Argumento
HOJA
MXLB
Tipo de variable
String (cadena de
caracteres)
String (cadena de
caracteres)
POSF
Integer (entero)
POSC
Integer (entero)
MX()
Double(real)
TP
Optional Integer
(argumento opcional
tipo entero)
Descripcin
Hoja de clculo donde se escribir la variable ESC.
Rotulo relacionado con la variable que ser escrito en la fila
superior a la celda que contiene la variable.
Como variable de entrada corresponde al nmero de fila de
la celda donde se desea ubicar el trmino m1,1 de la matriz
M. Este parmetro debe ser mayor que 2.
Como variable de salida corresponde al parmetro de entrada POSF ms el nmero de filas de la matriz M y ms 3.
Nmero de columna de la celda donde se desea ubicar la variable ESC.
Matriz entera que se desea escribir.
Ejemplo 4.9 Escribir la matriz XYZ() de 12 filas y 2 columnas en la hoja de clculo TB_OUT, mediante la instruccin:
EDIMPR "TB_OUT", "XYZ()", FILA, COLM, XYZ()
56
POSC = 2
tamao de la matriz
POSF-1
POSF
POSF+1
rotulo de
columnas
rotulo de filas
trminos de
la matriz
POSF+NF+1
POSF+NF+3
HOJA = TB_OUT
4.10. EDLIMH
Borra el contenido de todas las celdas de la hoja de clculo especificada. Se recomienda
limpiar la hoja de resultados al comienzo del proceso principal de clculo en la subrutina
PEFiCA(). La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se
presentan a continuacin.
EDLIMH HOJA
Argumento
HOJA
Tipo de variable
Descripcin
String (cadena de
Nombre de la hoja de clculo.
caracteres)
Tabla 4.10. Sintaxis de la instruccin EDLIMH.
Ejemplo 4.10 La siguiente lnea de cdigo borra el contenido de todas las celdas
de la hoja de clculo TB_OUT.
EDLIMH "TB_OUT"
Captulo 5
Instrucciones de operaciones matriciales
bsicas
El mdulo MdMT contiene las subrutinas que realizan las operaciones bsicas entre matrices.
El nombre de estas subrutinas, en general de 6 caracteres, tiene el prefijo MT para facilitar su
ubicacin en el cdigo. La Tabla 2.3 resume el objetivo de las subrutinas de este mdulo.
5.1. MTCONS
Crea una matriz M de nf filas por nc columnas, cuyos coeficientes corresponden a un nmero real c como se indica en la siguiente ecuacin:
1 1 L
1
M = c
M
1 1 L
1
1
M
1 n n
f
c
(5.1)
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
Matriz creada M.
Double (real)
NF
Integer (entero)
NC
Integer (entero)
Nmero de columnas de la matriz M.
Tabla 5.1. Sintaxis de la instruccin MTCONS.
Ejemplo 5.1 Construir una matriz de 2 filas por 8 columnas cuyos coeficientes son
iguales a 2.50. La lnea de comando utilizada es:
MTCONS MX(), 2.50, 2, 6
58
(2x6)
C1
2.5000E+00
2.5000E+00
C2
2.5000E+00
2.5000E+00
C3
2.5000E+00
2.5000E+00
C4
2.5000E+00
2.5000E+00
C5
2.5000E+00
2.5000E+00
C6
2.5000E+00
2.5000E+00
5.2. MTCONI
Crea una matriz M de nf filas por nc columnas, cuyos coeficientes corresponden a un nmero entero c. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se
presentan a continuacin.
MTCONI MX(), C, NF, NC
Argumento
Tipo de variable
Descripcin
MX()
Integer (entero)
Matriz creada M.
Integer (entero)
NF
Integer (entero)
NC
Integer (entero)
Nmero de columnas de la matriz M.
Tabla 5.2. Sintaxis de la instruccin MTCONI.
5.3. MTSUBM
Extrae una submatriz S de la matriz existente M. La submatriz de nf filas por nc columnas
est formada la matriz M desde el coeficiente m p f , pc hasta el coeficiente m p f + n f 1, pc + nc 1
como lo indica la siguiente expresin:
m11 L m1n
mp , p
c
f
c
M
M
dado M = M
S=
m
m
L mn f nc
n f 1
n f nc
p f + n f 1, p c
L m p f + n f 1, p c + nc 1
n f nc
L
m p f , p c + n c 1
M
(5.2)
Por lo tanto, la posicin del primer coeficiente de la matriz M que conforma la submatriz s corresponde a la fila pf y la columna pc de la matriz M.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
59
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
Matriz existente M.
MS()
Double (real)
POSF
Integer (entero)
POSC
Integer (entero)
NF
Integer (entero)
Matriz creada S.
Fila de la matriz M que define la posicin del termino
s11 de la submatriz S.
Columna de la matriz M que define la posicin del
termino s11 de la submatriz S.
Nmero de filas de la submatriz S.
NC
Integer (entero)
Nmero de columnas de la submatriz S.
Tabla 5.3. Sintaxis de la instruccin MTSUBM.
Ejemplo 5.2 Extraer una submatriz MS() de 3 filas y 4 columnas desde el coeficiente MX(2,1) de la matriz existente MX() definida como:
MX()
F1
F2
F3
F4
F5
F6
(6x6)
C1
5.2267E+04
2.0000E+04
-1.2267E+04
-4.0000E+03
-2.6133E+04
-2.0000E+04
C2
2.0000E+04
8.0711E+04
4.0000E+03
2.5956E+04
-2.0000E+04
-4.0356E+04
C3
-1.2267E+04
4.0000E+03
5.2267E+04
-2.0000E+04
-1.3867E+04
-4.0000E+03
C4
-4.0000E+03
2.5956E+04
-2.0000E+04
8.0711E+04
4.0000E+03
-6.6311E+04
C5
-2.6133E+04
-2.0000E+04
-1.3867E+04
4.0000E+03
5.2267E+04
2.0000E+04
C6
-2.0000E+04
-4.0356E+04
-4.0000E+03
-6.6311E+04
2.0000E+04
8.0711E+04
El recuadro a trazos indica la posicin del primer coeficiente de la matriz MX() que
conforma la submatriz MS(), la cual corresponde a la fila POSF=2 y la columna
POSC=1 de la matriz MX(). En cambio, la zona de color gris de NF=3 filas por NC=4
columnas, muestra los trminos que deben conformar a la submatriz creada. El resultado de est instruccin es la matriz MS() indicada a continuacin:
MS()
(3x4)
F1
F2
F3
C1
2.0000E+04
-1.2267E+04
-4.0000E+03
C2
8.0711E+04
4.0000E+03
2.5956E+04
C3
4.0000E+03
5.2267E+04
-2.0000E+04
C4
2.5956E+04
-2.0000E+04
8.0711E+04
5.4. MTADJU
Crea un vector columna x conformado por dos subvectores columna existentes s y t expresados como:
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
60
s11
t11
s= M
, t= M
s
t
n f 1 n f 1
n f n f 1
(5.3)
sn 1
s
x= x= f
t11
t
M
t n f
n f 1
(5.4)
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
MS()
Double (real)
MS()
Double (real)
Segundo subvector columna existente t.
Tabla 5.4. Sintaxis de la instruccin MTADJU.
Ejemplo 5.3 Construir el vector MX()a partir de los vectores existentes MS() y
MT() definidos como:
MS()
(3x1)
MT()
F1
F2
F3
C1
-4.6505E-01
-7.9349E-03
2.7165E-01
F1
F2
F3
(3x1)
C1
-2.3153E-06
5.4164E-07
3.3956E-06
MX()
(6x1)
F1
F2
F3
C1
-4.6505E-01
-7.9349E-03
2.7165E-01
61
-2.3153E-06
5.4164E-07
3.3956E-06
5.5. MTADMR
Crea una matriz real X conformada por dos submatrices reales existentes S y T, adjuntando
T despus de la ltima fila o de la ltima columna de S. Sean S y T matrices de trminos
reales de la forma:
s11 L s1, ncs
t11 L t1, nct
S= M
M , T= M
M
sn ,1 L sn , n
tn ,1 L t n , n
fs
cs
ft
ct
fs
ft
(5.5)
s11
M
sn ,1
S
X = X = fs
T
t11
M
tn ft ,1
s1, ncs
M
L sn fs , ncs
L t1, nct
M
L tn ft , nct
L
(5.6)
Caso 2. Si se adjunta la matriz T despus de la ltima columna de la matriz S, se obtiene la matriz X de n fs = n ft filas y ncs + nct columnas de la forma:
s11 L s1, ncs
X = [S T] X = M
M
sn ,1 L sn , n
fs
cs
fs
t11
M
tn ft ,1
t1, nct
M
L t n ft , nct
L
(5.7)
62
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
Matriz creada X.
MS()
Double (real)
MS()
Double (real)
TP
Ejemplo 5.4 Construir la matriz MX()a partir de las submatrices existentes KGL()
y MAS() definidas como:
KGL()
F1
F2
F3
F4
(4x4)
C1
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00
MAS()
C3
0.0000E+00
-1.0000E+00
2.0000E+00
-1.0000E+00
C4
0.0000E+00
0.0000E+00
-1.0000E+00
1.0000E+00
C2
0.0000E+00
2.0000E+00
0.0000E+00
0.0000E+00
C3
0.0000E+00
0.0000E+00
8.0000E+00
0.0000E+00
C4
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00
(4x4)
C1
4.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
F1
F2
F3
F4
C2
-1.0000E+00
2.0000E+00
-1.0000E+00
0.0000E+00
(8x4)
C1
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00
4.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C2
-1.0000E+00
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00
2.0000E+00
0.0000E+00
0.0000E+00
C3
0.0000E+00
-1.0000E+00
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00
8.0000E+00
0.0000E+00
C4
0.0000E+00
0.0000E+00
-1.0000E+00
1.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00
63
MX()
(4x8)
F1
F2
F3
F4
C1
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00
C2
-1.0000E+00
2.0000E+00
-1.0000E+00
0.0000E+00
F1
F2
F3
F4
C7
0.0000E+00
0.0000E+00
8.0000E+00
0.0000E+00
C8
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00
C3
0.0000E+00
-1.0000E+00
2.0000E+00
-1.0000E+00
C4
0.0000E+00
0.0000E+00
-1.0000E+00
1.0000E+00
C5
4.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C6
0.0000E+00
2.0000E+00
0.0000E+00
0.0000E+00
5.6. MTADMI
Crea una matriz de trminos enteros X conformada por dos submatrices enteras existentes S
y T, adjuntando T despus de la ltima fila o de la ltima columna de S. La descripcin
general de esta rutina se puede estudiar en la instruccin MTADMR.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
MTADMI MX(), MS(), MT(), TP
Argumento
Tipo de variable
Descripcin
MX()
Integer (entero)
Matriz creada X.
MS()
Integer (entero)
MS()
Integer (entero)
TP
5.7. MTTRAN
Calcula la matriz transpuesta de la matriz existente M, creando la matriz T, donde:
64
m11 L m1n
m11
c
M= M
M
T = MT = M
m
m
L mn f nc
n f 1
n f nc
1n f
mnc 1
M
L mnc n f
nc n f
(5.8)
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
Matriz existente M.
MT()
Double (real)
Matriz transpuesta T.
Tabla 5.7. Sintaxis de la instruccin MTTRAN.
(3x4)
F1
F2
F3
C1
2.0000E+04
-1.2267E+04
-4.0000E+03
C2
8.0711E+04
4.0000E+03
2.5956E+04
C3
4.0000E+03
5.2267E+04
-2.0000E+04
C4
2.5956E+04
-2.0000E+04
8.0711E+04
(4x3)
C1
2.0000E+04
8.0711E+04
4.0000E+03
2.5956E+04
C2
-1.2267E+04
4.0000E+03
5.2267E+04
-2.0000E+04
C3
-4.0000E+03
2.5956E+04
-2.0000E+04
8.0711E+04
5.8. MTMULT
Multiplica la matriz A por la matriz B obteniendo la matriz C. Se requiere que el nmero
de columnas del pre multiplicador A sea igual al nmero de filas del post multiplicador B.
Esta operacin matricial se define como:
nc
A B = C cij =
air brj
(5.9)
r =1
65
Argumento
Tipo de variable
Descripcin
MA()
Double (real)
Matriz existente A.
MB()
Double (real)
Matriz existente B.
MC()
Double (real)
Matriz C resultante de la multiplicacin.
Tabla 5.8. Sintaxis de la instruccin MTMULT.
Ejemplo 5.6 Dadas las matriz BEL()y DEL() definidas previamente como:
BEL()
F1
F2
F3
(3x6)
C1
3.4406E+00
0.0000E+00
0.0000E+00
DEL()
F1
F2
F3
F4
F5
F6
C2
0.0000E+00
0.0000E+00
3.4406E+00
C3
-1.3721E+00
0.0000E+00
4.0000E+00
C4
0.0000E+00
4.0000E+00
-1.3721E+00
C5
-2.0685E+00
0.0000E+00
-4.0000E+00
C6
0.0000E+00
-4.0000E+00
-2.0685E+00
(6x1)
C1
3.1481E-04
-6.2890E-04
0.0000E+00
-6.8608E-04
0.0000E+00
-6.3553E-04
(3x1)
C1
1.0831E-03
-2.0220E-04
9.2166E-05
5.9. MTMUL3
Multiplica la primera matriz transpuesta AT por la segunda matriz B y el resultado lo multiplica a la primera matriz A. La operacin matricial se define como:
66
nf
A Tnc n f
B nf nc A n f nc = C nc nc
tij =
ari brj
nf
cij =
r =1
tir arj
(5.10)
r =1
(5.11)
Tambin se utiliza para transformar una matriz de rigidez de una armadura o prtico en
sistema coordenado local KL a una matriz en sistema a general de coordenadas K, mediante
la matriz de rotacin R, de la forma:
(5.12)
K = RT K L R
Argumento
Tipo de variable
Descripcin
MA()
Double (real)
Matriz existente A.
MB()
Double (real)
Matriz existente B.
MC()
Double (real)
Matriz C resultante de la multiplicacin.
Tabla 5.9. Sintaxis de la instruccin MTMUL3.
Ejemplo 5.7 Dadas las matriz REL()y KEL() definidas previamente como:
REL()
F1
F2
F3
F4
F5
F6
C1
8.6603E-01
-5.0000E-01
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
KEL()
F1
F2
F3
F4
F5
F6
(6x6)
C2
5.0000E-01
8.6603E-01
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C3
0.0000E+00
0.0000E+00
1.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C4
0.0000E+00
0.0000E+00
0.0000E+00
8.6603E-01
-5.0000E-01
0.0000E+00
C5
0.0000E+00
0.0000E+00
0.0000E+00
5.0000E-01
8.6603E-01
0.0000E+00
C6
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00
C2
0.0000E+00
7.1111E+02
1.0667E+03
0.0000E+00
-7.1111E+02
1.0667E+03
C3
0.0000E+00
1.0667E+03
2.1333E+03
0.0000E+00
-1.0667E+03
1.0667E+03
C4
-6.0000E+04
0.0000E+00
0.0000E+00
6.0000E+04
0.0000E+00
0.0000E+00
C5
0.0000E+00
-7.1111E+02
-1.0667E+03
0.0000E+00
7.1111E+02
-1.0667E+03
C6
0.0000E+00
1.0667E+03
1.0667E+03
0.0000E+00
-1.0667E+03
2.1333E+03
(6x6)
C1
6.0000E+04
0.0000E+00
0.0000E+00
-6.0000E+04
0.0000E+00
0.0000E+00
67
(6x6)
C1
4.5178E+04
2.5673E+04
-5.3333E+02
-4.5178E+04
-2.5673E+04
-5.3333E+02
C2
2.5673E+04
1.5533E+04
9.2376E+02
-2.5673E+04
-1.5533E+04
9.2376E+02
C3
-5.3333E+02
9.2376E+02
2.1333E+03
5.3333E+02
-9.2376E+02
1.0667E+03
C4
-4.5178E+04
-2.5673E+04
5.3333E+02
4.5178E+04
2.5673E+04
5.3333E+02
C5
-2.5673E+04
-1.5533E+04
-9.2376E+02
2.5673E+04
1.5533E+04
-9.2376E+02
C6
-5.3333E+02
9.2376E+02
1.0667E+03
5.3333E+02
-9.2376E+02
2.1333E+03
5.10. MTSUMA
Calcula la matriz C como la suma entre las matrices A y B. Esta operacin se define como:
A n f nc + B n f nc = C n f nc
(5.13)
Argumento
Tipo de variable
Descripcin
MA()
Double (real)
Matriz existente A.
MB()
Double (real)
Matriz existente B.
MC()
Double (real)
Matriz C resultante de la suma.
Tabla 5.10. Sintaxis de la instruccin MTSUMA.
Ejemplo 5.8 Dadas las matriz MA()y MB() definidas previamente como:
MA()
F1
F2
F3
C1
1.2500E+01
-8.5000E+00
6.3000E+00
MB()
F1
F2
F3
(3x4)
C2
4.3000E+00
1.5800E+01
-9.8000E+00
C3
0.0000E+00
1.4400E+01
7.5000E+00
C4
2.0000E+00
5.2000E+00
4.0000E+00
C2
-4.3000E+00
7.1000E+00
2.3000E+00
C3
-1.8000E+00
5.8000E+00
2.7000E+00
C4
-2.6000E+00
3.0000E+00
5.6000E+00
(3x4)
C1
1.0200E+01
9.6000E+00
6.7000E+00
68
(3x4)
C1
2.2700E+01
1.1000E+00
1.3000E+01
F1
F2
F3
C2
0.0000E+00
2.2900E+01
-7.5000E+00
C3
-1.8000E+00
2.0200E+01
1.0200E+01
C4
-6.0000E-01
8.2000E+00
9.6000E+00
5.11. MTREST
Calcula la matriz C como la resta de la matriz A menos la matriz B. Tal operacin se define como:
A n f nc B n f nc = C n f n c
(5.14)
Argumento
Tipo de variable
Descripcin
MA()
Double (real)
Matriz existente A.
MB()
Double (real)
Matriz existente B.
MC()
Double (real)
Matriz C resultante de la resta.
Tabla 5.11. Sintaxis de la instruccin MTREST.
Ejemplo 5.9 Dadas las matriz MA()y MB() definidas en el Ejemplo 5.8 la resta entre ellas se obtiene ejecutando la instruccin:
MTREST MA(), MB(), MC()
(3x4)
C1
2.3000E+00
-1.8100E+01
-4.0000E-01
C2
8.6000E+00
8.7000E+00
-1.2100E+01
C3
1.8000E+00
8.6000E+00
4.8000E+00
C4
4.6000E+00
2.2000E+00
-1.6000E+00
69
5.12. MTPROD
Multiplica trmino a trmino los coeficientes de las matrices A y B, almacenando el resultado en la matriz C. Este tipo de operacin denominada producto de Hadamard (Horn &
Johnson 1994) se define como:
A n f nc B n f nc = C n f nc
(5.15)
Argumento
Tipo de variable
Descripcin
MA()
Double (real)
Matriz existente A.
MB()
Double (real)
Matriz existente B.
MC()
Double (real)
Matriz resultante C.
Tabla 5.12. Sintaxis de la instruccin MTPROD.
Ejemplo 5.10 Dadas las matriz MA()y MB() definidas en el Ejemplo 5.8 el producto de Hadamard entre ellas se obtiene ejecutando la instruccin:
MTPROD MA(), MB(), MC()
(3x4)
C1
1.2750E+02
-8.1600E+01
4.2210E+01
C2
-1.8490E+01
1.1218E+02
-2.2540E+01
C3
0.0000E+00
8.3520E+01
2.0250E+01
C4
-5.2000E+00
1.5600E+01
2.2400E+01
5.13. MTDIVI
Multiplica trmino a trmino los coeficientes de las matrices A y B. Obtiene el trmino cij
la matriz C de la divisin entre el trmino aij de la matriz A y el trmino bij de la matriz B,
es decir:
A n f nc / B n f n c = C n f nc
cij =
aij
bij
bij 0
(5.16)
70
Argumento
Tipo de variable
Descripcin
MA()
Double (real)
Matriz existente A.
MB()
Double (real)
Matriz existente B.
MC()
Double (real)
Matriz resultante C.
Tabla 5.13. Sintaxis de la instruccin MTDIVI.
Ejemplo 5.11 Dadas las matriz MA()y MB() definidas en el Ejemplo 5.8 la divisin
trmino a trmino entre ellas se obtiene ejecutando la instruccin:
MTDIVI MA(), MB(), MC()
(3x4)
C1
1.2255E+00
-8.8542E-01
9.4030E-01
C2
-1.0000E+00
2.2254E+00
-4.2609E+00
C3
0.0000E+00
2.4828E+00
2.7778E+00
C4
-7.6923E-01
1.7333E+00
7.1429E-01
5.14. MTPORE
Obtiene la matriz B como resultado de multiplicar el escalar c por la matriz A. En otras
palabras, realiza la operacin:
cA n f n c = B n f n c
(5.17)
bij = c aij
Argumento
Tipo de variable
Descripcin
MA()
Double (real)
Matriz existente A.
ESCA
Double (real)
MB()
Double (real)
Matriz resultante B.
Tabla 5.14. Sintaxis de la instruccin MTPORE.
71
(3x4)
C1
5.6250E+01
-3.8250E+01
2.8350E+01
C2
1.9350E+01
7.1100E+01
-4.4100E+01
C3
0.0000E+00
6.4800E+01
3.3750E+01
C4
9.0000E+00
2.3400E+01
1.8000E+01
5.15. MTSUCI
Suma los coeficientes de una matriz entera A, de la forma:
nc n f
asum =
aij
(5.18)
i =1 j =1
Argumento
Tipo de variable
Descripcin
MA()
Integer (entero)
Matriz existente A.
MTSUCI
Integer (entero)
Escalar igual a la sumatoria de los coeficientes de A.
Tabla 5.15. Sintaxis de la funcin MTSUCI.
MI()
F1
F2
(2x4)
C1
000
004
C2
001
005
C3
002
006
C4
003
007
72
5.16. MTSUCR
De forma similar a la funcin MTSUCI, est instruccin suma los coeficientes de una matriz
real A. La sintaxis de la funcin y la descripcin de sus respectivos argumentos se presentan a continuacin.
[variable]= MTSUCR(MA())
Argumento
Tipo de variable
Descripcin
MA()
Double (real)
Matriz existente A.
MTSUCR
Double (real)
Escalar igual a la sumatoria de los coeficientes de A.
Tabla 5.16. Sintaxis de la funcin MTSUCI.
5.17. MTMACI
Encuentra el coeficiente mximo o mnimo de una matriz entera A, de la forma:
{ }
{ }
(i = 1,K, n f j = 1,K, nc )
(5.19)
Argumento
Tipo de variable
Descripcin
MA()
Integer (entero)
Matriz existente A.
TP
Optional Integer
(argumento opcional
tipo entero)
MTMACI
73
5.18. MTMACR
Encuentra el coeficiente mximo o mnimo de una matriz real A, de la misma forma como
lo hace la funcin MTMACI con trminos enteros.
La sintaxis de la funcin y la descripcin de sus respectivos argumentos se presentan a
continuacin.
[variable]= MTMACR(MA(),TP)
Argumento
Tipo de variable
Descripcin
MA()
Double (real)
Matriz existente A.
TP
Optional Integer
(argumento opcional
tipo entero)
MTMACR
5.19. MTBAND
Establece el ancho de semi banda de una matriz simtrica llena A y crea la matriz banda B
correspondiente (Gere & Weaver 1990; Uribe 1995). La sintaxis de la funcin y la descripcin de sus respectivos argumentos se presentan a continuacin.
MTBAND MLL(), MBA(), BAND
Argumento
Tipo de variable
Descripcin
MLL()
Double (real)
MBA()
Double (real)
BAND
Double (real)
Ancho de semi banda calculado
Tabla 5.19. Sintaxis de la instruccin MTBAND.
74
(6x6)
C1
4.0000E+04
-2.0000E+04
1.0000E+04
0.0000E+00
0.0000E+00
0.0000E+00
C2
-2.0000E+04
9.0000E+04
-1.5000E+04
0.0000E+00
2.0000E+04
0.0000E+00
C3
1.0000E+04
-1.5000E+04
9.0000E+04
-1.2000E+04
6.0000E+04
0.0000E+00
C4
0.0000E+00
0.0000E+00
-1.2000E+04
8.0000E+04
4.5000E+04
-2.2000E+04
C5
0.0000E+00
2.0000E+04
6.0000E+04
4.5000E+04
7.0000E+04
1.4000E+04
C6
0.0000E+00
0.0000E+00
0.0000E+00
-2.2000E+04
1.4000E+04
4.0000E+04
y ejecutando la instruccin:
MTBAND KGL(), KBA(), BAND
(6x4)
C1
4.0000E+04
9.0000E+04
9.0000E+04
8.0000E+04
7.0000E+04
4.0000E+04
C2
-2.0000E+04
-1.5000E+04
-1.2000E+04
4.5000E+04
1.4000E+04
0.0000E+00
C3
1.0000E+04
0.0000E+00
6.0000E+04
-2.2000E+04
0.0000E+00
0.0000E+00
C4
0.0000E+00
2.0000E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
5.20. MTFUDU
Factoriza una matriz cuadrada M de la forma (Uribe 1995):
M n n = UTn n D n n U n n
m11
M
mn1
L
L
m1n u11
M = M
mnn u1n
0
uii
L
0 d11
0 0
u nn 0
0
d ii
0
0 u11
0 0
d nn 0
L
uii
0
u1n
M
u nn
(5.20)
es decir, dada la matriz M la instruccin obtiene una matriz triangular superior U y una
matriz diagonal D que cumplen con la igualdad anterior. La sintaxis de la funcin y la descripcin de sus respectivos argumentos se presentan a continuacin.
75
Argumento
MX()
BAND
Tipo de variable
Descripcin
Como variable de entrada corresponde a la matriz
Double (real)
cuadrada existente M.
Como variable de salida corresponde a la matriz
Double (real)
triangular superior creada U.
Double (real)
Matriz diagonal creada D.
Tabla 5.20. Sintaxis de la instruccin MTFUDU.
(4x4)
C1
7.0000E+00
1.2000E+01
5.0000E+00
0.0000E+00
F1
F2
F3
F4
C2
1.2000E+01
3.0000E+00
1.0000E+00
-2.0000E+00
C3
5.0000E+00
1.0000E+00
1.5000E+01
8.0000E+00
C4
0.0000E+00
-2.0000E+00
8.0000E+00
4.0000E+00
Al ejecutar la instruccin:
MTFUDU MX(), MD()
(4x4)
C1
1.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C2
1.7143E+00
1.0000E+00
0.0000E+00
0.0000E+00
C3
7.1429E-01
4.3089E-01
1.0000E+00
0.0000E+00
C4
0.0000E+00
1.1382E-01
6.0321E-01
1.0000E+00
(4x4)
C1
7.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C2
0.0000E+00
-1.7571E+01
0.0000E+00
0.0000E+00
C3
0.0000E+00
0.0000E+00
1.4691E+01
0.0000E+00
C4
0.0000E+00
0.0000E+00
0.0000E+00
-1.1179E+00
5.21. MTFCLU
Factoriza la matriz M en el producto entre una matriz triangular inferior L y una matriz
triangular superior U de la forma (Horn & Johnson 1994; Antia 2002):
76
M n n = L n n U n n
m11
es decir, M
mn1
L
L
m1n l11
M = M
mnn l n1
0
0 u11
lii
0 0
L lnn 0
L
uii
0
u1n
M
u nn
(5.21)
Del procedimiento nmero de descomposicin matricial, se obtiene una matriz triangular inferior en la cual todos los trminos de la diagonal son iguales a 1.
La sintaxis de la funcin y la descripcin de sus respectivos argumentos se presentan a
continuacin.
MTFCLU MX(), ML(), MU()
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
ML()
Double (real)
MU()
Double (real)
matriz triangular superior creada U.
Tabla 5.21. Sintaxis de la instruccin MTFCLU.
(4x4)
C1
1.0000E+00
1.7143E+00
7.1429E-01
0.0000E+00
C2
0.0000E+00
1.0000E+00
4.3089E-01
1.1382E-01
C3
0.0000E+00
0.0000E+00
1.0000E+00
6.0321E-01
C4
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00
(4x4)
C1
7.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C2
1.2000E+01
-1.7571E+01
0.0000E+00
0.0000E+00
C3
5.0000E+00
-7.5714E+00
1.4691E+01
0.0000E+00
C4
0.0000E+00
-2.0000E+00
8.8618E+00
-1.1179E+00
5.22. MTDETE
Calcula el determinante de una matriz cuadrada M. El procedimiento consiste en descomponer la matriz M en el producto entre una matriz triangular inferior L y una matriz triangular superior U, como se indica en la Ecuacin (5.21). El determinante de la matriz M
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
77
ser el producto entre los trminos de la diagonal de las matrices L y U, en virtud de las
siguientes propiedades:
(5.22)
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
MTDETE
Double (real)
determinante de la matriz M.
Tabla 5.22. Sintaxis de la funcin MTDETE.
5.23. MTINVE
Calcula la matriz inversa de una matriz cuadrada M mediante eliminacin Gaussiana. Dada una matriz M, la instruccin obtiene una matriz M-1 tal que,(Grossman 1996)
78
M n1 n M n n = I n n
(5.23)
Argumento
MX()
MX()
Tipo de variable
Descripcin
como variable de entrada corresponde a la matriz
Double (real)
cuadrada existente M.
como variable de salida corresponde a la matriz inverDouble (real)
sa calculada M-1.
Tabla 5.23. Sintaxis de la instruccin MTINVE.
Calcula la matriz inversa y guarda el resultado en el mismo arreglo MX(), de la manera que despus de ejecutada la instruccin los coeficientes de la matriz MX() son:
MX()
F1
F2
F3
F4
(4x4)
C1
-5.3465E-02
7.3267E-02
9.9010E-02
-1.6139E-01
C2
7.3267E-02
-6.3366E-02
4.9505E-02
-1.3069E-01
C3
9.9010E-02
4.9505E-02
-2.5743E-01
5.3960E-01
C4
-1.6139E-01
-1.3069E-01
5.3960E-01
-8.9455E-01
5.24. MTCOPI
Crea una copia de una matriz real determinada. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
MTCOPI MA(), MB()
Argumento
Tipo de variable
Descripcin
MA()
Double (real)
Matriz existente.
MB()
Double (real)
Copia de la matriz creada.
Tabla 5.24. Sintaxis de la instruccin MTCOPI.
Captulo 6
Instrucciones de solucin de ecuaciones
simultneas
Las instrucciones del mdulo MdSO tienen como objetivo solucionar sistemas de ecuaciones
simultneas linealmente independientes mediante diferentes mtodos. Sea:
(6.1)
(6.2)
donde M es una matriz cuadrada conformada por los coeficientes M ij y los vectores columna u y f contienen las variables dependientes del sistema u j y los trminos independientes f i , respectivamente (Antia 2002). La Tabla 2.4 indica el objetivo de las subrutinas
del mdulo MdSO.
6.1. SOGAUS
Resuelve un sistema de ecuaciones simultaneas linealmente independiente como lo indica
la Ecuacin (6.1), mediante el mtodo de eliminacin de Gauss (Antia 2002). Dada la matriz cuadrada M y el vector de trminos independientes f, calcula el vector de variables dependientes u. Cuando el sistema de ecuaciones es linealmente dependiente la instruccin
presenta en pantalla un mensaje de error y termina la subrutina.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
80
Argumento
Tipo de variable
Descripcin
MS()
Double (real)
VS()
Double (real)
VR()
Double (real)
Vector solucin o vector de variables dependientes u.
Tabla 6.1. Sintaxis de la instruccin SOGAUS.
(4x4)
F1
F2
F3
F4
C1
7.0000E+00
8.0000E+00
9.0000E+00
1.0000E+01
C2
1.2000E+01
3.0000E+00
4.0000E+00
5.0000E+00
C3
5.0000E+00
1.0000E+00
1.5000E+01
-1.0000E+00
C4
0.0000E+00
-2.0000E+00
8.0000E+00
4.0000E+00
(4x1)
C1
8.0000E+00
1.0000E+01
-2.0000E+00
1.0000E+00
(4x1)
C1
7.5070E-01
1.0845E-01
2.8873E-01
-1.6901E+00
6.2. SOCHLK
Resuelve un sistema simtrico de ecuaciones simultaneas linealmente independiente mediante el mtodo de Cholesky modificado (Uribe 1995); en otras palabras, calcula el vector de variables dependientes u de la Ecuacin (6.1), dada la matriz simtrica M y el vector
de trminos independientes f. Cuando el sistema de ecuaciones es linealmente dependiente
la instruccin presenta en pantalla un mensaje de error y termina la subrutina.
81
Argumento
Tipo de variable
Descripcin
Matriz simtrica existente M. La instruccin lee los
coeficientes de la diagonal superior de la matriz.
Vector de trminos independientes existente f.
MS()
Double (real)
VS()
Double (real)
VR()
Double (real)
Vector solucin o vector de variables dependientes u.
Tabla 6.2. Sintaxis de la instruccin SOCHLK.
(4x4)
F1
F2
F3
F4
C1
7.0000E+00
1.2000E+01
5.0000E+00
0.0000E+00
C2
1.2000E+01
3.0000E+00
1.0000E+00
-2.0000E+00
C3
5.0000E+00
1.0000E+00
1.5000E+01
8.0000E+00
C4
0.0000E+00
-2.0000E+00
8.0000E+00
4.0000E+00
(4x1)
C1
8.0000E+00
1.0000E+01
-2.0000E+00
1.0000E+00
(4x1)
C1
-5.4455E-02
-2.7723E-01
2.3416E+00
-4.5718E+00
6.3. SOBAND
Resuelve un sistema de ecuaciones simultaneas linealmente independiente mediante el mtodo de Cholesky modificado, en el cual la matriz simtrica M de la Ecuacin (6.1) se lee
como una matriz banda (Gere & Weaver 1990; Uribe 1995).
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
82
Argumento
Tipo de variable
MBA()
Double (real)
Descripcin
VX()
VX()
Ejemplo 6.3 La matriz simtrica M(), de dimensin igual a 4 y ancho de semi banda igual a 3, expresada como:
M()
(4x4)
F1
F2
F3
F4
C1
7.0000E+00
1.2000E+01
5.0000E+00
0.0000E+00
C2
1.2000E+01
3.0000E+00
1.0000E+00
-2.0000E+00
C3
5.0000E+00
1.0000E+00
1.5000E+01
8.0000E+00
C4
0.0000E+00
-2.0000E+00
8.0000E+00
4.0000E+00
se puede representar mediante una matriz banda MBA() de 4 filas por 3 columnas,
de la forma:
MBA()
F1
F2
F3
F4
(4x3)
C1
7.0000E+00
3.0000E+00
1.5000E+01
4.0000E+00
C2
1.2000E+01
1.0000E+00
8.0000E+00
0.0000E+00
C3
5.0000E+00
-2.0000E+00
0.0000E+00
0.0000E+00
(4x1)
C1
8.0000E+00
1.0000E+01
-2.0000E+00
1.0000E+00
(4x1)
C1
-5.4455E-02
-2.7723E-01
2.3416E+00
-4.5718E+00
83
Captulo 7
Instrucciones de clculo de valores y vectores
propios
Las instrucciones del mdulo MdVP tienen como objetivo solucionar sistemas de ecuaciones
homogneos mediante diferentes mtodos, calculando los valores y vectores propios.
Sea:
(7.1)
Ai xi = 0
(7.2)
7.1. VPITER
Obtiene el primer vector propio x1 y el primer valor propio 1 mediante el mtodo de la
iteracin inversa (Bathe 1996), en un sistema de ecuaciones homogneo de la forma:
K x i = i M x i
(7.3)
86
Argumento
Tipo de variable
Descripcin
KGL()
Double (real)
MAS()
Double (real)
VEP()
Double (real)
VAP
Double (real)
NCIC
Integer (entero)
TOLC
Double (real)
Tolerancia calculada
Optional Double
Tolerancia especificada para el valor propio calcula(argumento opcional
do. Por defecto TOL=0.01
tipo real)
Tabla 7.1. Sintaxis de la instruccin VPITER.
TOL
x1
Ejemplo 7.1 Dada la matriz de rigidez KGL() y la matriz de masas MAS(), cuyos
coeficientes son:
KGL()
(4x4)
C1
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00
F1
F2
F3
F4
MAS()
(4x4)
F1
F2
F3
F4
C1
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C2
-1.0000E+00
2.0000E+00
-1.0000E+00
0.0000E+00
C3
0.0000E+00
-1.0000E+00
2.0000E+00
-1.0000E+00
C4
0.0000E+00
0.0000E+00
-1.0000E+00
1.0000E+00
C2
0.0000E+00
2.0000E+00
0.0000E+00
0.0000E+00
C3
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C4
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00
calcular el primer vector propio VEP() y el primer valor propio VAP, mediante la
instruccin:
VPITER KGL(), MAS(), VEP(), VAP, NCIC, TOLC
VEP()
F1
F2
F3
F4
VAP
(4x1)
C1
2.5126E-01
5.0252E-01
6.0302E-01
7.0353E-01
(1x1)
1.4646E-01
87
NCIC
(1x1)
002
TOLC
(1x1)
4.0568E-03
7.2. VPJACK
Obtiene los vectores propios xi y los valores propios i mediante el mtodo de Jacobi
(Bathe 1996), en un sistema de ecuaciones homogneo de la forma:
(7.4)
K xi = i xi
(7.5)
Argumento
Tipo de variable
Descripcin
KGL()
Double (real)
VEP()
Double (real)
VAP
Double (real)
NCIC
Integer (entero)
Nmero de iteraciones realizadas
Optional Double
Tolerancia especificada para el valor propio calcula(argumento opcional
do. Por defecto TOL=0.01
tipo real)
Tabla 7.2. Sintaxis de la instruccin VPJACK.
TOL
(4x4)
C1
5.0000E+00
-4.0000E+00
1.0000E+00
0.0000E+00
C2
-4.0000E+00
6.0000E+00
-4.0000E+00
1.0000E+00
C3
1.0000E+00
-4.0000E+00
6.0000E+00
-4.0000E+00
C4
0.0000E+00
1.0000E+00
-4.0000E+00
5.0000E+00
88
(4x4)
C1
3.7175E-01
6.0150E-01
6.0150E-01
3.7175E-01
C2
-3.7175E-01
6.0150E-01
-6.0150E-01
3.7175E-01
C3
-6.0150E-01
3.7175E-01
3.7175E-01
-6.0150E-01
C4
-6.0150E-01
-3.7175E-01
3.7175E-01
6.0150E-01
(4x1)
F1
F2
F3
F4
C1
1.4590E-01
1.3090E+01
6.8541E+00
1.9098E+00
NCIC
(1x1)
004
7.3. VPJACO
Obtiene los vectores propios xi y los valores propios i mediante el mtodo de Jacobi
(Bathe 1996), en un sistema de ecuaciones homogneo de la forma:
(7.6)
K xi = i M xi
(7.7)
89
Argumento
Tipo de variable
Descripcin
KGL()
Double (real)
MAS()
Double (real)
VEP()
Double (real)
VAP
Double (real)
NCIC
Integer (entero)
Nmero de iteraciones realizadas
Optional Double
Tolerancia especificada para el valor propio calcula(argumento opcional
do. Por defecto TOL=0.01
tipo real)
Tabla 7.3. Sintaxis de la instruccin VPJACO.
TOL
Ejemplo 7.3 Dada la matriz de rigidez KGL()y la matriz de masas MAS(), cuyos
coeficientes son:
KGL()
F1
F2
F3
F4
(4x4)
C1
5.0000E+00
-4.0000E+00
1.0000E+00
0.0000E+00
MAS()
(4x4)
F1
F2
F3
F4
C1
2.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C2
-4.0000E+00
6.0000E+00
-4.0000E+00
1.0000E+00
C3
1.0000E+00
-4.0000E+00
6.0000E+00
-4.0000E+00
C4
0.0000E+00
1.0000E+00
-4.0000E+00
5.0000E+00
C2
0.0000E+00
2.0000E+00
0.0000E+00
0.0000E+00
C3
0.0000E+00
0.0000E+00
1.0000E+00
0.0000E+00
C4
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00
VEP()
(4x4)
F1
F2
F3
F4
C1
6.5094E-01
1.0317E+00
9.9759E-01
6.0339E-01
C2
-1.4092E+00
-3.9381E-01
1.5490E+00
1.8261E+00
C3
1.7190E-01
-4.0853E-01
1.1638E+00
-8.9810E-01
C4
6.8261E-01
-6.4848E-01
-3.6135E-02
8.0444E-01
90
(4x1)
F1
F2
F3
F4
C1
9.6537E-02
1.3915E+00
1.0638E+01
4.3735E+00
NCIC
(1x1)
004
Captulo 8
Instrucciones para crear la matriz de
funciones de forma de un elemento
Cada instruccin presentada a continuacin crea la matriz o el vector de funciones de forma
de un tipo de elemento finito de la librera del programa. Estas subrutinas estn ubicadas
en el mdulo MdN. La Tabla 2.7 resume el objetivo de las subrutinas de este mdulo.
El elemento finito determina un subdominio del problema en el cual una o varias funciones de aproximacin son continuas expresadas como:
( e ) (x) = N(x) ( e) ( e) x ( e )
(8.1)
8.1. NUNID2
Crea la matriz de funciones de forma de un elemento unidimensional lineal. En el dominio
(e ) de este tipo de elemento se define una funcin de aproximacin lineal en un espacio
unidimensional de la forma:
( e ) ( x) = a1 + a 2 x x ( e )
(8.2)
El elemento de longitud L(e ) , tiene dos nudos ubicados en sus extremos y un grado de libertad o valor nodal por cada nudo (Figura 8.1(a)).
La funcin de aproximacin se puede escribir en trminos de las funciones de forma y
de los valores nodales como:
( e ) = N i( e)i( e ) + N (j e ) (j e )
(8.3)
92
(ej )
( e ) = a1 + a2 x
N i(e )
1.0
N (ej )
1.0
i(e )
0.0
L(e )
0.0
L(e )
x,
x,
(a)
(b)
N ( e ) = [N i( e )
N (j e ) ]
(8.4)
siendo,
N i( e ) = 1
x
L( e )
; N (j e ) =
x
L( e )
(8.5)
N i( e ) = 1
; N (j e ) =
(8.6)
Argumento
MX()
XCN
Tipo de variable
Descripcin
Matriz creada de las funciones de forma del elemento
Double(real)
N (e ) .
Posicin donde se evala la funcin de forma en coDouble(real)
ordenadas naturales 0 1 .
Tabla 8.1. Sintaxis de la instruccin NUNID2.
Ejemplo 8.1 Las funciones de forma de un elemento unidimensional lineal evaluadas a 0.8 L( e ) desde el extremo izquierdo del elemento se obtiene de la siguiente expresin:
NUNID2 NEL(), 0.8
93
(1x2)
C1
2.0000E-01
C2
8.0000E-01
8.2. NUNID3
Crea la matriz de funciones de forma de un elemento unidimensional cuadrtico. En el
dominio (e ) de este tipo de elemento se define una funcin de aproximacin polinmica
de orden 2 en un espacio unidimensional de la forma:
( e ) ( x) = a1 + a 2 x + a3 x 2 x ( e)
(8.7)
El elemento de longitud L(e ) , tiene tres nudos ubicados en el centro y en sus extremos. En
cada nudo hay un grado de libertad o valor nodal como se indica en la .
(e )
i(e ) ( e ) = a1 + a2 x + a3 x 2 k
1.0
N i(e )
N k(e )
1.0
(ej )
N (ej )
0.0
j L(e ) 2
L(e ) 2
x,
(a)
0.0
(b)
( e ) = N i( e)i( e) + N (j e ) (j e ) + N k( e ) k( e )
(8.8)
N ( e ) = [N i( e )
N (j e )
N k( e ) ]
siendo,
(8.9)
94
(e)
i
x
x
= 1 3 ( e ) + 2 ( e )
L L
x
x
= 4 ( e ) 4 ( e )
L L
(e)
j
x
x
= ( e ) + 2 ( e )
L L
(e)
j
(8.10)
N i( e ) = 1 3 + 2 2
; N (j e ) = 4 4 2
; N (j e ) = + 2 2
(8.11)
Argumento
MX()
XCN
Tipo de variable
Descripcin
Matriz creada de las funciones de forma del elemento
Double(real)
N (e ) .
Posicin donde se evala la funcin de forma en coDouble(real)
ordenadas naturales 0 1 .
Tabla 8.2. Sintaxis de la instruccin NUNID3.
(1x3)
C1
-1.2000E-01
C2
6.4000E-01
C3
4.8000E-01
8.3. NTRIAN
Crea la matriz de funciones de forma de un elemento triangular lineal con un grado de libertad por nudo. En el dominio (e ) de este tipo de elemento se define una funcin de
aproximacin lineal en un espacio bidimensional de la forma:
95
( e ) ( x, y ) = a1 + a 2 x + a3 y ( x, y ) ( e )
(8.12)
El elemento de rea A, tiene tres nudos ubicados en sus extremos y un grado de libertad o
valor nodal por cada nudo como se ilustra en la Figura 8.3. En general en los elementos
bidimensionales se elige el nudo i y los dems se designan en sentido antihorario.
j (x j , y j )
( xk , y k ) k
i ( xi , yi )
(a)
(b)
Figura 8.3. Elemento triangular lineal: (a) geometra, (b) funcin de aproximacin
( e ) = N i( e)i( e) + N (j e ) (j e ) + N k( e ) k( e )
(8.13)
N ( e ) = [N i( e )
N (j e )
N k( e ) ]
(8.14)
siendo,
1
(ai + bi x + ci y )
2A
1
N (j e ) ( x, y ) =
(a j + b j x + c j y )
2A
1
N k( e ) ( x, y ) =
(a k + bk x + c k y )
2A
N i( e ) ( x, y ) =
donde,
(8.15)
96
ai = x j y k xk y j
bi = y j y k
ci = x k x j
a j = x k y i xi y k
b j = y k yi
c j = xi x k
a k = xi y j x j y i
bk = y i y j
c k = x j xi
(8.16)
La Figura 8.4 representa las funciones de forma del elemento mediante tres grficos tridimensionales donde el eje vertical indica la funcin de forma y los otros dos ejes definen
la geometra del elemento.
(a)
(b)
(c)
Argumento
MX()
XYZ()
ELE()
IELE
XP
YP
Tipo de variable
Descripcin
Matriz creada de las funciones de forma del elemento
Double (real)
N (e ) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Integer (entero)
Nmero del elemento finito.
Coordenada x de un punto dentro del elemento donde
Double (real)
se evala la funcin de forma.
Coordenada y de un punto dentro del elemento donde
Double (real)
se evala la funcin de forma.
Tabla 8.3. Sintaxis de la instruccin NTRIAN.
Ejemplo 8.3 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE() mostrada en la Figura 8.6, las
funciones de forma en el centroide del elemento triangular lineal nmero 4, se obtiene de las siguientes instrucciones:
97
fun-
02
06
05
04
09
05
08
03
01
01
04
yp
07
x
Matriz de coordenadas de los
nudos (existente)
xp
malla de elementos finitos
Figura 8.6. Ejemplo. Elemento triangular lineal nmero 4 de una malla de elementos finitos.
(1x3)
F1
C1
3.3333E-01
C2
3.3333E-01
C3
3.3333E-01
8.4. NRECTA
Crea la matriz de funciones de forma de un elemento rectangular bilineal con un grado de
libertad por nudo. En el dominio (e ) de este tipo de elemento se define una funcin de
aproximacin lineal en un espacio bidimensional de la forma:
( e ) ( s, t ) = a1 + a 2 s + a3 t + a 4 st ( s, t ) ( e )
(8.17)
siendo s y t los ejes de un sistema coordenado local con origen en el nudo i como se indica
en la Figura 8.7. El elemento tiene cuatro nudos ubicados en sus extremos y un grado de
98
libertad o valor nodal por cada nudo. En general en los elementos bidimensionales se elige
el nudo i y los dems se designan en sentido antihorario.
t
k
2a
s
i
2b
x
(a)
(b)
Figura 8.7. Elemento rectangular bilineal: (a) geometra, (b) funcin de aproximacin
( e ) = N i( e)i( e ) + N (j e ) (j e ) + N k( e) k( e) + N m( e ) m( e )
(8.18)
N ( e ) = [N i( e )
N m( e ) ]
(8.19)
1
(2b s ) (2a t )
4ab
s
N (j e ) ( s, t ) =
( 2a t )
4ab
st
N k( e ) ( s, t ) =
4ab
t
N m( e ) ( s, t ) =
(2b s )
4ab
(8.20)
N (j e )
N k( e )
siendo,
N i( e ) ( s, t ) =
La Figura 8.9 representa las funciones de forma del elemento mediante cuatro grficos
tridimensionales donde el eje vertical indica la funcin de forma y los otros dos ejes definen la geometra del elemento.
La instruccin evala a las funciones de forma en la posicin relativa 0 s 2b 1 en
direccin s y 0 t 2a 1 en direccin t, como lo indican las siguientes ecuaciones:
99
s t
s
t
N i( e ) , = 1 1
2b 2a 2b 2a
s t
s
t
N (j e ) , =
1
2b 2a 2b 2a
s t
s t
N k( e ) , =
2b 2a 2b 2a
s t
t
s
N m( e ) , =
1
2b 2a 2a 2b
(8.21)
Argumento
MX()
XYZ()
ELE()
IELE
SP
TP
Tipo de variable
Descripcin
Matriz creada de las funciones de forma del elemento
Double (real)
N (e ) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Integer (entero)
Nmero del elemento finito.
Posicin relativa 0 s 2b 1 de un punto dentro del
Double (real)
elemento en direccin s donde se evala la funcin de
forma
Posicin relativa 0 t 2a 1 de un punto dentro del
Double (real)
elemento en direccin t donde se evala la funcin de
forma.
Tabla 8.4. Sintaxis de la instruccin NRECTA.
Ejemplo 8.4 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE() mostrada en la Figura 8.8, las
funciones de forma en el centroide del elemento rectangular bilineal nmero 1, se
obtiene a partir de la siguientes instruccin:
NRECTA NEL(), XYZ(), ELE(), 1, 0.5, 0.5
100
03
02
2a=1.5
(t 2a )(1) = 0.5
02
04
09
05
08
03
y
01
06
05
01
04
07
(1)
( s 2b ) = 0.5
2b=1.5
Figura 8.8. Ejemplo. Elemento rectangular bilineal nmero 1 de la malla de elementos finitos.
(1x4)
C1
2.5000E-01
C2
2.5000E-01
C3
2.5000E-01
C4
2.5000E-01
N (j e )
N i( e )
(a)
N k(e )
(b)
N m( e )
(c)
(d)
Figura 8.9. Funciones de forma del elemento rectangular bilineal.
101
8.5. NTRIEL
Crea la matriz de funciones de forma de un elemento triangular lineal para elasticidad bidimensional u otro problema con dos grados de libertad por nudo como lo indica la Figura
8.10.
vj
(x j , y j )
vk
uk
( xk , y k )
uj
j
v(x,y)
u(x,y)
vi
( xi , yi ) i
ui
x
Figura 8.10. Elemento triangular lineal de elasticidad bidimensional.
(8.22)
x ( e )
La
(8.23)
(e)
N i( e )
=
0
0
N i( e )
N (j e )
0
0
N (j e )
N k( e )
0
N k( e )
(8.24)
102
Argumento
MX()
XYZ()
ELE()
IELE
XP
YP
Tipo de variable
Descripcin
Matriz creada de las funciones de forma del elemento
Double (real)
N (e) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Nmero del elemento finito.
Integer (entero)
Coordenada x de un punto dentro del elemento donde
Double (real)
se evala la funcin de forma.
Coordenada y de un punto dentro del elemento donde
Double (real)
se evala la funcin de forma.
Tabla 8.5. Sintaxis de la instruccin NTRIEL.
Ejemplo 8.5 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE() mostrada en la Figura 8.6, las
funciones de forma en el centroide del elemento triangular lineal para elasticidad
bidimensional nmero 4, se obtiene de las siguientes instrucciones:
:
:
'coordenadas del centroide del elemento
XP = (XYZ(ELE(4, 1), 1) + XYZ(ELE(4, 2), 1) + XYZ(ELE(4, 3), 1)) / 3
YP = (XYZ(ELE(4, 1), 2) + XYZ(ELE(4, 2), 2) + XYZ(ELE(4, 3), 2)) / 3
'matriz de funciones de forma del elemento
NTRIEL NEL(), XYZ(), ELE(), 4, XP, YP
:
:
Figura 8.11. Parte del cdigo de la rutina principal PEFiCA donde se calcula la matriz
de
(2x6)
C1
3.3333E-01
0.0000E+00
C2
0.0000E+00
3.3333E-01
C3
3.3333E-01
0.0000E+00
C4
0.0000E+00
3.3333E-01
C5
3.3333E-01
0.0000E+00
C6
0.0000E+00
3.3333E-01
8.6. NRECEL
Crea la matriz de funciones de forma de un elemento rectangular bilineal para elasticidad
bidimensional u otro problema con dos grados de libertad por nudo como lo indica la
Figura 8.12.
Como se indic en la seccin anterior, las componentes cartesianas del vector del desT
plazamiento en elasticidad bidimensional u = [u v ] corresponden a dos funciones de
aproximacin independientes del mismo tipo, definidas para todo punto (s,t) que pertenece
al dominio del elemento rectangular bilineal (e ) as:
103
u ( e ) ( s, t ) = N i( e ) u i( e ) + N (j e ) u (je ) + N k( e ) u k( e ) + N m( e ) u m( e )
(8.25)
v ( e ) ( s, t ) = N i( e ) vi( e ) + N (j e ) v (je ) + N k( e ) v k( e ) + N m( e ) v m( e )
0
N i( e )
N (j e )
0
0
N (j e )
N k( e )
0
0
N k( e )
N m( e )
0
N m( e )
(8.26)
Argumento
MX()
XYZ()
ELE()
IELE
SP
TP
Tipo de variable
Descripcin
Matriz creada de las funciones de forma del elemento
Double (real)
N (e) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Nmero del elemento finito.
Integer (entero)
Posicin relativa 0 s 2b 1 de un punto dentro del
Double (real)
elemento en direccin s donde se evala la funcin de
forma
Posicin relativa 0 t 2a 1 de un punto dentro del
Double (real)
elemento en direccin t donde se evala la funcin de
forma.
Tabla 8.6. Sintaxis de la instruccin NRECEL.
Ejemplo 8.6 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE() mostrada en la Figura 8.8, las
funciones de forma en el centroide del elemento rectangular bilineal nmero 1, se
obtiene a partir de la siguientes instruccin:
NRECEL NEL(), XYZ(), ELE(), 1, 0.5, 0.5
NEL()
(2x8)
104
F1
F2
C1
2.5000E-01
0.0000E+00
C2
0.0000E+00
2.5000E-01
F1
F2
C7
2.5000E-01
0.0000E+00
C8
0.0000E+00
2.5000E-01
C3
2.5000E-01
0.0000E+00
C4
0.0000E+00
2.5000E-01
C5
2.5000E-01
0.0000E+00
C6
0.0000E+00
2.5000E-01
vk
vm
um
m
uk
v(s,t)
2a
u(s,t)
vj
vi
y
ui
2b
uj
x
Figura 8.12. Elemento rectangular bilineal de elasticidad bidimensional.
Captulo 9
Instrucciones para crear la matriz de
derivadas de funciones de forma de un
elemento
Cada instruccin presentada a continuacin crea la matriz de operadores diferenciales actuando sobre las funciones de forma de un tipo de elemento finito B ( e ) . Los coeficientes
de esta matriz son derivadas de las funciones de forma con respecto a las coordenadas del
dominio del problema. Estas subrutinas estn ubicadas en el mdulo MdB como lo indica la
Tabla 2.8.
Siendo N ( e ) la matriz de funciones de forma del elemento finito y el operador diferencial nabla de un problema especfico, la matriz B ( e ) es igual a:
B (e ) = N (e)
(9.1)
(9.2)
donde el vector de los valores nodales ( e) = [i( e ) , (j e) ,L, n( e ) ] tiene coeficientes independientes de las coordenadas del problema.
T
9.1. BUNID2
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento unidimensional lineal en un problema de campo unidimensional.
La derivada con respecto a x de la funcin de aproximacin indicada en la Ecuacin
(8.3) en trminos de las funciones de forma de la Ecuacin (8.5), es igual a:
(e)
( e ) N i( e ) ( e ) N j ( e)
=
i +
j
x
x
x
donde,
(9.3)
106
N i( e)
1
= (e)
x
L
N i( e )
1
;
= ( e)
x
L
(9.4)
N (j e )
1
= ( e ) [ 1
x L
1]
(9.5)
Argumento
Tipo de variable
Descripcin
Matriz creada de los operadores diferenciales actuando sobre funciones de forma del elemento B ( e ) .
MX()
Double(real)
LELE
Double(real)
Longitud del elemento finito L(e)
Tabla 9.1. Sintaxis de la instruccin BUNID2.
(1x2)
C1
-4.0000E-01
C2
4.0000E-01
9.2. BUNID3
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento unidimensional cuadrtico en un problema de campo unidimensional.
La derivada con respecto a x de la funcin de aproximacin indicada en la Ecuacin
(8.8) en trminos de las funciones de forma de la Ecuacin (8.10), es igual a:
107
(e)
( e ) N i( e ) ( e ) N j ( e) N k( e) ( e)
=
i +
j +
k
x
x
x
x
(9.6)
donde,
N i( e)
1
= (e)
x
L
( e)
N j
1
= (e)
x
L
( e)
N k
1
= (e)
x
L
3 + 4x
L( e)
4 8x
L( e )
(9.7)
1 + 4x
L( e )
(e)
B (e)
= N
( e)
N ( e )
= i
x
N (j e )
x
N k( e)
(9.8)
1
= ( e) [(3 + 4 ) (4 8 ) (1 + 4 )]
L
Argumento
Tipo de variable
Descripcin
Matriz creada de los operadores diferenciales actuando sobre funciones de forma del elemento B (e ) .
Posicin donde se evala la matriz B (e ) en coordenadas naturales 0 1 .
MX()
Double(real)
XCN
Double(real)
LELE
Double(real)
Longitud del elemento finito L(e)
Tabla 9.2. Sintaxis de la instruccin BUNID3.
108
(1x3)
C1
8.0000E-02
C2
-9.6000E-01
C3
8.8000E-01
9.3. BTRIAN
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento triangular lineal con un grado de libertad por nudo (Figura 8.3). En problemas de
T
campo bidimensional donde el operador diferencial nabla = [ x y ] , el gradiente
de la funcin de aproximacin ( e) definido en la Ecuacin (9.2) corresponde a un vector
de la forma:
( e)
x x N
=
(e)
y y N
(e)
i
(e)
i
xN
yN
( e)
j
(e)
j
xN
yN
(e)
k
(e)
k
i( e )
(e)
j
( e )
k
(9.9)
En general las derivadas parciales de una funcin () en trminos de x y de y se escriben de la forma x () () x y y () () y . Derivando las funciones de forma
dadas en la Ecuacin (8.15) se obtiene,
bj
bi
b
; x N (j e) =
; x N k( e) = k
2A
2A
2A
cj
c
c
= i ; y N (j e ) =
; yN k( e ) = k
2A
2A
2A
x N i( e) =
yN
(e)
i
(9.10)
1 bi
2 A ci
bj
cj
bk
c k
(9.11)
donde,
ai = x j y k xk y j
bi = y j y k
ci = x k x j
a j = x k y i xi y k
b j = yk yi
c j = xi x k
a k = xi y j x j y i
bk = yi y j
c k = x j xi
(9.12)
La Ecuacin (9.11) muestra que la matriz B ( e ) es la misma para todo punto (x,y) en el
interior de un elemento triangular lineal. La sintaxis de la instruccin se indica en la Tabla
9.3.
Ejemplo 9.3 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE()mostrada en la Figura 8.6, la
matriz B ( e ) del elemento triangular lineal nmero 4 se obtiene de la siguiente instruccin:
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
109
(2x3)
C1
-6.6667E-01
0.0000E+00
C2
6.6667E-01
-1.0000E+00
C3
0.0000E+00
1.0000E+00
Argumento
MX()
XYZ()
ELE()
IELE
Tipo de variable
Descripcin
Matriz creada de los operadores diferenciales actuanDouble (real)
do sobre funciones de forma del elemento B (e ) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Nmero del elemento finito.
Integer (entero)
Tabla 9.3. Sintaxis de la instruccin BTRIAN.
9.4. BRECTA
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento rectangular bilineal con un grado de libertad por nudo como se indica en la Figura
8.7(a).
En problemas de campo bidimensional donde el operador diferencial nabla
T
= [ x y ] , el gradiente de la funcin de aproximacin ( e ) definido en la Ecuacin (9.2) corresponde a un vector de la forma:
x ( e) x N i( e )
=
(e)
(e)
y y N i
x N (j e )
y N (j e)
x N k( e)
y N k( e)
i( e)
x N m( e) (j e)
y N m( e ) k( e)
( e)
m
(9.13)
x
s
x
t
x
( e)
(e)
( e)
N i
N i ( s, t ) s N i ( s, t ) t
=
+
y
s
y
t
y
(9.14)
Dado que el sistema coordenado local (s,t) con origen en ( xi , y i ) se relaciona con el sistema coordenado global (x,y) con las expresiones s = x xi y t = y yi , las derivadas en Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
110
(9.15)
N k( e )
N m( e ) (2b s )
s
=
;
=
y
4ab
y
4ab
1 ( 2a t )
4ab (2b s )
( 2a t )
(2b s )
(9.16)
(1 2b )(1 t 2a )
(1 2a )( s 2b )
(1 2b )(t 2a )
(1 2a )( s 2b )
(1 2b )(t 2a )
(1 2a )(1 s 2b )
(9.17)
Argumento
MX()
XYZ()
ELE()
IELE
SP
TP
Tipo de variable
Descripcin
Matriz creada de los operadores diferenciales actuanDouble (real)
do sobre funciones de forma del elemento B (e ) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Integer (entero)
Nmero del elemento finito.
Posicin relativa 0 s 2b 1 de un punto dentro del
Double (real)
elemento en direccin s donde se evala la matriz
B (e ) .
Posicin relativa 0 t 2a 1 de un punto dentro del
Double (real)
elemento en direccin t donde se evala la matriz
B (e ) .
Tabla 9.4. Sintaxis de la instruccin BRECTA.
Ejemplo 9.4 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE()mostrada en la Figura 8.8, la
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
111
(2x4)
C1
-3.3333E-01
-5.0000E-01
C2
3.3333E-01
-5.0000E-01
C3
3.3333E-01
5.0000E-01
C4
-3.3333E-01
5.0000E-01
9.5. BTRIEL
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento triangular lineal para elasticidad bidimensional u otro problema con dos grados de
libertad por nudo (Figura 8.10).
En elasticidad bidimensional en el plano xy, las componentes de la deformacin en un
T
punto material se puede representar mediante el vector = [ xx yy xy ] . Para una
condicin plana de deformaciones las componentes de deformacin zz = xz = yz = 0 ; en
cambio, para una condicin plana de esfuerzos zz = ( (1 )) ( xx + yy ) y
xz = yz = 0 , sin embargo no se incluye la componente zz al vector porque depende de
las otras componentes.
T
La deformacin se define como = u , donde u = [u v] es el vector de desplazamiento y el operador diferencial para elasticidad bidimensional es igual a:
x
=0
(9.18)
x ( e )
(9.19)
112
(e)
=B
(e)
x N i( e)
= 0
y N i( e )
x N (j e)
0
yN
xN
( e)
i
(e)
i
0
y N (j e)
x N k( e )
0
yN
xN
( e)
j
(e)
j
0
y N k( e)
0
yN
xN
(e)
k
(e)
k
(9.20)
Las componentes de la matriz B ( e ) son las derivadas de las funciones de forma del elemento triangular lineal presentadas en la Ecuacin (9.10), por lo tanto, la matriz B ( e ) es
constante en el interior de un elemento triangular lineal. La sintaxis de la instruccin es:
BTRIEL MX(), XYZ(), ELE(), IELE
Argumento
MX()
XYZ()
ELE()
IELE
Tipo de variable
Descripcin
Matriz creada de los operadores diferenciales actuanDouble (real)
do sobre las funciones de forma del elemento B (e ) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Integer (entero)
Nmero del elemento finito.
Tabla 9.5. Sintaxis de la instruccin BTRIEL.
Ejemplo 9.5 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE()mostrada en la Figura 8.6, la
matriz B ( e ) del elemento triangular lineal de elasticidad nmero 4 se obtiene de la
siguiente instruccin:
BTRIEL BEL(), XYZ(), ELE(), 4
(3x6)
C1
-6.6667E-01
0.0000E+00
0.0000E+00
C2
0.0000E+00
0.0000E+00
-6.6667E-01
C3
6.6667E-01
0.0000E+00
-1.0000E+00
C4
0.0000E+00
-1.0000E+00
6.6667E-01
C5
0.0000E+00
0.0000E+00
1.0000E+00
C6
0.0000E+00
1.0000E+00
0.0000E+00
9.6. BRECEL
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento rectangular bilineal para elasticidad bidimensional u otro problema con dos grados
de libertad por nudo (Figura 8.12).
Como se indic en el apartado anterior, el vector de deformacin en el plano xy se defiT
ne como = [ xx yy xy ] y se obtiene al aplicar el operador diferencial dado en la
T
Ecuacin (9.18) sobre el vector de desplazamiento u = [u v ] , es decir, = u . En el
dominio de un elemento finito rectangular lineal ( e ) , el vector de deformaciones definido
en la Ecuacin (9.19), donde el vector de valores nodales de desplazamiento corresponde a
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
113
U ( e ) = [u i( e ) vi( e ) u (je ) v (je ) u k( e ) v k( e ) u m( e ) v m( e ) ] y la matriz de operadores diferenciales actuando sobre las funciones de forma es igual a:
T
(e)
x N i( e )
= 0
y N i( e)
x N (j e)
0
yN
xN
(e)
i
(e)
i
0
y N (j e)
x N k( e )
0
yN
xN
(e)
j
( e)
j
0
y N k( e )
x N m( e)
0
yN
xN
(e)
k
(e)
k
0
y N m( e)
0
yN
xN
( e)
m
(e)
m
(9.21)
Las componentes de la matriz B ( e ) son las derivadas de las funciones de forma del elemento rectangular bilineal presentadas en la Ecuacin (9.15). La sintaxis de la instruccin
y la descripcin de sus respectivos argumentos se presentan a continuacin.
BRECEL MX(),XYZ(), ELE(), IELE, SP, TP
Argumento
Tipo de variable
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
SP
Double (real)
TP
Double (real)
Descripcin
Matriz creada de los operadores diferenciales actuando
sobre funciones de forma del elemento B (e ) .
Matriz existente de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades descrita en el Apartado 3.4.
Nmero del elemento finito.
Posicin relativa 0 s 2b 1 de un punto dentro del
Ejemplo 9.6 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE()mostrada en la Figura 8.8, la
matriz B ( e ) en el centroide del elemento rectangular bilineal de elasticidad nmero
1 se obtiene a partir de la siguiente instruccin:
BRECEL BEL(), XYZ(), ELE(), 1, 0.5, 0.5
(3x8)
F1
F2
F3
C1
-3.3333E-01
0.0000E+00
-5.0000E-01
C2
0.0000E+00
-5.0000E-01
-3.3333E-01
F1
F2
F3
C7
-3.3333E-01
0.0000E+00
5.0000E-01
C8
0.0000E+00
5.0000E-01
-3.3333E-01
C3
3.3333E-01
0.0000E+00
-5.0000E-01
C4
0.0000E+00
-5.0000E-01
3.3333E-01
C5
3.3333E-01
0.0000E+00
5.0000E-01
C6
0.0000E+00
5.0000E-01
3.3333E-01
Captulo 10
Instrucciones para crear la matriz de rigidez
de un elemento
Las instrucciones presentadas a continuacin crean la matriz de rigidez K ( e ) de los elementos finitos que constituyen la librera del programa. Estas subrutinas tienen el prefijo K y
estn ubicadas en el mdulo MdK del cdigo como lo indica la Tabla 2.9.
La matriz K ( e ) depende del tipo de problema, la geometra y la funcin de aproximacin del elemento.
10.1. KUNID2
Crea la matriz de rigidez de un elemento finito unidimensional lineal preparado para resolver la ecuacin diferencial en trminos de (x) de la forma:
D
d 2
+Q = 0
dx 2
(10.1)
Los parmetros D y Q de la ecuacin diferencial dependen de x, sin embargo, se considera que conservan un valor constante D ( e) y Q ( e ) en el interior de cada elemento finito, es
decir, para x ( e ) D( x) = D ( e) Q( x) = Q ( e ) .
El elemento unidimensional lineal define una funcin de aproximacin lineal en un espacio unidimensional, por lo tanto cuenta con dos nudos ubicados en sus extremos (Figura
10.1).
L(e )
x
Figura 10.1. Elemento Unidimensional Lineal
(e )
(10.2)
116
K (e) =
D (e)
L( e )
1 1
1 1
(10.3)
Argumento
Tipo de variable
Descripcin
MX()
Double(real)
Double(real)
Double(real)
Longitud del elemento finito L(e ) .
Tabla 10.1. Sintaxis de la instruccin KUNID2.
(2x2)
C1
2.6667E+04
-2.6667E+04
C2
-2.6667E+04
2.6667E+04
10.2. KUNID3
Crea la matriz de rigidez de un elemento finito unidimensional cuadrtico preparado para
resolver la ecuacin diferencial en trminos de ( x) indicada en la Ecuacin (10.1), considerando que los parmetros D y Q conservan un valor constante D (e ) y Q (e ) en el interior
de cada elemento finito.
El elemento unidimensional cuadrtico define una funcin de aproximacin polinmica
de orden 2 en un espacio unidimensional, por lo tanto cuenta con tres nudos ubicados en el
centro y en sus extremos como lo muestra la Figura 10.2.
117
L(e ) 2
j L(e ) 2
x
Figura 10.2. Elemento Unidimensional Cuadrtico
(e)
7 8 1
D (e)
= ( e ) 8 16 8
3L
1 8 7
(10.4)
Argumento
Tipo de variable
Descripcin
MX()
Double(real)
Double(real)
Double(real)
Longitud del elemento finito L(e ) .
Tabla 10.2. Sintaxis de la instruccin KUNID3.
(3x3)
C1
6.2222E+04
-7.1111E+04
8.8889E+03
C2
-7.1111E+04
1.4222E+05
-7.1111E+04
C3
8.8889E+03
-7.1111E+04
6.2222E+04
118
10.3. KTRIAN
Crea la matriz de rigidez de un elemento finito triangular lineal (Figura 8.3(a)), preparado
para resolver una ecuacin diferencial de campo bidimensional denominada ecuacin de
Poisson (Oate & Zrate 2000), de la forma:
Dx
2
2
+
D
G + Q = 0
y
x 2
y 2
(10.5)
Los parmetros Dx, Dy, G y Q de la ecuacin diferencial dependen de (x,y), sin embargo,
se considera que conservan un valor constante D x(e ) , D y(e ) , G (e ) y Q (e ) en el interior de cada elemento finito. Los primeros dos parmetros se presentan como coeficientes de una
matriz diagonal D (e ) de la forma:
D
(e)
D x( e )
=
0
D y( e )
(10.6)
(10.7)
donde N (e ) es la matriz de funciones de forma y B (e ) es el operador diferencial actuando sobre las funciones de forma del elemento finito. Para el elemento triangular lineal en
particular, la matriz N (e ) est dada en las Ecuaciones (8.14) a (8.16), y la matriz B (e ) est
definida por las Ecuaciones (9.11) y (9.12). Como resultado, la matriz de rigidez de un
elemento triangular lineal asociado con la ecuacin diferencial bidimensional de Poisson es
igual a:
K ( e ) = K (De ) + K G( e )
K
(e)
D
K G( e )
bi 2 bi b j
D
2
= x
bj
4 A
sim.
ci 2 ci c j
bi bk
D
y
2
b j bk +
cj
4 A
2
sim.
bk
ci c k
c j ck
2
c k
(10.8)
2 1 1
G A
=
2 1
12
2
sim.
donde,
bi = y j y k
ci = x k x j
b j = yk yi
c j = xi x k
bk = y i y j
c k = x j xi
(10.9)
119
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
DX
Double (real)
DY
Double (real)
Double (real)
(Ecuacin (10.5) ).
Tabla 10.3. Sintaxis de la instruccin KTRIAN.
(3x3)
C1
1.6917E-01
-1.6542E-01
1.2500E-03
C2
-1.6542E-01
5.4417E-01
-3.7375E-01
C3
1.2500E-03
-3.7375E-01
3.7750E-01
10.4. KRECTA
Crea la matriz de rigidez de un elemento finito rectangular bilineal (Figura 8.7(a)), preparado para resolver la ecuacin diferencial de campo bidimensional denominada ecuacin de
Poisson y presentada en la Expresin (10.5).
Al plantear la solucin de la ecuacin diferencial con el mtodo de los elementos finitos
se obtiene la matriz de rigidez elemental indicada en la Ecuacin (10.7). En particular para
el elemento rectangular bilineal, el operador diferencial actuando sobre las funciones de
forma o matriz B (e ) est definida en la Ecuacin (9.16) y la matriz de funciones de forma
N (e ) est dada en las Ecuaciones (8.19) y (8.20). Como resultado, la matriz de rigidez de
un elemento rectangular bilineal asociado con la ecuacin diferencial bidimensional de
Poisson es igual a:
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
120
K ( e ) = K (De ) + K (Ge )
K (De )
K G( e )
2 2 1
2
1
D a
= x
2
6b
sim.
4 2 1 2
4 2 1
Gab
=
4 2
9
4
sim.
1
2 1 1 2
1 D y b
2 2 1
+
2 6 a
2
1
2
2
sim.
(10.10)
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
DX
Double (real)
DY
Double (real)
Double (real)
(Ecuacin (10.5) ).
Tabla 10.4. Sintaxis de la instruccin KRECTA.
(4x4)
C1
3.6444E-01
1.5556E-02
C2
1.5556E-02
3.6444E-01
C3
-1.7972E-01
-1.9278E-01
C4
-1.9278E-01
-1.7972E-01
121
-1.7972E-01
-1.9278E-01
-1.9278E-01
-1.7972E-01
3.6444E-01
1.5556E-02
1.5556E-02
3.6444E-01
10.5. KTRIEL
Crea la matriz de rigidez de un elemento finito triangular lineal de elasticidad para un material istropo en condicin plana de esfuerzos o de deformaciones (Figura 8.10).
Un problema de elasticidad se puede plantear a partir de la relacin deformacindesplazamiento, la ecuacin constitutiva del material lineal elstico y la ecuacin de equilibrio del slido dada por el principio de la energa potencial total estacionaria. La deformacin infinitesimal es igual al operador diferencial actuando sobre el vector de desplazamientos, es decir,
(10.11)
= u
x
=0
(10.12)
= D
d12
d 22
0
0
0
d 33
(10.14)
E
E
E
; d12 =
; d 33 =
2
2
2(1 + )
(1 )
(1 )
(10.15)
122
d11 = d 22 =
(1 ) E
E
E
; d12 =
; d 33 =
(1 + )(1 2 )
(1 + )(1 2 )
2(1 + )
(10.16)
La energa potencial total de una estructura puede expresarse como la diferencia entre la
energa elstica de deformacin y el trabajo realizado por las acciones externas, es decir
P = U-W.
El principio de la energa potencial total estacionaria establece que de todos los estados
admisibles de desplazamiento, es decir, los que cumplen con las condiciones de borde y de
compatibilidad, aquel que satisface las ecuaciones de equilibrio adopta un valor estacionario de la energa potencial total. Adems indica que si la condicin estacionaria es un mnimo relativo el equilibrio del sistema es estable. Este principio es aplicable a problemas
donde la relacin entre la carga aplicada y el desplazamiento es lineal (Cook, Malkus et al.
1989).
En el dominio de un slido de material elstico la energa de deformacin es igual a:
U=
1 T
dV
2
(10.17)
1 T
D dV
2
(10.18)
(10.19)
1 T
D dV b T u dV p T u dS
(10.20)
En el mtodo de los elementos finitos el campo del desplazamiento u(x) para todo punto
material en el dominio , se convierte en el conjunto de campos continuos de desplazamiento en el interior de cada elemento finito, es decir u(x) ( e ) x ( e ) , que satisfacen la
condicin de continuidad en los nudos de los mismos.
Los trminos de la energa potencial total en la Ecuacin (10.20) son integrales en el
dominio y en el contorno del slido, que corresponden a la sumatoria de las integrales en el
subdominio de cada elemento (e ) y en su contorno (e ) , as:
m
P=
P
( e ) =1
(e)
T
; P (e) = ( e )T D ( e ) ( e ) dV b ( e ) u ( e ) dV p ( e )T u ( e ) dS
2 ( e )
( e )
( e )
(10.21)
123
1 ( e )T
U B ( e )T D ( e ) B ( e ) dV U ( e ) U ( e )T N (e )T b (e ) dV U (e )T N (e )T p (e ) dS
2
(e )
(e )
( e )
(10.22)
Las derivadas de energa potencial total con respecto a cada uno de los valores nodales
de desplazamiento en el elemento (e) son los coeficientes de un vector columna de la forma:
P (e) P (e)
=
U ( e ) U i( e )
P (e)
U (j e )
P (e)
L
U ge( e )
(10.23)
P (e)
= B ( e )T D ( e ) B ( e ) dV U ( e ) N ( e )T b ( e ) dV N ( e )T p ( e ) dS
(e)
U
( e )
( e )
( e )
(10.24)
( e )T
D ( e ) B ( e ) dV
(10.25)
( e )
( e )
( e )T
b ( e ) dV
; f p( e ) =
( e )T
p ( e ) dS ; f ( e ) = f b( e ) + f p( e )
( e )
(10.26)
(10.27)
La energa potencial total adopta un valor estacionario cuando las derivadas de la energa potencial total con respecto a los valores nodales del slido son nulas, es decir,
T
P P
P
=
= 0
= 0 L
= 0 = 0
U U 1
U j
U gt
(10.28)
124
como lo indica la Ecuacin (10.27). Sin embargo, se deben sumar las derivadas de P (e)
con respecto al mismo valor nodal, esto se puede lograr mediante una suma organizada de
acuerdo con la numeracin de los valores nodales o grados de libertad del slido denominada ensamblaje A (me ) =1 , es decir,
m
m
P
P (e)
P (e)
=
= A (e) = 0
U ( e )=1 U ( e ) =1 U
(10.29)
A (K
( e ) =1
(e)
U (e) ) = A K (e) U
( e ) =1
(10.30)
Por lo tanto,
P
= KU f = 0
U
(10.31)
siendo K la matriz de rigidez del slido obtenida del ensamblaje de las matrices de rigidez de los elementos, es decir,
m
K = A K (e)
( e )=1
(10.32)
y f el vector de fuerzas nodales del slido resultante del ensamblaje de los vectores de
fuerzas nodales de los elementos de la forma:
m
f = A f (e)
( e ) =1
(10.33)
La matriz de rigidez de un elemento triangular lineal de elasticidad indicada a continuacin se obtiene al sustituir a la matriz B (e ) definida en la Ecuacin (9.20) en la Ecuacin
(10.25).
K ii( e ) K ij( e ) K ik( e )
t (e )
2
2
bk c i d 12 + bi c k d 33 bi bk d 33 + c i c k d 22
b j c j ( d 12 + d 33 ) b j d 33 + c j d 22
(e)
b j bk d 11 + c j c k d 33
K (jke ) = h
bk c j d 12 + b j c k d 33
(10.34)
b j c k d 12 + bk c j d 33
bk2 d 11 + c k2 d 33 bk c k (d 12 + d 33 )
(e)
K
=
h
kk
2
2
b j bk d 33 + c j c k d 22
bk c k ( d 12 + d 33 ) bk d 33 + c k d 22
125
bi = y j y k
ci = x k x j
b j = yk yi
c j = xi x k
bk = y i y j
c k = x j xi
Las constantes elsticas d11 , d 22 , d12 , d33 estn definidas en las ecuaciones (10.15) y
(10.16).
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
KTRIEL MX(), XYZ(), ELE(), IELE, EYOU, POIS, TESP, TP
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
EYOU
Double (real)
POIS
Double (real)
TESP
Double (real)
TP
(6x6)
F1
F2
C1
8.0000E+05
0.0000E+00
C2
0.0000E+00
2.6667E+05
C3
-8.0000E+05
4.0000E+05
C4
4.0000E+05
-2.6667E+05
C5
0.0000E+00
-4.0000E+05
C6
-4.0000E+05
0.0000E+00
126
-8.0000E+05
4.0000E+05
0.0000E+00
-4.0000E+05
4.0000E+05
-2.6667E+05
-4.0000E+05
0.0000E+00
1.4000E+06
-8.0000E+05
-6.0000E+05
4.0000E+05
-8.0000E+05
2.0667E+06
4.0000E+05
-1.8000E+06
-6.0000E+05
4.0000E+05
6.0000E+05
0.0000E+00
4.0000E+05
-1.8000E+06
0.0000E+00
1.8000E+06
10.6. KRECEL
Crea la matriz de rigidez de un elemento finito rectangular bilineal de elasticidad para un
material istropo en condicin plana de esfuerzos o de deformaciones (Figura 8.12).
KRECEL MX(), XYZ(), ELE(), IELE, EYOU, POIS, TESP, TP
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
EYOU
Double (real)
POIS
Double (real)
TESP
Double (real)
TP
127
K ( e ) = K 1( e ) + K (2e )
K 1( e )
2 s1
s
3
2 s1
s
= 3
s1
s3
s1
s3
2 s2
s3
2 s1
s2
s3
2 s2
s3
s1
s3
2 s1
s2
s3
2 s2
s3
2 s2
s3
s1
s3
2 s1
s3
2 s1
2 s2
s3
s2
s3
s2
s3
s1 =
K (2e )
2 s4
s
6
s4
s
= 6
s4
s6
2 s4
s6
sim.
d11at ( e )
6b
, s2 =
d 22bt ( e )
d t (e)
, s3 = 12
6a
4
2 s5
s6
2 s4
2 s5
s6
2 s5
s6
2 s4
s6
2 s4
s5
s6
s5
s6
2 s5
s6
s4
s6
s4
s6
s6
s5
s6
2 s5
s4 =
d 33bt
6a
(10.35)
sim.
s5
( e)
s5 =
2 s2
d 33 at
6b
(e)
, s6 =
2 s4
d 33t
4
s6
2 s5
(e)
(8x8)
C1
8.7407E+03
3.3333E+03
-2.7407E+03
-6.6667E+02
-4.3704E+03
-3.3333E+03
C2
3.3333E+03
1.2444E+04
6.6667E+02
3.5556E+03
-3.3333E+03
-6.2222E+03
C3
-2.7407E+03
6.6667E+02
8.7407E+03
-3.3333E+03
-1.6296E+03
-6.6667E+02
C4
-6.6667E+02
3.5556E+03
-3.3333E+03
1.2444E+04
6.6667E+02
-9.7778E+03
C5
-4.3704E+03
-3.3333E+03
-1.6296E+03
6.6667E+02
8.7407E+03
3.3333E+03
C6
-3.3333E+03
-6.2222E+03
-6.6667E+02
-9.7778E+03
3.3333E+03
1.2444E+04
128
-1.6296E+03
6.6667E+02
-6.6667E+02
-9.7778E+03
F1
F2
F3
F4
F5
F6
F7
F8
C7
-1.6296E+03
-6.6667E+02
-4.3704E+03
3.3333E+03
-2.7407E+03
6.6667E+02
8.7407E+03
-3.3333E+03
C8
6.6667E+02
-9.7778E+03
3.3333E+03
-6.2222E+03
-6.6667E+02
3.5556E+03
-3.3333E+03
1.2444E+04
-4.3704E+03
3.3333E+03
3.3333E+03
-6.2222E+03
-2.7407E+03
-6.6667E+02
6.6667E+02
3.5556E+03
Captulo 11
Instrucciones para crear el vector de fuerzas
de un elemento
Las instrucciones presentadas a continuacin crean el vector de fuerzas equivalentes o vector de trminos independientes f (e ) de los elementos finitos que constituyen la librera de
del programa. Estas subrutinas tienen el prefijo F y estn ubicadas en el mdulo MdF del
cdigo como lo indica la Tabla 2.12.
La matriz f (e ) depende del tipo de problema, la geometra y la funcin de aproximacin
del elemento.
11.1. FUNID2
Crea el vector de trminos independientes de un elemento finito unidimensional lineal
(Figura 10.1), preparado para resolver la ecuacin diferencial de campo indicada en la Expresin (10.1). Los parmetros D y Q de la ecuacin diferencial dependen de x, sin embargo, esta instruccin considera que Q (e ) conserva un valor constante en el interior de
cada elemento finito, es decir, x ( e ) Q( x) = Q ( e ) .
Como resultado de plantear la solucin en el mtodo de los elementos finitos se obtiene
que el vector de trminos independientes de un elemento unidimensional es igual a:
f (e) =
(e)
(N (e) )T Q (e) dx
(11.1)
Q ( e ) L( e )
2
1
1
(11.2)
130
Captulo 11
FUNID2 MX(), Q, L
Argumento
Tipo de variable
Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Parmetro Q (e ) de la ecuacin diferencial asociada al
elemento finito.
MX()
Double (real)
Double (real)
Double (real)
Longitud del elemento finito L(e ) .
Tabla 11.1. Sintaxis de la instruccin FUNID2.
(2x1)
F1
F2
C1
6.0000E+00
6.0000E+00
11.2. FUN2QL
Crea el vector de trminos independientes de un elemento finito unidimensional lineal
(Figura 10.1), preparado para resolver la ecuacin diferencial de campo indicada en la Expresin (10.1), considerando que Q (e ) varia de forma lineal en el interior de cada elemento
finito, es decir,.
Q ( e ) ( x) = Qi( e ) + (Q (j e ) Qi( e ) )
x
L( e )
x ( e)
(11.3)
siendo Q (ej ) y Qi(e ) los valores del parmetro Q (e ) en los nudos del elemento i y j, respectivamente.
Sustituyendo en la Ecuacin (11.1), la expresin anterior y la matriz de funciones de
forma del elemento N (e ) presentada en la Ecuacin (8.5), se obtiene el vector de trminos
independientes de un elemento unidimensional lineal considerando variacin lineal del parmetro Q (e ) , como:
f
(e)
Q (j e ) L( e ) 1 (Q (j e ) Qi( e ) )L( e )
=
+
2 1
6
1
2
(11.4)
131
Argumento
Tipo de variable
Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Valor del parmetro Q (e ) de la ecuacin diferencial
en el nudo i del elemento.
Valor del parmetro Q (e ) de la ecuacin diferencial
en el nudo j del elemento.
MX()
Double (real)
QI
Double (real)
QJ
Double (real)
Double (real)
Longitud del elemento finito L(e ) .
Tabla 11.2. Sintaxis de la instruccin FUN2QL.
Ejemplo 11.2 Considerando que el parmetro Q (e ) de la ecuacin diferencial varia de forma lineal con un valor Qi( e ) = 10 kN m en el nudo i y Q (j e ) = 15 kN m , el
vector de trminos independientes de un elemento unidimensional lineal FEL() de
longitud 1.2m se calcula en el programa con la expresin:
FUN2QL FEL(), 10, 15, 1.2
(2x1)
F1
F2
C1
7.0000E+00
8.0000E+00
11.3. FUNID3
Crea el vector de trminos independientes de un elemento finito unidimensional cuadrtico
(Figura 10.2), preparado para resolver la ecuacin diferencial de campo indicada en la Expresin (10.1), considerando al parmetro Q constante en el interior del elemento, es decir,
Q( x) = Q ( e ) x ( e ) .
Sustituyendo en la Ecuacin (11.1) la matriz de funciones de forma del elemento N (e )
presentada en las Ecuaciones (8.9) y (8.10), se obtiene el vector de trminos independientes
de un elemento unidimensional cuadrtico de la forma:
f
(e)
1
Q ( e ) L( e )
=
4
6
1
(11.5)
132
Captulo 11
FUNID3 MX(), Q, L
Argumento
Tipo de variable
Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Parmetro Q (e ) de la ecuacin diferencial asociada al
elemento finito.
MX()
Double (real)
Double (real)
Double (real)
Longitud del elemento finito L(e ) .
Tabla 11.3. Sintaxis de la instruccin FUNID3.
(3x1)
F1
F2
F3
C1
2.0000E+00
8.0000E+00
2.0000E+00
11.4. FUN3QL
Crea el vector de trminos independientes de un elemento finito unidimensional cuadrtico
(Figura 10.2), preparado para resolver la ecuacin diferencial de campo indicada en la Expresin (10.1), considerando que Q (e ) varia de forma lineal en el interior de cada elemento
finito como lo indica la Ecuacin (11.3).
Sustituyendo la matriz de funciones de forma del elemento N (e ) presentada en la Ecuacin (8.5) y el parmetro Q (e ) de la Ecuacin (11.3), en la expresin de f (e ) dada en la
Ecuacin (11.1), se obtiene el vector de trminos independientes de un elemento unidimensional lineal considerando variacin lineal del parmetro Q (e ) , como:
f
(e)
1
Q (j e ) L( e ) (Q (j e ) Qi( e ) )L( e )
=
4 +
6
6
1
0
2
1
(11.6)
133
Argumento
Tipo de variable
Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Valor del parmetro Q (e ) de la ecuacin diferencial
en el nudo i del elemento.
Valor del parmetro Q (e ) de la ecuacin diferencial
en el nudo j del elemento.
MX()
Double (real)
QI
Double (real)
QJ
Double (real)
Double (real)
Longitud del elemento finito L(e ) .
Tabla 11.4. Sintaxis de la instruccin FUN2QL.
Ejemplo 11.4 Considerando que el parmetro Q (e ) de la ecuacin diferencial varia de forma lineal con un valor Qi( e ) = 10 kN m en el nudo i y Q (j e ) = 15 kN m , el
vector de trminos independientes de un elemento unidimensional cuadrtico FEL()
de longitud 1.2m se calcula en el programa con la expresin:
FUN3QL FEL(), 10, 15, 1.2
(3x1)
F1
F2
F3
C1
2.0000E+00
1.0000E+01
3.0000E+00
11.5. FTRIAN
Crea el vector de trminos independientes de un elemento finito triangular lineal (Figura
8.3(a)), preparado para resolver una ecuacin diferencial de campo bidimensional expresada en la Ecuacin (10.5), considerando al parmetro Q constante en el interior del elemento, es decir, Q( x) = Q ( e ) x ( e ) .
Como resultado de plantear la solucin en el mtodo de los elementos finitos se obtiene
que el vector de trminos independientes de un elemento bidimensional es igual a:
f (e) =
( e )
(N (e) )T Q (e) dA
(11.7)
En particular, sustituyendo la matriz de funciones de forma del elemento N (e ) presentada en las Ecuaciones (8.14) a (8.16), en la expresin anterior se obtiene el vector de trminos independientes de un elemento triangular lineal como:
134
Captulo 11
f (e)
1
Q (e) A(e)
=
1
3
1
(11.8)
Argumento
Tipo de variable
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
Double (real)
Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.
(Ecuacin (10.5) ).
Tabla 11.5. Sintaxis de la instruccin FTRIAN.
(3x1)
F1
F2
F3
C1
2.5000E+00
2.5000E+00
2.5000E+00
11.6. FRECTA
Crea el vector de trminos independientes de un elemento finito rectangular bilineal (Figura
8.7(a)), preparado para resolver la ecuacin diferencial de campo bidimensional expresada
en la Ecuacin (10.5), considerando al parmetro Q constante en el interior del elemento.
Al plantear la solucin de la ecuacin diferencial con el mtodo de los elementos finitos
se obtiene el vector de trminos independientes indicado en la Ecuacin (11.7). En parti Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
135
cular para el elemento rectangular bilineal, la matriz de funciones de forma N (e ) est dada
en las Ecuaciones (8.19) y (8.20). Como resultado, el vector de trminos independientes
de un elemento rectangular bilineal asociado con la ecuacin diferencial bidimensional de
Poisson es igual a:
(e)
f (e) =
Q A
4
(e)
1
1
(11.9)
Argumento
Tipo de variable
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
Double (real)
Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.
(Ecuacin (10.5) ).
Tabla 11.6. Sintaxis de la instruccin FRECTA.
(4x1)
F1
F2
F3
F4
C1
3.7500E+00
3.7500E+00
3.7500E+00
3.7500E+00
136
Captulo 11
11.7. FTRIES
Crea el vector de fuerzas en los nudos equivalentes a la aplicacin de una fuerza de superficie o presin constante sobre uno de los lados de un elemento finito triangular lineal de
elasticidad (Figura 8.10).
Del planteamiento del problema de elasticidad mediante el mtodo de los elementos finitos se obtiene el vector de fuerzas expresado en la Ecuacin (10.26), como la suma de los
vectores de fuerzas equivalentes a la accin de diferentes tipos de carga. La aplicacin de
T
una fuerza por unidad de superficie o presin constante p (jke ) = [ p x p y ] sobre la cara jk
del elemento finito (Figura 11.1), de dimensiones Ljk por t, produce un vector de fuerzas de
la forma:
f p( e( )jk ) =
(N )
(e) T
p (jke ) tdL jk
(11.10)
(jke )
La expresin anterior es una integral de lnea definidas en entre los nudos j y k. Las caras Lij , Ljk y Lik del elemento se designa como los lados 1, 2 y 3 respectivamente.
nudo k
nudo k
y
lado 3
lado 2
lado 3
lado 1
nudo i
py
px
lado 2
lado 1
nudo i
nudo j
nudo j
Figura 11.1. Fuerza de superficie aplicada sobre el lado jk o lado 2 del elemento finito triangular
lineal en direccin x y y.
(N )
(e) T
ij( e )
p ij( e ) tdLij
; f p( e()ik ) =
(N )
(e) T
ik( e )
p ik( e ) tdLik
(11.11)
137
f p( e(ij) )
0
px
px
0
p
p
y
y
tLij p x
tL jk p x
tLik 0
(e)
(e)
=
; f p ( ik ) =
; f p ( jk ) =
2 py
2 py
2 0
px
px
0
0
py
py
(11.12)
Argumento
Tipo de variable
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
TESP
Double (real)
PX
PY
LADO
Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.
138
Captulo 11
FEL()
(6x1)
F1
F2
F3
F4
F5
F6
C1
0.0000E+00
0.0000E+00
2.5000E+00
0.0000E+00
2.5000E+00
0.0000E+00
nudo 9
y
lado 3
x
p x = 50 kN / m 2
lado 2
elem. 04
nudo 5
(inicial)
lado 1
nudo 8
Figura 11.2. Fuerza de superficie aplicada sobre una cara del elemento triangular lineal nmero 4
de la malla de la Figura 8.6.
11.8. FTRIEC
Crea el vector de fuerzas en los nudos equivalentes a la accin de una fuerza msica constante o fuerza distribuida por unidad de volumen del elemento finito triangular lineal de
elasticidad (Figura 8.10).
Del planteamiento del problema de elasticidad mediante el mtodo de los elementos finitos se obtiene el vector de fuerzas expresado en la Ecuacin (10.26), como la suma de los
vectores de fuerzas equivalentes a la accin de diferentes tipos de carga. La aplicacin de
T
una fuerza msica b ( e ) = [bx b y ] produce un vector de fuerzas equivalentes en los nudos
del elemento de la forma:
f b( e ) =
(N )
(e) T
( e )
b ( e ) tdA ( e )
(11.13)
La integral anterior est definida el rea del elemento finito A(e ) , siendo t el espesor del
mismo. Un ejemplo habitual de fuerza msica es el peso especfico del material , en
T
cuyo caso b ( e ) = [0 ] .
Dada la matriz de funciones de forma expresada en las Ecuaciones (8.15) y (8.24), se
obtienen el vector de fuerzas equivalentes a la aplicacin de las fuerzas msicas sobre un
elemento triangular lineal, como:
139
f b( e )
b x
b
y
(e) b
tA x
=
3 b y
b x
b y
(11.14)
Argumento
Tipo de variable
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.
TESP
Double (real)
BX
Double (real)
BY
Double (real)
Componente en direccin y de la fuerza msica.
Tabla 11.8. Sintaxis de la instruccin FTRIEC.
(6x1)
C1
0.0000E+00
-6.0000E-01
0.0000E+00
-6.0000E-01
0.0000E+00
-6.0000E-01
140
Captulo 11
11.9. FRECES
Crea el vector de fuerzas en los nudos equivalentes a la aplicacin de una fuerza de superficie o presin constante sobre uno de los lados de un elemento finito rectangular bilineal de
elasticidad (Figura 8.12).
Del planteamiento del problema de elasticidad mediante el mtodo de los elementos finitos se obtiene el vector de fuerzas equivalentes a la aplicacin de una presin constante
como lo indican las Ecuaciones (11.10) y (11.11). La aplicacin de una fuerza por unidad
T
de superficie o presin constante p (jke ) = [ p x p y ] sobre la cara jk del elemento finito
(Figura 11.3), de dimensiones Ljk por t, produce un vector de fuerzas de la forma:
(N )
(e) T
f p( e( )jk ) =
p (jke ) tdL jk
(11.15)
(jke )
La expresin anterior es una integral de lnea definidas en entre los nudos j y k. Las caras Lij , Ljk , Lkm y Lim del elemento se designa como los lados 1, 2, 3 y 4 respectivamente.
nudo m
nudo m
nudo k
lado 3
lado 3
px
lado 2
lado 4
lado 2
lado 4
lado 1
nudo i
nudo k
py
lado 1
y
nudo j
nudo i
nudo j
Figura 11.3. Fuerza de superficie aplicada sobre el lado jk o lado 2 del elemento finito rectangular
bilineal en direccin x y y.
(N ) p
(e) T
f p( e( )ij ) =
(e)
ij
tdLij
ij( e )
f p( e( )km) =
(N ) p
(e) T
( e)
km
tdLkm
(e)
im
tdLim
(e )
km
f p( e( )im ) =
(N ) p
(e) T
(11.16)
(e)
im
141
f p( e(ij) )
0
px
0
px
p
0
0
p
y
y
0
0
px
px
tLij p y ( e )
tL jk p y ( e )
tLkm 0 ( e )
tLim 0
=
f p ( jk ) =
f p ( km) =
f p (im ) =
2 0
2 px
2 px
2 0
0
py
0
py
px
px
0
0
p y
p y
0
0
(11.17)
Argumento
Tipo de variable
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
TESP
Double (real)
PX
PY
LADO
Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.
142
Captulo 11
(8x1)
F1
F2
F3
F4
F5
F6
F7
F8
C1
0.0000E+00
0.0000E+00
2.5000E+00
0.0000E+00
2.5000E+00
0.0000E+00
0.0000E+00
0.0000E+00
nudo 8
nudo 5
lado 3
y
lado 4
lado 2
p x = 50 kN / m 2
elem. 03
x
lado 1
nudo 4
(inicial)
nudo 7
Figura 11.4. Fuerza de superficie aplicada sobre una cara del elemento rectangular bilineal nmero
3 de la malla de la Figura 8.8.
11.10.
FRECEC
Crea el vector de fuerzas en los nudos equivalentes a la accin de una fuerza msica constante o fuerza distribuida por unidad de volumen del elemento finito rectangular bilineal de
elasticidad (Figura 8.12).
Del planteamiento del problema de elasticidad mediante el mtodo de los elementos finitos se obtiene el vector de fuerzas equivalentes a la accin de una fuerza msica
T
b ( e ) = [bx b y ] como lo indica la Ecuacin (11.13).
Despus de sustituir la matriz de funciones de forma de un elemento rectangular bilineal
expresada en las Ecuaciones (8.21) y (8.26), e integral la Ecuacin (11.13), el vector de
fuerzas equivalentes es igual a:
143
f b( e )
b x
b
y
b x
( e ) b
tA y
=
4 b x
b y
b x
b y
(11.18)
Argumento
Tipo de variable
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.
TESP
Double (real)
BX
Double (real)
BY
144
Captulo 11
FEL()
F1
F2
F3
F4
F5
F6
F7
F8
(8x1)
C1
0.0000E+00
-9.0000E-01
0.0000E+00
-9.0000E-01
0.0000E+00
-9.0000E-01
0.0000E+00
-9.0000E-01
Captulo 12
Instrucciones para crear matrices de
constantes elsticas
Las instrucciones presentadas a continuacin generan la matriz de constantes elsticas D en
materiales cuya relacin constitutiva es de la forma:
(12.1)
= D
donde y son los vectores de las componentes de esfuerzo y deformacin respectivamente. Estas subrutinas se encuentran en el mdulo MdCE del programa con lo indica la
Tabla 2.10.
12.1. CELAPL
Crea la matriz de constantes elsticas para un material de comportamiento lineal elstico
istropo en condicin plana de esfuerzos y en condicin plana deformaciones.
Para problemas de elasticidad en el plano xy se establece un vector de componentes de
T
esfuerzo de la forma = [ xx yy xy ] y un vector de componentes de deformacin
T
igual a = [ xx yy xy ] , por lo tanto, D corresponde a una matriz cuadrada de orden 3
de acuerdo con la relacin constitutiva indicada en la Ecuacin (12.1).
Para un material lineal elstico istropo con mdulo de elasticidad E y la relacin de
Poisson , la matriz de constantes elsticas corresponde a:
d11
D = d12
d12
d 22
0
0
0
d 33
(12.2)
E
E
E
; d12 =
; d 33 =
2
2
2(1 + )
(1 )
(1 )
(12.3)
146
Captulo 12.
d11 = d 22 =
(1 ) E
E
E
; d12 =
; d 33 =
(1 + )(1 2 )
(1 + )(1 2 )
2(1 + )
(12.4)
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
Double (real)
NU
Double (real)
ETIPO
Optional Integer
(argumento opcional
tipo entero)
Ejemplo 12.1 La matriz de constantes elsticas de un material lineal elstico istropo en condicin plana de esfuerzos con mdulo de Young E = 2 10 6 kN m 2 y
= 0.25 se obtiene de la siguiente expresin:
CELAPL DMT(), 2000000, 0.25
(3x3)
F1
F2
F3
C1
2.1333E+06
5.3333E+05
0.0000E+00
C2
5.3333E+05
2.1333E+06
0.0000E+00
C3
0.0000E+00
0.0000E+00
8.0000E+05
Captulo 13
Instrucciones de cambios de base
Las instrucciones presentadas a continuacin permiten el cambio de base coordenada de
variables fsicas como fuerzas, desplazamientos, esfuerzos y deformaciones. En algunas
rutinas se construye la matriz de transformacin T, tal que el vector de una variable
fsica en la nueva base sea:
(13.1)
= T
siendo el vector de la misma variable en la base original. Despejando de la ecuacin anterior y considerando que las matrices de transformacin son ortonormales, es decir,
T 1 = T T , se tiene que:
(13.2)
= TT
En otros casos la instruccin transforma directamente a la variable fsica. Estas subrutinas se encuentran en el mdulo MdTR del programa como lo indica la Tabla 2.11.
13.1. TRVECO
Crea la matriz de transformacin de un vector definido en el plano. Se utiliza para realizar
cambios de base del vector de fuerza o de desplazamiento en un espacio bidimensional.
T
Sea un vector de la forma v = [v x v y ] , cuyas componentes estn definidas en una base coordenada global xy. Las componentes del vector en la base coordenada local x y ,
T
v = [v x v y ] se obtienen de la siguiente expresin:
v x cos
v = Tv =
v y sin
sin v x
cos v y
(13.3)
donde el ngulo conformado entre el eje x del sistema global de coordenadas y el eje
x del sistema local.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
148
Captulo 13.
Argumento
Tipo de variable
MX()
Double (real)
Descripcin
ANGL
(2x2)
F1
F2
C1
8.6603E-01
-5.0000E-01
C2
5.0000E-01
8.6603E-01
13.2. TRESP2
Crea la matriz de transformacin de las componentes de esfuerzo o deformacin contenidas
en el plano xy.
T
Sea un vector = [ xx yy xy ] que contiene las componentes de esfuerzo definidas en la base original xy. Las componentes de esfuerzo en la base coordenada local x y ,
T
= [ xx yy xy ] se obtienen de la siguiente expresin:
= T
cos 2
xx
=
sin 2
yy
xy sin cos
sin 2
cos 2
sin cos
2 sin cos xx
2 sin cos yy
cos 2 sin 2 xy
(13.4)
donde el ngulo conformado entre el eje x del sistema global de coordenadas y el eje
x del sistema local.
Las componentes de deformacin en la base local
T
= [ xx yy xy ] se calculan de la forma:
= T
(13.5)
149
Argumento
Tipo de variable
MX()
Double (real)
Descripcin
ANGL
(3x3)
F1
F2
F3
C1
7.5000E-01
2.5000E-01
-4.3301E-01
C2
2.5000E-01
7.5000E-01
4.3301E-01
C3
8.6603E-01
-8.6603E-01
5.0000E-01
13.3. TRPRIN
Calcula los esfuerzos (o deformaciones) principales y las respectivas direcciones principales a partir de las componentes de esfuerzo (o de deformaciones) en la base original en un
espacio bidimensional. La instruccin guarda los esfuerzos (o deformaciones) principales
T
en un vector de la forma p = [ p1 p 2 ] , en cambio, el ngulo que forma el eje x (global) con la direccin principal 1 p1 y con la direccin principal 2 p 2 se guardan en otro
T
vector de la forma p = [ p1 p 2 ] .
T
Sea un vector = [ xx yy xy ] que contiene las componentes de esfuerzo definidas en la base original xy, los esfuerzos principales son iguales a:
p2
[
[
1
( xx + yy ) + ( xx + yy )2 + (2 xy )2
2
1
2
2
= ( xx + yy ) ( xx + yy ) + (2 xy )
2
p1 =
]
]
(13.6)
150
Captulo 13.
( xx p1 )
xy
( xx p 2 )
= arctg
xy
p1 = arctg
p2
(13.7)
Argumento
SXY()
MPR()
TPR()
Tipo de variable
Descripcin
Vector de componentes de esfuerzos en la base coorDouble (real)
denada original.
Double (real)
Vector de esfuerzos principales.
Vector de direcciones principales. ngulo en grados
Double (real)
entre el eje x (global) y los ejes principales 1 y 2.
Tabla 13.3. Sintaxis de la instruccin TRPRIN.
Ejemplo 13.3
Dado un estado plano de esfuerzos de componentes
2
xx = 1.7979 kN m , yy = 16.2330 kN m 2 y xy = 2.8895 kN m 2 , guardados
en el vector STE(), los esfuerzos y las direcciones principales se calcula en el programa mediante la siguiente expresin:
TRPRIN STE(), SPE(), TPE()
(2x1)
C1
2.2496E+00
-1.6685E+01
(2x1)
C1
-8.8852E+00
8.1115E+01
151
13.4. TRVMIS
Calcula el esfuerzo de von Misses asociado al criterio de fluencia de la energa de distorsin (Popov 1998), a partir de las componentes de esfuerzo en la base original en un espacio bidimensional.
T
Sea un vector = [ xx yy xy ] que contiene las componentes de esfuerzo definidas en la base original xy. Los esfuerzos principales se obtienen con la Ecuacin (13.6), y
a partir de ellos se calcula el esfuerzo de von Mises:
vm = p21 + p2 2 p1 p 2
(13.8)
Argumento
SXY()
TRVMIS
Tipo de variable
Descripcin
Vector de componentes de esfuerzos en la base coorDouble (real)
denada original.
Double (real)
Esfuerzo de von Mises.
Tabla 13.4. Sintaxis de la funcin TRVMIS.
Ejemplo 13.4
Dado un estado plano de esfuerzos de componentes
xx = 1.7979 kN m 2 , yy = 16.2330 kN m 2 y xy = 2.8895 kN m 2 , guardados
en el vector STE(),en el programa el esfuerzo de von Mises se calcula mediante la
siguiente expresin:
SVM = TRVMIS(STE())
Captulo 14
Instrucciones para numerar los grados de
libertad
Las instrucciones presentadas a continuacin generan matrices o tablas que contienen los
identificadores de los grados de libertad o valores nodales asociados a cada uno de los nudos o cada uno de los elementos de la malla. Estas subrutinas se encuentran en el mdulo
MdNGL del programa como lo indica la Tabla 2.13.
14.1. NGLNUD
Crea la matriz de grados de libertad por nudo a partir de la matriz indicadora de condiciones de borde del problema. La instruccin asigna un identificador numrico a cada uno de
grados de libertad del problema. Inicialmente numera de forma secuencial todos los grados de libertad desconocidos con la informacin dada por la matriz indicadora de condiciones de borde y luego numera todos los grados de libertad conocidos.
Como consecuencia del orden dado a los grados de libertad, el vector de valores nodales del sistema pueda dividirse en dos subvectores: el vector de valores nodales desconocidos y el vector de valores nodales conocidos . Por lo tanto la ecuacin de
equilibrio del sistema:
K = f
(14.1)
K
K
f
= f
(14.2)
(14.3)
154
Captulo 14.
Argumento
MGL()
MRE()
TP
Tipo de variable
Descripcin
Matriz creada que contiene los grados de libertad por
Integer(entero)
nudo (Seccin 3.4).
Matriz existente que contiene las condiciones de borde del problema (Seccin 3.4). Los coeficientes son 0
Integer(entero)
o 1.
Indica el tipo de numeracin de los grados de libertad
conocidos:
Si TP=0 el nmero identificador los grados de
Optional Integer
libertad conocidos es el cero (por defecto).
(argumento opcional
tipo entero)
Si TP=1 los grados de libertad conocidos se numeran despus de numerar todos los grados de libertad desconocidos.
Tabla 14.1. Sintaxis de la instruccin NGLNUD.
(04)
(03)
(09)
(08)
06
03
02
04
(07)
(06)
05
01
(12)
(11)
08
03
01
(17)=0
(18)=0
(16)=0
(05)
04
notacin
09
(02)
(01)
02
(14)
(13)
(15)=0
(10)
07
magnitud de un
g.l. conocido
# grado de
libertad
(11)=2.4
(10)
07
# nudo
malla de
elementos finitos
Figura 14.1. Ejemplo de la instruccin NGLNUD numerando todos los grados de libertad.
Ejemplo 14.1 Dada la malla de 9 nudos y 2 grados de libertad por nudo y la matriz indicadora de las condiciones de borde MRE() obtener la matriz de grados de
libertad por nudo MGL(). Mediante la siguiente instruccin se crea la matriz MGL()
numerando todos lo grados de libertad (desconocidos y conocidos):
NGLNUD MGL(), MRE(), 1
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
155
La malla de elementos finitos, la matriz MRE() y la matriz creada MGL(), se muestran en la Figura 14.1. En cambio, mediante la siguiente instruccin se crea la matriz MGL() numerando solamente los grados de libertad desconocidos:
NGLNUD MGL(), MRE()
La malla de elementos finitos, la matriz MRE() y la matriz creada MGL(), se muestran en la Figura 14.2.
(04)
(03)
(09)
(08)
06
03
02
04
(07)
(06)
05
01
# grado de
libertad
(12)
(11)
(00)=0
(05)
04
07
(00)=0
(10)
# nudo
malla de
elementos finitos
07
magnitud de un
g.l. conocido
(11)=2.4
(10)
08
03
01
(00)=0
(00)=0
notacin
09
(02)
(01)
02
(14)
(13)
Figura 14.2. Ejemplo de la instruccin NGLNUD numerando solamente los grados de libertad
desconocidos.
14.2. NGLELE
Crea la matriz de incidencias o tabla de grados de libertad por elemento a partir de la matriz de grados de libertad por nudo y la matriz de conectividades del problema. La instruccin construye una tabla de identificadores de los grados de libertad de asociados a cada
elemento. La matriz de incidencias es esencial para realizar el proceso de ensamblaje de
matrices y vectores descrito por la instruccin ENSAMK, ENSAMV, ENBAND y ENSAMX, al igual
que la extraccin de vectores con la rutina EXTRAV. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
156
Captulo 14.
Argumento
Tipo de variable
INC()
Integer (entero)
Descripcin
MGL()
ELE()
vm
vk
um
k
(e)
vi
vj
ui
uj
# ui
# vi
# uj
# vj
# uk
# vk
# um
# vm
14.3. NGLBAN
Calcula el ancho de la semi-banda de la matriz de rigidez y el nmero de grados de libertad
del sistema a partir de la matriz de incidencias.
En el proceso de ensamblaje de matrices de rigidez tipo banda realizado con la instruccin ENBAND es necesario conocer el ancho de la semi-banda de la misma.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
157
Argumento
Tipo de variable
INC()
Integer (entero)
BAND
NGLT
Descripcin
Captulo 15
Instrucciones para ensamblar y extraer
matrices
Las instrucciones descritas en este captulo tienen dos objetivos generales. El primero es
construir una matriz o vector del sistema a partir del ensamblaje de matrices o vectores
elementales. El segundo, extrae una matriz o vector elemental conformada por algunos
coeficientes de una matriz o vector del sistema. Estas instrucciones estn incluidas como
subrutinas de los mdulos MdEN y MdEX como lo indica la Tabla 2.14.
15.1. ENSAMK
Suma la contribucin de una matriz elemental a la matriz del sistema de acuerdo con la
numeracin de los valores nodales o grados de libertad del elemento adicionado, en otras
palabras, ensambla una matriz elemental en una matriz del sistema. En mecnica computacional de slidos, las matrices del sistema que comnmente intervienen en el problema
son la matriz de rigidez y la matriz de masas de la estructura.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
Argumento
Tipo de variable
KG()
Double (real)
KG()
Double (real)
KE()
Double (real)
INC()
Integer (entero)
IELE
Descripcin
Como parmetro de entrada corresponde a la matriz
del sistema antes de ensamblar la matriz elemental
KE().
Como parmetro de salida corresponde a la matriz del
sistema despus de ensamblar la matriz elemental
KE().
Matriz elemental existente que se desea ensamblar.
Ejemplo 15.1 Dada la matriz rigidez del elemento finito nmero 1 como:
160
(8x8)
F1
F2
F3
F4
F5
F6
F7
F8
C1
5.2444E+04
2.0000E+04
-1.6444E+04
-4.0000E+03
-2.6222E+04
-2.0000E+04
-9.7778E+03
4.0000E+03
C2
2.0000E+04
7.4667E+04
4.0000E+03
2.1333E+04
-2.0000E+04
-3.7333E+04
-4.0000E+03
-5.8667E+04
F1
F2
F3
F4
F5
F6
F7
F8
C7
-9.7778E+03
-4.0000E+03
-2.6222E+04
2.0000E+04
-1.6444E+04
4.0000E+03
5.2444E+04
-2.0000E+04
C8
4.0000E+03
-5.8667E+04
2.0000E+04
-3.7333E+04
-4.0000E+03
2.1333E+04
-2.0000E+04
7.4667E+04
C3
-1.6444E+04
4.0000E+03
5.2444E+04
-2.0000E+04
-9.7778E+03
-4.0000E+03
-2.6222E+04
2.0000E+04
C4
-4.0000E+03
2.1333E+04
-2.0000E+04
7.4667E+04
4.0000E+03
-5.8667E+04
2.0000E+04
-3.7333E+04
C5
-2.6222E+04
-2.0000E+04
-9.7778E+03
4.0000E+03
5.2444E+04
2.0000E+04
-1.6444E+04
-4.0000E+03
C6
-2.0000E+04
-3.7333E+04
-4.0000E+03
-5.8667E+04
2.0000E+04
7.4667E+04
4.0000E+03
2.1333E+04
(4x8)
C1
000
000
004
006
C2
000
001
005
007
C3
004
006
010
012
C4
005
007
011
013
C5
006
008
012
014
C6
007
009
013
015
C7
000
002
006
008
C8
001
003
007
009
Ensamblar la matriz de rigidez del elemento 1 en la matriz de rigidez de la estructura mediante la siguiente instruccin:
ENSAMK KGL(), KEL(), INC(), 1
Suponiendo que todos los coeficientes de la matriz KGL() son iguales a cero antes
de ejecutar la instruccin, se tiene como resultado que:
KGL()
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
(15x15)
C1
7.4667E+04
0.0000E+00
0.0000E+00
2.0000E+04
-3.7333E+04
-4.0000E+03
2.1333E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C2
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C3
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C4
2.0000E+04
0.0000E+00
0.0000E+00
5.2444E+04
-2.0000E+04
-9.7778E+03
-4.0000E+03
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C5
-3.7333E+04
0.0000E+00
0.0000E+00
-2.0000E+04
7.4667E+04
4.0000E+03
-5.8667E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C6
-4.0000E+03
0.0000E+00
0.0000E+00
-9.7778E+03
4.0000E+03
5.2444E+04
2.0000E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
161
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
C7
2.1333E+04
0.0000E+00
0.0000E+00
-4.0000E+03
-5.8667E+04
2.0000E+04
7.4667E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C8
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C9
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C10
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C11
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C12
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
C13
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C14
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
C15
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
15.2. ENSAMV
Suma la contribucin de un vector elemental al vector del sistema de acuerdo con la numeracin de los valores nodales o grados de libertad del elemento adicionado, en otras palabras, ensambla un vector elemental en el vector del sistema. La sintaxis de la instruccin
y la descripcin de sus respectivos argumentos se presentan en la Tabla 15.2.
Ejemplo 15.2
como:
VEL()
F1
F2
F3
F4
F5
F6
(8x1)
C1
5.6250E+00
3.7500E+00
5.6250E+00
3.7500E+00
5.6250E+00
3.7500E+00
162
5.6250E+00
3.7500E+00
(4x8)
C1
000
000
004
006
F1
F2
F3
F4
C2
000
001
005
007
C3
004
006
010
012
C4
005
007
011
013
C5
006
008
012
014
C6
007
009
013
015
C7
000
002
006
008
C8
001
003
007
009
ensamblar el vector de fuerzas del elemento 1 en el vector de fuerzas de la estructura mediante la siguiente instruccin: ENSAMV VGL(), VEL(), INC(), 1
Suponiendo que todos los coeficientes del vector VGL() son iguales a cero antes de
ejecutar la instruccin, se tiene como resultado que:
VGL()
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
(15x1)
C1
3.7500E+00
0.0000E+00
0.0000E+00
5.6250E+00
3.7500E+00
5.6250E+00
3.7500E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
Argumento
Tipo de variable
VG()
Double (real)
VG()
Double (real)
VE()
Double (real)
INC()
Integer (entero)
IELE
Descripcin
Como parmetro de entrada corresponde al vector del
sistema antes de ensamblar el vector elemental VE().
Como parmetro de salida corresponde al vector del
sistema despus de ensamblar al vector elemental
VE().
Vector elemental existente que se desea ensamblar.
163
15.3. ENBAND
Suma la contribucin de una matriz elemental simtrica a la matriz del sistema en formato
de matriz banda de acuerdo con la numeracin de los valores nodales o grados de libertad
del elemento ensamblado. En mecnica computacional de slidos, las matrices del sistema
que comnmente intervienen en el problema son la matriz de rigidez y la matriz de masas
de la estructura. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
ENBAND KBA(), KE(), INC(), IELE
Argumento
KBA()
KBA()
KE()
INC()
IELE
Tipo de variable
Descripcin
Como parmetro de entrada corresponde a la matriz banda
Double (real)
del sistema antes de ensamblar la matriz elemental KE().
Como parmetro de salida corresponde a la matriz banda
del sistema despus de ensamblar la matriz elemental
Double (real)
KE().
Matriz elemental simtrica existente que se desea ensamDouble (real)
blar.
Matriz de incidencias (Seccin 3.4).
Integer (entero)
Nmero del elemento finito cuya matriz se desea ensamInteger (entero)
blar.
Tabla 15.3. Sintaxis de la instruccin ENBAND.
La instruccin requiere la existencia de la matriz banda KBA(), cuyo nmero de filas corresponde con el nmero de grados de libertad del sistema y el nmero de columnas con el
ancho de la semi banda. Por esta razn se recomienda utilizar la instruccin NGLBAN para
determinar el ancho de la semi banda a partir de la matriz de incidencias y la instruccin
MTCONS para construir una matriz llena de un valor constante.
15.4. ENSAMX
Suma un coeficiente especificado de una matriz elemental a los coeficientes de un vector
del sistema de acuerdo con la numeracin de los valores nodales o grados de libertad del
elemento. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se
presentan en la Tabla 15.4.
Ejemplo 15.3 Dada la matriz rigidez del elemento finito nmero 1 como:
KEL()
F1
F2
F3
F4
F5
F6
F7
(8x8)
C1
5.2444E+04
2.0000E+04
-1.6444E+04
-4.0000E+03
-2.6222E+04
-2.0000E+04
-9.7778E+03
C2
2.0000E+04
7.4667E+04
4.0000E+03
2.1333E+04
-2.0000E+04
-3.7333E+04
-4.0000E+03
C3
-1.6444E+04
4.0000E+03
5.2444E+04
-2.0000E+04
-9.7778E+03
-4.0000E+03
-2.6222E+04
C4
-4.0000E+03
2.1333E+04
-2.0000E+04
7.4667E+04
4.0000E+03
-5.8667E+04
2.0000E+04
C5
-2.6222E+04
-2.0000E+04
-9.7778E+03
4.0000E+03
5.2444E+04
2.0000E+04
-1.6444E+04
C6
-2.0000E+04
-3.7333E+04
-4.0000E+03
-5.8667E+04
2.0000E+04
7.4667E+04
4.0000E+03
164
4.0000E+03
-5.8667E+04
F1
F2
F3
F4
F5
F6
F7
F8
C7
-9.7778E+03
-4.0000E+03
-2.6222E+04
2.0000E+04
-1.6444E+04
4.0000E+03
5.2444E+04
-2.0000E+04
C8
4.0000E+03
-5.8667E+04
2.0000E+04
-3.7333E+04
-4.0000E+03
2.1333E+04
-2.0000E+04
7.4667E+04
2.0000E+04
-3.7333E+04
-4.0000E+03
2.1333E+04
(4x8)
C1
000
000
004
006
C2
000
001
005
007
C3
004
006
010
012
C4
005
007
011
013
C5
006
008
012
014
C6
007
009
013
015
C7
000
002
006
008
C8
001
003
007
009
Suponiendo que todos los coeficientes de VGL() son iguales a cero antes de ejecutar
la instruccin, se tiene como resultado que:
VGL()
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
(15x1)
C1
2.0000E+04
0.0000E+00
0.0000E+00
2.0000E+04
2.0000E+04
2.0000E+04
2.0000E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
165
Argumento
Tipo de variable
VG()
Double (real)
VG()
Double (real)
KE()
Double (real)
IFIL
Integer (entero)
ICOL
INC()
IELE
Descripcin
Como parmetro de entrada corresponde al vector del
sistema antes de ensamblar el trmino de la matriz
elemental KE().
Como parmetro de salida corresponde a la matriz del
sistema despus de ensamblar la matriz elemental
KE().
Matriz elemental existente.
15.5. EXTRAV
Extrae un vector elemental conformado por los coeficientes de un vector del sistema definidos de acuerdo con la numeracin de los valores nodales o grados de libertad del elemento. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
EXTRAV VG(), VE(), INC(), IELE, NGLE
Argumento
Tipo de variable
Descripcin
VG()
Double (real)
VE()
Double (real)
INC()
Integer (entero)
IELE
NGLE
166
(26x1)
C1
3.3141E-05
-1.6683E-05
5.3922E-05
-2.7864E-05
7.0790E-05
-3.4794E-05
8.6501E-05
-3.7790E-05
1.0246E-04
-3.8817E-05
1.1949E-04
-3.8941E-05
9.7604E-06
-6.7274E-05
3.5833E-05
-6.5668E-05
5.5388E-05
-6.6101E-05
7.1419E-05
-6.7600E-05
8.6328E-05
-6.8235E-05
1.0171E-04
-6.8530E-05
1.1872E-04
-6.8421E-05
(6x8)
C1
000
001
003
005
007
009
C2
000
002
004
006
008
010
C3
013
015
017
019
021
023
C4
014
016
018
020
022
024
C5
015
017
019
021
023
025
C6
016
018
020
022
024
026
C7
001
003
005
007
009
011
C8
002
004
006
008
010
012
DEL() #1
F1
F2
F3
F4
F5
F6
F7
F8
(8x1)
C1
0.0000E+00
0.0000E+00
9.7604E-06
-6.7274E-05
3.5833E-05
-6.5668E-05
3.3141E-05
-1.6683E-05
En el vector DEL() los coeficientes de las filas 1 y 2 son iguales a cero porque los
dos primeros grados de libertad indicados en la matriz de incidencias INC() estn
numerados como cero.
Ejemplo 15.5 Dada el vector de desplazamientos de la estructura y la matriz de
incidencias del ejemplo anterior, se ejecuta la siguiente instruccin:
EXTRAV DGT(), DEL(), INC(), 3, 6
y se obtiene un vector DEL() de 6 filas que contiene los coeficientes del vector
DGT() en las filas 3,4,17,18,19 y 20, indicadas en las 6 primeras columnas de la fila
3 de la matriz de incidencias:
DEL() #3
F1
F2
F3
F4
F5
F6
(6x1)
C1
5.3922E-05
-2.7864E-05
5.5388E-05
-6.6101E-05
7.1419E-05
-6.7600E-05
167
Captulo 16
Instrucciones de organizacin de matrices
Este captulo describe las instrucciones dedicadas a ordenar los coeficientes de una matriz
de acuerdo con la numeracin de los grados de libertad, de los nudos o de los elementos del
problema.
Estas subrutinas tienen el prefijo OR y estn contenidas en el mdulo MdOR para facilitar
su ubicacin en el cdigo como lo indica la Tabla 2.15.
16.1. ORFUGL
Crea el vector de valores nodales de la estructura ordenado de acuerdo con la numeracin
de los grados de libertad a partir de la tabla de valores nodales ordenada por nudo.
Una tabla o matriz ordenada por nudos significa que cada fila contiene los valores nodales de los grados de libertad de un nudo especfico, por tanto, su tamao ser el nmero
nudos por el nmero de grados de libertad por nudo.
La importancia de la presentacin de los valores nodales de la estructura de dos formas
distintas esta motivado por las siguientes razones. Por un lado, en el sistema de ecuaciones
simultneas planteado para calcular los valores nodales de la forma K nglngl u ngl1 = f ngl1 ,
cada ecuacin esta asociada a un grado de libertad, por lo tanto el vector de trminos independientes y el vector solucin estn ordenados de acuerdo con la numeracin de los grados
de libertad. Por otra parte, es ms adecuado presentar los resultados nodales en una tabla
que indique en cada fila el valor nodal en los grados de libertad asociados a un nudo.
La Figura 16.1 muestra como ejemplo una malla de 8 nudos y 5 elementos de un problema de elasticidad bidimensional en el cual cada nudo tiene dos grados de libertad que
corresponden a los desplazamientos en x y en y. All se indica la tabla de valores ordenados por nudos de 8 por 2, como tambin el vector de valores nodales ordenados de acuerdo
con la numeracin de los grados de libertad de 16 por 1.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
170
Captulo 16.
Argumento
Tipo de variable
Descripcin
Vector creado de valores nodales ordenado de acuerdo con la numeracin de los grados de libertad. El
nmero de filas de este vector es igual al nmero de
nmero de nudos multiplicado por el nmero de graDouble (real)
dos de libertad por nudo, es decir, el producto entre el
nmero de filas y el nmero de columnas de la matriz
VFU().
Matriz o tabla existente de valores nodales ordenada
por nudos, donde cada fila contiene el valor nodal de
los grados de libertad de un nudo especfico (en elasDouble (real)
ticidad bidimensional, corresponde a la magnitud de
las fuerzas o desplazamientos FX, FY o UX, UY de
un nudo).
Matriz de numeracin de los grados de libertad por
Integer (entero)
nudo (Seccin 3.4).
Tabla 16.1. Sintaxis de la instruccin ORFUGL.
VGL()
VFU()
MGL()
12
14
11
16
13
206
15
207
# nudo
208
105
102
10
7
204
104
205
101
2
1
201
103
4
3
202
6
5
203
Notacin
v
# grado de libertad
u
# nudo
# elemento
201
202
203
204
205
10
206
11
12
207
13
14
208
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Figura 16.1. Ordenamiento de los valores nodales para un problema de elasticidad bidimensional.
171
nudo
fuerza nodal
en x
en y
02
F(13)
F(12)
08
F(00)
F(00)
01
F(03)=4.8
F(02)=1.5
03
F(15)
F(14)
09
F(05)
F(04)
04
F(11)=2.4
F(10)=2.3
07
F(19)
F(18)
11
F(07)
F(06)
05
grado de
libertad
fuerza
nodal
10
notacin
# grado de
libertad
F(21)
F(20)
F(11)=2.4
F(10)=2.3
12
F(09)
F(08)
06
magnitud de
la fuerza
07
# nudo
malla de
elementos finitos
Vector de fuerzas
ordenadas segn la
numeracin de los
grados de libertad
(creado)
172
Captulo 16.
16.2. ORGLFU
Crea la tabla de valores nodales ordenada por nudo a partir del vector de valores nodales de
la estructura ordenado de acuerdo con la numeracin de los grados de libertad, como se
muestra en la Figura 16.1.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
ORGLFU VFU(), FGL(), MGL()
Argumento
VFU()
VGL()
MGL()
Tipo de variable
Descripcin
Matriz o tabla creada de valores nodales ordenada por
nudos, donde cada fila contiene el valor nodal de los
grados de libertad de un nudo especfico (en elasticidad bidimensional, corresponde a la magnitud de las
Double (real)
fuerzas o desplazamientos FX, FY o UX, UY de un
nudo). El tamao de esta matriz es de nmero de
nudos por nmero de grados de libertad por nudo, lo
cual corresponde al tamao de la matriz MGLN().
Vector existente de valores nodales ordenado de
Double (real)
acuerdo con la numeracin de los grados de libertad.
Matriz de numeracin de los grados de libertad por
Integer (entero)
nudo (Seccin 3.4).
Tabla 16.2. Sintaxis de la instruccin ORGLFU.
La instruccin genera un error si el nmero de filas del vector VGL() es menor que el
mximo coeficiente de la matriz de grados de libertad por nudo MGL(), lo cual indicara la
inexistencia del valor nodal correspondiente a ese grado de libertad.
Si un coeficiente de la matriz de grados de libertad por nudo MGL() es igual a cero, se
desconoce la posicin del coeficiente correspondiente del vector VGL() en la matriz VFU(), y
por lo tanto no se considera tal trmino.
Ejemplo 16.2 Dado el vector de fuerzas nodales ordenadas de acuerdo con la numeracin de los grados de libertad FGL() y la matriz de la numeracin de los grados de libertad por cada nudo MGL() indicadas en la Figura 16.3, se obtiene la matriz de fuerzas nodales ordenada de acuerdo con la numeracin de los nudos FFU()
mediante la siguiente lnea de comando:
ORGLFU FFU(), FGL(), MGL()
173
grado de fuerza
libertad
nodal
nudo
fuerza nodal
en x
en y
mximo
coeficiente
de MGL()
02
Vector de fuerzas
ordenado segn la
numeracin de los
grados de libertad
(existente)
F(13)
F(12)
08
F(00)
F(00)
01
F(03)=4.8
F(02)=1.5
03
F(15)
F(14)
09
F(05)
F(04)
04
F(11)=2.4
F(10)=2.3
07
F(19)
F(18)
11
F(07)
F(06)
05
F(17)=1.2
F(16)=-1.6
10
F(21)
F(20)
06
magnitud de
la fuerza
F(11)=2.4
F(10)=2.3
12
F(09)
F(08)
notacin
# grado de
libertad
07
# nudo
malla de
elementos finitos
16.3. ORSONO
Crea un vector de resultados nodales a partir de una matriz de resultados elementales calculados en los nudos de cada elemento. Cada coeficiente del vector de resultados nodales es
igual al promedio entre los valores calculados en el interior de los elementos que comparten
un mismo nudo.
Los resultados elementales son aquellos que han sido obtenidos en puntos especficos
del dominio de un elemento finito, a partir de las derivadas de las funciones de forma del
mismo. En los problemas de elasticidad, por ejemplo, el campo de las deformaciones se
calcula en un punto (x,y) en el interior del elemento e de la forma (( ex), y ) = B (( ex), y )u ( e ) donde
B (( ex), y ) = N (( ex), y ) es a la matriz de operadores diferenciales actuando sobre funciones de forma evaluada en el punto (x,y) del elemento e, y u (e ) corresponde el vector de desplazamiento del elemento e.
La cantidad presentada de forma elemental no muestra continuidad entre los elementos
a pesar de ser continua en el interior de cada uno.
174
Captulo 16.
La matriz de resultados elementales contiene en cada fila los valores calculados en lugares especiales del interior de un elemento, tales como los nudos, el centro o los puntos de
Gauss. Por lo tanto, en dicha matriz el nmero de filas es igual al nmero de elementos y
el nmero de columnas corresponde al nmero de puntos donde se evale la cantidad de
inters. Por ejemplo, la Figura 16.4 muestra una matriz de resultados elementales que contiene la deformacin lineal en y evaluada en los nudos de cada elemento rectangular bilineal.
elem.
(e )
x=
x
(e )
x=
x
nudo i
nudo j
nudo k
nudo l
(e )
x= x i
(e )
x=
x
(e )
x=
x
(e )
x=
x
(e )
x=
x
(e )
x= x j
(xe) ( e ) = B (xe) ( e ) u ( e )
(xe)( e ) = xx( e )
( e)
yy
yy( e ) xy( e ) ]x
T
(e)
( e)
x= x n
Figura 16.4. Matriz de resultados elementales: deformacin lineal en y evaluada en los nudos
de cada elemento rectangular bilineal.
Los resultados nodales corresponden a valores en los nudos de la malla que son interpolados en el interior de los elementos describiendo una funcin continua para toda la malla
(cuando la estructura modelada tiene un solo material). Por lo tanto, el nmero de filas del
vector de resultados nodales corresponde al nmero de nudos de la malla.
La ausencia de continuidad en los campos derivados de la funcin de aproximacin entre los elementos finitos, motiva el desarrollo de tcnicas de suavizado de funciones en la
malla de elementos finitos. Una de las formas ms sencillas consiste en utilizar el valor
promedio en cada nudo del valor calculado en los elementos finitos asociados a l. Por
ejemplo, la Figura 16.5 muestra una matriz de resultados nodales que contiene una componente de deformacin promedio en cada nudo.
nudo
3
( 3)
x=
x
(1)
x= x r
( 6)
x=
x
r =
valor
( 9)
x= x r
1
ne
ne
(e )
(e )
x=x r
( e ) x r
1 (1)
x = x r + x(9=)x r + x(3=)x r + x(6=)x r
4
Figura 16.5. Matriz de resultados nodales: deformacin promedio en cada nudo de una malla de
un solo material.
r =
175
Argumento
MX()
MDT()
ELE()
NNUD
elemento
Tipo de variable
Descripcin
Vector creado que contiene los valores promedio en
Double (real)
los nudos (resultado nodal).
Matriz existente que contiene los valores en los nudos
de cada elemento (resultado elemental). Cada fila
Double (real)
contiene los valores en los nudos calculados con las
derivadas de las funciones de forma de los elementos.
Matriz de nudos asociados a cada elemento o matriz
Integer (entero)
de conectividades (Seccin 3.4).
Nmero de nudos del problema.
Integer (entero)
Tabla 16.3. Sintaxis de la instruccin ORSONO.
nudo i
nudo j
nudo k
matriz de conectividades
elemento
nudo i
nudo j
nudo k
nudo
calcular
promedio
esfuerzo
promedio
vector de esfuerzos
promedio en los nudos
(resultado nodal)
xx
promedio en el
Ejemplo 16.3 Construir el vector de esfuerzos promedio en los nudos NXX() a partir de la matriz o tabla de esfuerzos en los nudos de cada elemento SXX() y de la
matriz de conectividades ELE(). La lnea de comando utilizada es:
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
176
Captulo 16.
La Figura 4.2 describe la obtencin del esfuerzo promedio en el nudo 86 a partir de los
elementos 1, 2, 22, 23, 24 y 27, los cuales comparten dicho nudo.
16.4. ORSONM
Crea una matriz de resultados nodales por material a partir de una matriz de resultados elementales calculados en los nudos de cada elemento. Cada columna de la matriz de resultados nodales contiene el promedio entre los valores calculados en el interior de los elementos asociados a un mismo nudo para un material especfico.
Los resultados nodales por material corresponden a valores en los nudos de la malla que
son interpolados en el interior de los elementos describiendo una funcin continua para
cada grupo de elementos finitos del mismo material. Por lo tanto, el nmero de filas de la
matriz de resultados nodales corresponde al nmero de nudos de la malla y el nmero de
columnas es el nmero de materiales del problema. Por ejemplo, la Figura 16.7 muestra
una matriz de resultados nodales por material que contiene una componente de deformacin
promedio en cada nudo para los materiales 1 y 2.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
ORSONM MX(), MDT(), ELE(), MAT(), NNUD, NMAT
Argumento
Tipo de variable
Descripcin
Matriz creada que contiene los valores promedio entre
los nudos (resultado nodal) de un mismo material.
Cada columna contiene los resultados nodales para un
material especfico.
Matriz existente que contiene los valores en los nudos
de cada elemento (resultado elemental). Cada fila
contiene los valores en los nudos calculados con las
derivadas de las funciones de forma de los elementos.
Matriz de nudos asociados a cada elemento o matriz
de conectividades (Seccin 3.4).
Vector de tipo de material por elemento. Cada fila
contiene un cdigo que indica el tipo de material
asociado a cada elemento.
Nmero de nudos del problema.
MX()
Double (real)
MDT()
Double (real)
ELE()
Integer (entero)
MAT()
Integer (entero)
NNUD
Integer (entero)
NMAT
Integer (entero)
Nmero de materiales del problema.
Tabla 16.4. Sintaxis de la instruccin ORSONM.
177
material 1
material 2
nudo
deformacin
mat. 2
mat. 1
rm =1
r
( 3)
xx=
=x
(1)
xx=
=xr
( 6)
xx=
=x
rm = 2
( 9)
xx=
=xr
1 ne ( e )
x=x r ( e) x r (e ) ( m)
ne ( e )
1
rm =1 = x(1=)x r + x(3=)x r
2
rm =
) (
1 ( 6)
x = x r + x(9=)x r
2
Figura 16.7. Matriz de resultados nodales: deformacin promedio en cada nudo de una malla de
varios materiales.
rm =1 =
Ejemplo 16.4 Construir la matriz de esfuerzos nodales por material TAS() a partir
de la matriz o tabla de esfuerzos en los elementos TAO(), la matriz de conectividades ELE() y la matriz de materiales MAT(). La lnea de comando utilizada es la siguiente:
ORSONM TAS(), TAO(), ELE(), MAT(), NNUD, NMAT
La Figura 16.8 describe la obtencin del esfuerzo promedio en el nudo 313 para el
material tipo 1. Tal valor es calculado a partir de los esfuerzos en los elementos
653 y 661, los cuales estn conectados al nudo 313 y asociados al material 1.
178
Captulo 16.
elemento
nudo i
nudo j
nudo k
elemento
material
material 1
653
661
313
5
16
39
material 2
matriz de conectividades
elemento
nudo i
nudo j
esfuerzo promedio
nudo k
nudo
calcular
promedio
material 1
material 2
vector de esfuerzos
promedio en los nudos
(resultado nodal)
Figura 16.8. Ejemplo de la instruccin ORSONM. Esfuerzo en el nudo 313 (resultado nodal)
para el material 1, calculado como el promedio de los esfuerzos en los elementos asociados al
material 1 que comparten el nudo 313.
16.5. ORNUDE
Crea una matriz o tabla que contiene en cada fila los elementos asociados a cada nudo. La
sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan en la
Tabla 16.5.
Ejemplo 16.5 Crear la matriz de elementos asociados a cada nudo NLE() a partir
de la matriz de nudos asociados a cada elemento o matriz de conectividades de la
malla presentada en la Figura 16.9 . La lnea de comando necesaria es la siguiente:
179
Argumento
Tipo de variable
Descripcin
MX()
Integer (entero)
ELE()
Integer (entero)
NNUD
Integer (entero)
Optional Integer
Cantidad mxima de elementos asociados a un mismo
(argumento opcional
nudo. Su valor por defecto es NMAE =10
tipo entero)
Tabla 16.5. Sintaxis de la instruccin ORNUDE.
NMAE
elemento
nudo i
nudo j
nudo k
nudo l
03
02
04
01
01
06
05
02
12
09
11
08
03
04
05
07
10
elementos
180
Captulo 16.
16.6. ORNLIN
Construye una listado de los nudos que hacen parte de un segmento recto entre dos nudos
extremos definidos en la tabla de coordenadas. Tambin crea otra lista con la distancia
entre el nudo inicial y cada uno de los nudos que componen la lnea.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
en la Tabla 16.6.
Ejemplo 16.6 Dada la matriz de coordenadas XYZ(), crear el listado de los nudos
que hacen parte del segmento de lnea definido entre los nudos 25 y 17. Adems,
crear la lista de distancias entre el nudo inicial 25 y cada uno de los nudos que
componen la lnea. La Figura 16.10 describe este ejemplo. La lnea de comando
utilizada es la siguiente:
ORNLIN LNU(), DNU(), XYZ(), 25, 17
nudo
final
nudo
final
lnea
lista de nudos
de la lnea
nudo
inicial
matriz de coordenadas
en los nudos
nudo
inicial
181
Argumento
Tipo de variable
MX()
Integer (entero)
DX()
Double (real)
XYZ()
Double (real)
NINI
Integer (entero)
NFIN
TOL
Descripcin
Vector creado que contiene el listado de nudos que
hacen parte de la lnea.
Vector creado que contiene el listado de distancias
entre el nudo inicial y cada uno de los nudos de la
lnea.
Matriz existente de coordenadas de los nudos (Seccin 3.4).
Nmero del nudo inicial de la lnea
16.7. ORNLIX
Construye una listado de los nudos que hacen parte de un segmento recto definido entre dos
puntos cuya posicin puede o no coincidir con los nudos de la malla. Tambin crea otra
lista con la distancia entre el punto inicial y cada uno de los nudos que componen la lnea.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
ORNLIX MX(), DX(), XYZ(), XLN(), TOL
Argumento
Tipo de variable
MX()
Integer (entero)
DX()
Double (real)
XYZ()
Double (real)
XLN()
Double (real)
TOL
Descripcin
Vector creado que contiene el listado de nudos que
hacen parte de la lnea.
Vector creado que contiene el listado de distancias
entre el nudo inicial y cada uno de los nudos de la
lnea.
Matriz existente de coordenadas de los nudos de la
malla (Seccin 3.4).
Matriz existente de coordenadas de los extremos del
segmento de lnea. La primera fila contiene las coordenadas x y y del punto inicial y la segunda fila las
coordenadas correspondientes del punto final.
Optional Double
Tolerancia medida como un factor de la longitud del
(argumento opcional
segmento de lnea. Por defecto TOL=0.00.
tipo real)
Tabla 16.7. Sintaxis de la instruccin ORNLIX.
Ejemplo 16.7 Dada la matriz de coordenadas XYZ(), crear el listado de los nudos
que hacen parte del segmento de lnea definido entre las coordenadas (0.00, 0.50) y
(0.00, 4.00). Adems, crear la lista de distancias entre el punto de coordenadas
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
182
Captulo 16.
(0.00,0.50) y cada uno de los nudos que componen la lnea. La siguiente figura
describe este ejemplo.
punto final
(0.00,4.00)
lnea
lista de nudos
de la lnea
matriz de coordenadas en los
nudos de la malla
punto inicial
(0.00,0.50)
16.8. ORELIN
Construye una listado de los elementos cuyos lados hacen parte de un segmento definido
por dos nudos. Tambin crea otra lista con la distancia entre el nudo inicial y cada uno de
los nudos que componen la lnea.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
Argumento
Tipo de variable
MX()
Integer (entero)
DNU()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
NINI
Integer (entero)
NFIN
Integer (entero)
Optional Double
(argumento opcional
tipo real)
TOL
TP
Descripcin
Matriz creada que contiene en la primera columna el
listado de los elementos que hacen parte de la lnea.
El contenido de la segunda columna depende del
parmetro TP.
Vector de distancias desde el nudo inicial del segmento hasta el nudo especificado en la segunda columna
de MX()
Matriz existente de coordenadas de los nudos (Seccin 3.4).
Matriz existente de nudos asociados a cada elemento
o matriz de conectividades (Seccin 3.4).
Nmero del nudo inicial de la lnea
Optional Integer
(argumento opcional
tipo entero)
Ejemplo 16.8 Dada la matriz de coordenadas XYZ(), crear el listado de los elementos y los nudos que hacen parte del segmento de lnea definido entre los nudos
25 y 17. Adems, crear la lista de distancias entre el nudo inicial 25 y cada uno de
los nudos que componen la lnea. La Figura 16.12 describe este ejemplo. La lnea
de comando utilizada es la siguiente:
ORELIN LEL(), DNU(), XYZ(), ELE(), 25, 17, 0, 1
183
184
Captulo 16.
nudo
coord. x
coord. y
elemento
nudo i
nudo j
nudo k
nudo
final
matriz de conectividades
nudo
final
nudo
inicial
matriz de coordenadas
en los nudos
elemento
nudo
distancia
lnea
lista de nudos
de la lnea
lista de distancias
entre el nudo inicial y
cada nudo de la lnea
nudo
inicial
16.9. ORELIX
Construye una listado de los elementos cuyos lados hacen parte de segmento recto definido
entre dos puntos cuya posicin puede o no coincidir con los nudos de la malla.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
en la Tabla 16.9.
Ejemplo 16.9 Dada la matriz de coordenadas XYZ(), crear el listado de los lados
de los elementos que hacen parte del segmento de lnea definido las coordenadas
(0.00,0.50) y (0.00,4.0), como lo describe la siguiente figura:
185
nudo
coord. x
coord. y
elemento
nudo j
nudo i
nudo k
matriz de conectividades
punto final
(0.00,4.00)
matriz de coordenadas
en los nudos
nudo k
lado 3
lado
lado 2
elemento
lado 1
indicador del
nudo inicial i
nudo j
lnea
lista de nudos
de la lnea
punto inicial
(0.00,0.50)
186
Captulo 16.
Argumento
Tipo de variable
MX()
Integer (entero)
XYZ()
Double (real)
ELE()
Integer (entero)
XLN()
Double (real)
TOL
16.10.
Descripcin
Matriz creada que contiene el listado de los elementos
y su lado respectivo que hacen parte de un segmento
de lnea. La primera columna contiene el nmero del
elemento y la segunda indica el nmero del lado.
Matriz existente de coordenadas de los nudos (Seccin 3.4).
Matriz existente de nudos asociados a cada elemento
o matriz de conectividades (Seccin 3.4).
Matriz existente de coordenadas de los extremos del
segmento de lnea. La primera fila contiene las coordenadas x y y del punto inicial y la segunda fila las
coordenadas correspondientes del punto final.
Optional Double
Tolerancia medida como un factor de la longitud del
(argumento opcional
segmento de lnea. Por defecto TOL=0.00.
tipo real)
Tabla 16.9. Sintaxis de la instruccin ORELIX.
ORXYNU
Extrae de la matriz de coordenadas o de cualquier matriz de resultados nodales, los respectivos valores para los nudos relacionados en un vector o lista predefinida. Crea una matriz
o tabla donde el nmero de filas corresponde con el nmero de filas de la lista de nudos y el
nmero de columnas coincide con el nmero de columnas de la matriz de coordenadas o de
valores nodales.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
ORXYNU MX(), XYZ(), LNU()
Argumento
MX()
XYZ()
LNU()
Tipo de variable
Descripcin
Matriz creada que contiene las coordenadas o los
resultados nodales en los nudos que hacen parte de la
Double (real)
lista LNU()
Matriz existente de coordenadas de los nudos o de
Double (real)
valores nodales (Seccin 3.4).
Integer (entero)
Vector existente que contiene una lista de nudos.
Tabla 16.10. Sintaxis de la instruccin ORXYNU.
Ejemplo 16.10 Extraer los valores nodales de esfuerzo de la tabla NXX() para los
nudos de la lista LNU() , y guardarlos en la tabla NAB().
187
nudo
valor nodal
nudo
valor nodal
lista de nudos
matriz de resultados
nodales en los nudos
relacionados en la lista
de nudos
matriz de resultados
nodales
Captulo 17
Instrucciones para importar y exportar
matrices
Este captulo describe las instrucciones que permiten importar y exportar matrices a un archivo plano cuyo formato es el siguiente:
La primera lnea indica el nmero de filas y el nmero de columnas de la matriz almacenada separados por coma.
La segunda lnea contiene los coeficientes de la fila nmero 1 de la matriz almacenada separados entre s por comas.
Las lneas siguientes contienen los coeficientes de las filas sucesivas de la matriz.
La Figura 17.1(b) presenta, en el Bloc de notas, el archivo plano que contiene los coeficientes de la matriz incluida en la hoja de clculo de Microsoft Excel y mostrada en la
Figura 17.1(a). La Tabla 2.16 resume el objetivo de las instrucciones de este captulo.
190
Captulo 17.
nombre del
archivo
nmero de columnas
columna #1
nmero de filas,
nmero de columnas
columna #1
columna #2
columna #2
nmero
de filas
fila #1
nombre de
la matriz
fila #1
fila #23
(b) Archivo plano visualizado desde el Bloc de
notas de Microsoft Windows
fila #23
Figura 17.1. Instrucciones para importar y exportar matrices: (a) hoja de clculo visualizada
desde Microsoft Excel, (b)archivo plano visualizado desde el Bloc de notas.
17.1. IOEXPR
Esta instruccin permite exportar una matriz real existente a un archivo plano en el formato
indicado en la Figura 17.1(b).
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
Argumento
Tipo de variable
MX()
Double (real)
FILE
Descripcin
191
17.2. IOEXPI
Esta instruccin permite exportar una matriz entera existente a un archivo plano en el formato indicado en la Figura 17.1(b). La sintaxis de la instruccin y la descripcin de sus
respectivos argumentos se presentan a continuacin.
IOEXPI MX(), FILE
FILE
Integer (entera)
Ejemplo 17.2 Dada la matriz de conectividades de los elementos ELE(), la instruccin indicada a continuacin construye el archivo ELE.txt que contiene los coeficientes de la matriz existente.
IOEXPI ELE(),"ELE"
192
Captulo 17.
17.3. IOEXPD
Esta instruccin permite exportar un vector existente de datos enteros a un archivo plano en
el siguiente formato:
La primera lnea contiene el primer coeficiente del vector y sucesivamente se almacena un coeficiente por lnea.
Los coeficientes son cantidades enteras las cuales se escriben sin un formato especfico.
Argumento
Tipo de variable
MX()
Integer(entera)
FILE
Descripcin
Vector existente.
Nombre del archivo sin extensin que contendr a la
matriz MX(). Este archivo estar ubicado en la carpeta
String (caracteres)
del libro de Excel desde donde se ejecute la instruccin. La extensin del archivo ser asignada automticamente como .txt.
Tabla 17.3. Sintaxis de la instruccin IOEXPD.
193
Ejemplo 17.3 Dado el vector de parmetros grficos GRA(), la instruccin indicada a continuacin construye el archivo GRA.txt que contiene los coeficientes del
vector existente.
IOEXPD GRA(),"GRA"
17.4. IOELDR
Esta instruccin permite exportar una matriz real existente a un archivo plano en el formato
indicado en la Figura 17.1(b) para un paso de carga especfico.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
en la Tabla 17.4.
Ejemplo 17.4 Dada la matriz de valores elementales de esfuerzos SXX() en el paso
de carga ILD=5, la instruccin indicada a continuacin exporta la matriz al archivo
FIE005.txt.
IOELDR SXX(), "FIE", ILD
194
Captulo 17.
Argumento
Tipo de variable
MX()
Double (real)
FILE
ILD
Descripcin
17.5. IOEXPT
Esta instruccin permite exportar una cadena de caracteres a la primera lnea de un archivo
plano. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
IOEXPT TITU, FILE
Argumento
Tipo de variable
TITU
String (caracteres)
FILE
Descripcin
Captulo 18
Instrucciones internas de uso comn
Este captulo describe las subrutinas miscelneas del programa, generalmente utilizadas por
las dems instrucciones.
Estas rutinas tienen el prefijo PB y estn contenidas en el mdulo MdPB para facilitar su
ubicacin en el cdigo como lo indica la Tabla 2.19.
18.1. PBDEMR
Extrae el nmero de filas y de columnas de una matriz real existente con dimensiones definidas. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
PBDEMR MX(), NF, NC
Argumento
MX()
NF
NC
Tipo de variable
Descripcin
Parmetro de entrada que corresponde a la matriz real
Double (real)
existente de dimensiones definidas M.
Parmetro de salida que indica el nmero de filas de
Integer (entero)
la matriz M.
Parmetro de salida que indica el nmero de columInteger (entero)
nas de la matriz M.
Tabla 18.1. Sintaxis de la instruccin PBDEMR.
18.2. PBDEMI
Extrae el nmero de filas y de columnas de una matriz entera existente con dimensiones
definidas. La sintaxis de la instruccin se indica en la Tabla 18.2.
18.3. PBATRI
Calcula el rea de un triangulo a partir de las coordenadas de sus extremos. La sintaxis de
la funcin y la descripcin de sus respectivos argumentos se presentan en la Tabla 18.3.
196
Captulo 18.
Argumento
MX()
NF
NC
Tipo de variable
Descripcin
Parmetro de entrada que corresponde a la matriz
Integer (entero)
entera existente de dimensiones definidas M.
Parmetro de salida que indica el nmero de filas de
Integer (entero)
la matriz M.
Parmetro de salida que indica el nmero de columInteger (entero)
nas de la matriz M.
Tabla 18.2. Sintaxis de la instruccin PBDEMI.
[variable]= PBATRI(X(), Y())
Argumento
Tipo de variable
X()
Double (real)
Y()
Double (real)
PBATRI
Double (real)
Descripcin
Vector que contiene las coordenadas x de los extremos del triangulo: X(1), X(2), X(3).
Vector que contiene las coordenadas y de los extremos del triangulo: Y(1), Y(2), Y(3).
rea del triangulo definido por las coordenadas X(),
Y()
18.4. PBDIST
Calcula la distancia entre dos nudos en el espacio bidimensional a partir de la matriz o tabla
de coordenadas en los nudos. La sintaxis de la funcin y la descripcin de sus respectivos
argumentos se presentan a continuacin.
[variable]= PBDIST(XYZ(), NI, NJ)
Argumento
Tipo de variable
Descripcin
XYZ()
Double (real)
NI
Integer (entero)
NJ
Integer (entero)
PBDIST
18.5. PBCOSD
Calcula los cosenos directores que describen la direccin de un segmento recto definido
entre dos nudos a partir de las coordenadas de los mismos. En otras palabras, obtiene las
componentes de un vector unitario n cuya direccin est definida por un segmento recto.
La sintaxis de la funcin y la descripcin de sus respectivos argumentos se presentan a
continuacin.
197
Argumento
Tipo de variable
Descripcin
XYZ()
Double (real)
NI
Integer (entero)
NJ
Integer (entero)
TP
Integer (entero)
PBCOSD
Double (real)
18.6. PBDIAG
Llena los coeficientes de la diagonal inferior de una matriz cuadrada a partir de los coeficientes de la diagonal superior convirtindola en una matriz simtrica.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
PBDIAG MX(), NF
Argumento
MX()
MX()
NF
Tipo de variable
Descripcin
Como parmetro de entrada corresponde a la matriz
cuadrada existente con coeficientes definidos en la
Double (real)
diagonal superior.
Como parmetro de salida corresponde a la matriz
Double (real)
simtrica la cual se construye llenando los coeficientes de la diagonal inferior.
Parmetro de entrada que indica el nmero de filas de
Integer (entero)
la matriz.
Tabla 18.6. Sintaxis de la instruccin PBDIAG.
18.7. PBCOEL
Calcula cuatro factores de elasticidad para condicin plana de esfuerzos y plana de deformaciones tiles en el clculo de la matriz de rigidez de los elementos de elasticidad plana.
Se definen E1, E2, E3 y E4 como factores de elasticidad en condicin plana de esfuerzos, de
la forma:
E1 =
(1 )
(1 2 )
, E2 =
1
(1 2 )
, E3 =
1
, E 4 = (1 + )
2
(18.1)
198
Captulo 18.
E1 = 1 , E 2 =
, E3 =
(1 )
2
, E 4 = (1 2 )
(18.2)
Argumento
Tipo de variable
Descripcin
TP
Integer (entero)
NU
Double (real)
E1
Double (real)
Factor calculado E1
E2
Double (real)
Factor calculado E2
E3
Double (real)
Factor calculado E3
E4
Double (real)
Factor calculado E4
Tabla 18.7. Sintaxis de la instruccin PBCOEL.
18.8. PBREDO
Redondea un escalar real segn el nmero de cifras significativas establecido. La sintaxis
de la funcin y la descripcin de sus respectivos argumentos se presentan a continuacin.
[variable]= PBREDO(V, N)
Argumento
Tipo de variable
Descripcin
Double (real)
Integer (entero)
PBREDO
Double (real)
Escalar redondeado
Tabla 18.8. Sintaxis de la instruccin PBREDO.
18.9. PBDINU
Calcula la distancia entre un nudo y un segmento recto definido por dos nudos.
La sintaxis de la funcin y la descripcin de sus respectivos argumentos se presentan a
continuacin.
199
Argumento
Tipo de variable
Descripcin
XYZ()
Double (real)
NINI
Integer (entero)
NFIN
Integer (entero)
NCAL
PBDINU
18.10.
PBPGAU
Construye una tabla que contiene las constantes de ponderacin en el mtodo de integracin numrica de la cuadratura de Gauss (Zienkiewicz 1980; Cook, Malkus et al. 1989;
Hughes 2000). La sintaxis de la funcin y la descripcin de sus respectivos argumentos se
presentan a continuacin.
PBPGAU NPUN, NDIM, MX()
Argumento
NPUN
NDIM
MX()
Tipo de variable
Descripcin
Nmero de puntos de Gauss sobre una direccin. La
Integer (entero)
instruccin considera 3 puntos como mximo.
Nmero de dimensiones del problema. La instruccin
Integer (entero)
considera 2 dimensiones como mximo.
Tabla de constantes de ponderacin en la integracin
Double (real)
numrica de la cuadratura de Gauss.
Tabla 18.10. Sintaxis de la instruccin PBPGAU.
Captulo 19
Instrucciones grficas
Este captulo describe las instrucciones dedicadas a la generacin de grficas de cantidades
de inters sobre la malla de elementos finitos.
Las limitaciones del lenguaje Visual Basic for Applications para la presentacin grfica
de los resultados hizo necesario el desarrollo de una aplicacin independiente en otro lenguaje de programacin y fuera del entorno de Microsoft Excel. Por lo tanto, al ser una
programa previamente compilado, el usuario no tiene acceso a sus las lneas de cdigo.
En contrava con la filosofa del programa PEFiCA, est grupo de instrucciones son las
nicas que no presentan un cdigo abierto.
Archivo
En el interior de las subrutinas presentadas en este captulo se ejecuta una aplicacin especial adjunta al programa denominado PEFI-Graf 1.0 la cual genera diferentes tipos de
grficos a partir de los resultados en los nudos o en los elementos de la malla.
Para utilizar dicha aplicacin es necesario que el archivo ejecutable PEFIGRAF.exe est
ubicado en la misma carpeta donde se encuentre el libro de Microsoft Excel con las rutinas
del programa. Los datos de entrada son archivos de texto que contienen la topologa y los
resultados de la malla de elementos finitos, como se indica en la Tabla 19.1.
A excepcin de GRA.txt, los archivos de texto deben mantener la siguiente estructura
para que sean ledos por el programa PEFI-Graf 1.0, (Figura 19.1):
202
Captulo 19.
Instrucciones grficas
nmero de columnas
nmero
de filas
fila 1
fila 12
columna 1
columna 2
Figura 19.1. Estructura de un archivo de texto que contiene la matriz de coordenadas de los
nudos.
De forma secuencial, cada lnea contiene los coeficientes de una fila de la matriz.
El archivo GRA.txt contiene los parmetros generales del grfico que ser generado por
el programa PEFI-Graf 1.0. Estos datos han sido guardados en la matriz de parmetros
grficos GRA() del programa PEFiCA. La Tabla 19.2 describe cada uno de estos parmetros.
El primer coeficiente de la matriz de parmetros grficos identifica el tipo de resultado
que se desea dibujar seleccionado de la Tabla 19.3.
En la Tabla 19.2, los cdigos que determinan el color de una propiedad estn definidos
por el formato de color de Microsoft Basic presentado en la Tabla 19.4. Este formato utiliza 16 colores presentados como nmeros enteros entre 0 y 15.
Estas subrutinas tienen el prefijo GRA y estn contenidas en el mdulo MdGRA para facilitar su ubicacin en el cdigo como lo indica la Tabla 2.20.
203
Coeficiente
de la matriz
Posicin en
el archivo
(# lnea)
Valor por
defecto
Descripcin
204
Captulo 19.
GRA(1,1)
Instrucciones grficas
Tipo de grfico
Nudos.
Nudos y elementos.
Resultado nodal de una funcin de aproximacin con isolneas.
Resultado elemental constante de una funcin de aproximacin con iso-lneas.
Resultado nodal de una funcin de aproximacin con regiones llenas.
Resultado elemental de la derivada de una funcin de
aproximacin con regiones llenas.
Resultado nodal por material de una funcin de aproximacin con iso-lneas.
Resultado nodal por material de una funcin de aproximacin con regiones llenas.
Tabla 19.3. Identificador del tipo de grfico.
3
4
6
7
8
9
Color
Nmero
Negro
Gris
Azul
Azul claro
Verde
Verde claro
10
Aguamarina
Aguamarina claro
11
Rojo
Rojo claro
12
Fucsia
Fucsia claro
13
Amarillo
Amarillo claro
14
Blanco
Color
7
Blanco brillante
Tabla 19.4. Formato de color de Microsoft Basic.
Nmero
15
19.1. GRAFDE
Crea la matriz de parmetros grficos con los valores por defecto de cada uno de los coeficientes indicados en la tercera columna de la Tabla 19.2. La sintaxis de la instruccin y la
descripcin de sus respectivos argumentos se presentan a continuacin.
GRAFDE GRA()
Argumento
GRA()
Tipo de variable
Descripcin
Matriz de parmetros grficos creada con los valores
Integer (entero)
por defecto definidos en la Tabla 19.2.
Tabla 19.5. Sintaxis de la instruccin GRAFDE.
19.2. GRAFIL
Crea un archivo GRA.TXT que contiene los parmetros grficos almacenados en un vector
existente GRA().
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
205
Argumento
Tipo de variable
Descripcin
GRA()
19.3. GRAGEO
Dibuja la geometra de la malla de elementos finitos a partir de la matriz de coordenadas de
los nudos y la matriz de conectividades. Indica la numeracin tanto de nudos como de
elementos.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GRAGEO XYZ(), ELE(), GRA(), TG, TITU
Argumento
Tipo de variable
Descripcin
XYZ()
Double (real)
ELE()
Integer (entero)
Matriz de conectividades.
GRA()
Integer (entero)
TG
TITU
(16x1)
C1
F1
003
F2
F3
F4
F5
F6
F7
015
000
012
000
000
000
206
Captulo 19.
F8
F9
040
020
F10
-001
F11
-001
F12
-001
F13
-002
F14
000
Instrucciones grficas
Si se ejecuta la instruccin:
GRAGEO XYZ(), ELE(), GRA(), 1
207
19.4. GRAMAT
Dibuja la malla de elementos finitos y representa el valor de una cantidad entera definida en
cada elemento (como por ejemplo el tipo de material), con un color especificado.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GRAMAT XYZ(), ELE(), MAT(), GRA(), COL(), TITU
Argumento
Tipo de variable
Descripcin
XYZ()
Double (real)
ELE()
Integer (entero)
MAT()
GRA()
COL()
TITU
Matriz de conectividades.
Matriz de tipo de material por elemento u otra variaInteger (entero)
ble entera definida por cada elemento.
Matriz de parmetros grficos (Tabla 19.2).
Integer (entero)
Tabla de colores por cada valor entero de MAT() forInteger (entero)
mato RGB.
Optional String (arTtulo de la ventana del grfico. Si se omite este pagumento opcional tipo rmetro la ventana tendr un ttulo por defecto relacadena de caracteres) cionado con la grfica presentada.
Tabla 19.8. Sintaxis de la instruccin GRAMAT.
(16x1)
C1
F1
003
F2
F3
F4
F5
F6
F7
F8
F9
015
000
000
000
000
000
040
020
F10
000
F11
000
F12
000
F13
000
208
Captulo 19.
F14
000
Instrucciones grficas
elementos.
No aplica
Si se ejecuta la instruccin:
GRAMAT XYZ(), ELE(), MAT(), GRA(), COL()
material
rojo
verde
azul
material 1
material 2
19.5. GRAFIF
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el
vector de valores nodales, la cual es interpolada en el interior de cada elemento mediante
sus funciones de forma.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
Argumento
Tipo de variable
Descripcin
XYZ()
Double (real)
ELE()
Integer (entero)
FIF()
GRA()
TG
TITU
Matriz de conectividades.
Vector de valores nodales. Indica la cantidad de inteDouble (real)
rs en cada nudo que se desea dibujar.
Integer (entero)
Matriz de parmetros grficos (Tabla 19.2).
Identificador del tipo de grfico.
Si TG=3 dibuja los resultados nodales con isoOptional Integer (arlneas (por defecto).
gumento opcional tipo
(16x1)
C1
F1
003
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
015
000
012
000
000
000
040
020
-001
-001
-001
F13
-002
F14
000
209
210
Captulo 19.
Instrucciones grficas
Si se ejecuta la instruccin:
GRAFIF XYZ(), ELE(), NXX(), GRA(), 3
19.6. GRAFIM
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el
vector de valores nodales, la cual es interpolada en el interior de los elementos finitos del
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
211
mismo material. A diferencia de la instruccin GRAFIF, esta subrutina presenta los resultados nodales de cada material por separado.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GRAFIM XYZ(), ELE(), MAT(),FIF(), GRA(), TG, TITU
Argumento
Tipo de variable
Descripcin
XYZ()
Double (real)
ELE()
Integer (entero)
Matriz de conectividades.
MAT()
Integer (entero)
FIF()
GRA()
TG
TITU
La matriz de resultados nodales por material contiene los valores promedio en los nudos
de la malla describiendo una funcin continua en el interior de cada grupo de elementos
finitos del mismo material. La instruccin ORSONM permite obtener dicha matriz.
Ejemplo 19.4 Dada la matriz de coordenadas de los nudos XYZ(), la matriz de conectividades ELE() y la matriz de materiales MAT(), dibujar los resultados nodales
por material en la malla definidos en el vector TAS(), presentado de dos formas distintas: a) mediante iso-lneas , b) mediante regiones llenas. Los coeficientes de la
matriz de parmetros grficos GRA() son:
GRA()
(16x1)
C1
F1
003
F2
F3
F4
F5
F6
F7
F8
F9
F10
015
000
000
000
000
000
040
020
000
212
Captulo 19.
F11
000
F12
000
F13
000
F14
000
Instrucciones grficas
nudos.
Nmero del ltimo nudo numerado = no se numeran los
nudos.
Nmero del primer elemento numerado = no se numeran los
elementos.
Nmero del ltimo elemento numerado = no se numeran los
elementos.
Indicador del tipo de gama de tonos para los resultados =
escala rojo-amarillo-verde-cian-azul.
Si se ejecuta la instruccin:
GRAFIM XYZ(), ELE(), MAT(), TAS(), GRA(), 8
213
material 1
material 2
214
Captulo 19.
material 1
material 2
Instrucciones grficas
material 1
material 2
(d) detalle de la
malla de
elementos finitos
19.7. GRAFIE
Dibuja los resultados elementales de una cantidad o funcin de aproximacin definida por
una matriz de valores en el interior de cada elemento. La instruccin permite presentar los
resultados de dos formas distintas. La primera, toma de la matriz de valores elementales
una cantidad que considera constante para todos los puntos del interior del elemento. La
segunda, toma la cantidad que se desea dibujar en los nudos de cada elemento y con ellos
obtiene los valores en su interior interpolndolo mediante las funciones de forma.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
Argumento
Tipo de variable
Descripcin
XYZ()
Double (real)
ELE()
Integer (entero)
FIE()
GRA()
TG
TITU
Matriz de conectividades.
Matriz de valores elementales. Indica la cantidad de
Double (real)
inters que se desea dibujar en cada elemento.
Integer (entero)
Matriz de parmetros grficos (Tabla 19.2).
Identificador del tipo de grfico.
Si TG=4 considera un valor constante de la cantidad de inters dentro del elemento. Tal valor se
toma de la primera columna de la matriz de valores elementales FIE() (por defecto).
Si TG=7 considera una variacin de la cantidad de
Optional Integer
inters dentro del elemento, definida por la inter(argumento opcional
polacin de los valores en los nudos mediante las
tipo entero)
funciones de forma. Requiere que cada fila de la
matriz de valores elementales contenga el valor de
la funcin de inters en los nudos de un elemento.
Esta opcin no es aplicable a elementos triangulares lineales, donde las derivadas de las funciones
de forma en su interior son constantes.
En la rutina se asigna a GRA(1,1)=TG
Optional String (arTtulo de la ventana del grfico. Si se omite este pagumento opcional tipo rmetro la ventana tendr un ttulo por defecto relacadena de caracteres) cionado con la grfica presentada.
Tabla 19.11. Sintaxis de la instruccin GRAFIE.
(16x1)
C1
F1
003
F2
F3
F4
F5
F6
F7
F8
F9
F10
015
000
012
000
000
000
040
020
-001
215
216
Captulo 19.
F11
-001
F12
-001
F13
-001
F14
000
Instrucciones grficas
nudos.
Nmero del ltimo nudo numerado = se numeran todos los
nudos.
Nmero del primer elemento numerado = se numeran todos
los elementos.
Nmero del ltimo elemento numerado = se numeran todos
los elementos.
Indicador del tipo de gama de tonos para los resultados =
escala rojo-amarillo-verde-cian-azul.
Si se ejecuta la instruccin:
217
19.8. GRATDE
Dibuja la malla de elementos finitos deformada de acuerdo con el vector de desplazamientos en los nudos para un problema de elasticidad bidimensional durante varios pasos de
carga. Previamente debe existir un archivo que contenga las coordenadas de los nudos de
la geometra deformada exagerada por cada paso de carga. Los nombres de los archivos
para los pasos de carga tendrn el siguiente formato: XYZ001.txt, XYZ002.txt,
XYZ003.txt , La instruccin IOELDR facilita la construccin de tales archivos.
Los desplazamientos reales son multiplicados por un factor de exageracin de tal forma
que la deformada de la estructura sea visible en la grfica.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GRATDE ELE(), GRA(), NULD
Argumento
Tipo de variable
Descripcin
ELE()
Integer (entero)
Matriz de conectividades.
GRA()
Integer (entero)
NULD
(16x1)
218
Captulo 19.
Instrucciones grficas
C1
F1
050
F2
F3
F4
F5
F6
F7
F8
F9
015
000
012
000
000
000
040
020
F10
-001
F11
-001
F12
-001
F13
-001
F14
000
F15
005
F16
010
Si se ejecuta la instruccin: GRATDE ELE(), GRA(), NULD se activa una ventana grfica que muestra una animacin de la deformada de la estructura en cada paso de
carga con una diferencia de tiempo de 1 segundo. La Figura 19.9 presenta el final
de la animacin. Los coeficientes GRA(1,1) y GRA(15,1) toman un valor de 50 y
NULD respectivamente.
Figura 19.9. Ejemplo de la instruccin GRATDE. Grfico del ltimo paso de carga.
19.9. GRATFI
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el
vector de valores en los nudos durante varios pasos de carga (o de pseudo-tiempo en general). Previamente debe existir un archivo que contenga el vector de valores nodales por
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
219
cada paso de carga. Los nombres de los archivos para los pasos de carga tendrn el siguiente formato: FIF001.txt, FIF002.txt, FIF003.txt , La instruccin IOELDR facilita la construccin de tales archivos.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GRATFI ELE(), GRA(), NULD, TG
Argumento
Tipo de variable
Descripcin
ELE()
Integer (entero)
Matriz de conectividades.
GRA()
Integer (entero)
NULD
Integer (entero)
TG
Si
TG=53 grfico de regiones llenas, considerando
tipo entero)
el rango de valores de cada paso.
Si TG=54 grfico de regiones llenas, considerando
el rango de valores comn para todos los pasos de
carga.
En la rutina se asigna a GRA(1,1)=TG
Tabla 19.13. Sintaxis de la instruccin GRATFI.
(16x1)
C1
F1
051
F2
015
220
Captulo 19.
F3
F4
F5
F6
F7
F8
F9
000
012
000
000
000
040
020
F10
-001
F11
-001
F12
-001
F13
-001
F14
000
F15
005
F16
010
Instrucciones grficas
Si se ejecuta la instruccin:
GRATFI ELE(), GRA(), NULD, 54
se activa una ventana grfica que muestra una animacin del esfuerzo xx promedio
en los nudos de la estructura en cada paso de carga con una diferencia de tiempo de
1 segundo. La Figura 19.11 presenta el final de la animacin. Los coeficientes
GRA(1,1) y GRA(15,1) toman un valor de 54 y NULD respectivamente.
Figura 19.11. Ejemplo de la instruccin GRATFI. Grfico del ltimo paso de carga.
221
19.10.
GRATFE
Dibuja los resultados elementales de una cantidad o funcin de aproximacin definida por
el vector de valores en los elementos durante varios pasos de carga (o de pseudo-tiempo en
general). Previamente debe existir un archivo que contenga el vector de valores elementales por cada paso de carga. Los nombres de los archivos para los pasos de carga tendrn el
siguiente formato: FIE001.txt, FIE002.txt, FIE003.txt , La instruccin IOELDR
facilita la construccin de tales archivos.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GRATFE ELE(), GRA(), NULD, TG
Argumento
Tipo de variable
Descripcin
ELE()
Integer (entero)
Matriz de conectividades.
GRA()
Integer (entero)
NULD
Integer (entero)
TG
F1
(16x1)
C1
051
222
Captulo 19.
F2
F3
F4
F5
F6
F7
F8
F9
015
000
012
000
000
000
040
020
F10
-001
F11
-001
F12
-001
F13
-001
F14
000
F15
005
F16
010
Instrucciones grficas
Si se ejecuta la instruccin:
GRATFE ELE(), GRA(), NULD, 56
se activa una ventana grfica que muestra una animacin del esfuerzo xx en el interior de los elementos de la estructura para cada paso de carga con una diferencia
de tiempo de 1 segundo. La Figura 19.13 presenta el final de la animacin. Los
coeficientes GRA(1,1) y GRA(15,1) toman un valor de 56 y NULD respectivamente.
Figura 19.13. Ejemplo de la instruccin GRATFE. Grfico del ltimo paso de carga.
Captulo 20
Instrucciones de generacin de malla
Este captulo describe las instrucciones que generan de forma automtica la malla de elementos finitos de una regin especificada. Dichas subrutinas estn ubicadas en el mdulo
MdGE como lo indica la Tabla 2.17.
20.1. GEMARE
Genera una malla de elementos finitos rectangulares en una regin en forma de rectangular.
Crea la matriz de coordenadas de los nudos y la matriz de conectividades de los elementos
de la malla construida.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GEMARE GEM(), XYZ(), ELE(), NNUD, NELE, NNUE, NDIM
Argumento
GEM()
XYZ()
ELE()
NNUD
NELE
NNUE
NDIM
Tipo de variable
Descripcin
Matriz que contiene los parmetros de generacin de
Double (real)
la malla indicados en la Tabla 20.1 (argumento de
entrada).
Matriz de coordenadas de los nudos de la malla (arDouble (real)
gumento de salida).
Matriz de conectividades de los elementos de la malla
Integer (entero)
(argumento de salida).
Integer (entero)
Nmero de nudos de la malla (argumento de salida).
Nmero de elementos finitos de la malla (argumento
Integer (entero)
de salida).
Nmero de nudos asociados a un elemento finito
Integer (entero)
(argumento de salida).
Nmero de dimensiones del problema (argumento de
Integer (entero)
salida).
Tabla 20.1. Sintaxis de la instruccin GEMARE.
224
Coeficiente
de la matriz
Descripcin
Ejemplo 20.1 Una superficie rectangular de 9m por 6m se divide en elementos finitos rectangulares, que conforman una cuadrcula de 3 elementos en direccin x
por 2 elementos en direccin y. Los coeficientes de la matriz de parmetros de generacin de malla GEM() son:
GEM()
(16x1)
C1
F1
0.0000E+00
F2
0.0000E+00
F3
9.0000E+00
F4
6.0000E+00
F5
3.0000E+00
F6
2.0000E+00
225
(x,y)=GEM(3,1),GEM(4,1)
06
03
02
12
09
04
06
GEM(6,1)
05
02
GEM(5,1)
y
01
11
08
03
05
y
(x,y)=GEM(1,1),GEM(2,1)
x
superficie rectangular
01
04
x
malla de elementos finitos
07
10
Captulo 21
Instrucciones para crear el vector de
contribucin interelemental
Las instrucciones presentadas a continuacin crean el vector de contribucin interelemental
i (e ) de los elementos finitos para problemas de campo incluidos en el programa. Estas
subrutinas tienen el prefijo I y estn ubicadas en el mdulo MdINT del cdigo como lo indica la Tabla 2.18. La matriz columna i (e ) depende de la geometra y la funcin de aproximacin del elemento.
La contribucin interelemental representa a las condiciones de contorno de Neaumann o
de segundo tipo de una ecuacin diferencial de campo escalar (Zienkiewicz 1980; Hughes
2000). Aplicando el mtodo de Galerkin a la ecuacin diferencial de campo bidimensional
expresada en la Ecuacin (10.5) se plantea en el mtodo de los elementos finitos que:
K = f i
(21.1)
K = A K (e)
( e )=1
(21.2)
f = A f (e)
( e ) =1
(21.3)
i = A i (e)
( e )=1
(21.4)
y el vector n = n x i + n y j , es decir:
228
Captulo 21.
n =
=
nx +
ny
n x
x
( x, y )
(21.5)
siendo n el vector unitario en direccin normal al contorno y en sentido tal que sale del
dominio del problema.
Un elemento finito bidimensional que comparte por lo menos uno de sus lados con el
contorno del problema, podra tener un vector de contribucin interelemental i (e ) igual a la
integral de lnea en los lados del elemento que conforman el contorno, de la forma:
i (e ) = ( e ) N ( e)
S ( e ) dL
(21.6)
21.1. ITRIAN
Crea el vector de contribucin interelemental de un elemento finito triangular lineal (Figura
8.3(a)), preparado para resolver una ecuacin diferencial de campo bidimensional expresada en la Ecuacin (10.5).
Sustituyendo la matriz de funciones de forma del elemento N (e ) presentada en las Ecuaciones (8.14) a (8.16), en la Ecuacin (21.6) se obtiene el vector de contribucin interelemental sobre los tres lados de un elemento triangular lineal de nudos ijk de la forma:
i
(e)
1
Sij( e ) L(ije ) S (jke ) L(jke )
1 +
=
2
2
0
0
(e) (e )
1 + Sik Lik
2
1
1
0
1
(21.7)
donde Sij(e ) es la derivada direccional con respecto a la normal al lado ij de longitud L(eij ) ,
S (ejk ) es la derivada direccional con respecto a la normal al lado jk de longitud L(ejk) y Sik(e ) es
la derivada direccional con respecto a la normal al lado ik de longitud L(eik ) .
Sin embargo, la instruccin FTRIAN calcula el vector de contribucin interelemental por
cada lado c del elemento indicado en la Figura 11.1 de la forma:
Si c = 1 i
(e)
Si c = 2 i ( e ) =
Si c = 3 i ( e )
Sij( e ) L(ije )
2
S L
(e) (e)
jk
jk
[1
1 0]
[0
1 1]
2
(e) (e)
S L
T
= ik ik [1 0 1]
2
(21.8)
229
Argumento
Tipo de variable
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
Double (real)
Descripcin
Vector (creado) de trminos independientes del elemento i (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.
LADO
Ejemplo 21.1 Sea un problema controlado por la Ecuacin (10.5), para el cual el
lado ik del elemento triangular lineal nmero 2 pertenece al contorno cuya condicin de Neumann indica que n = 5.2 . La contribucin interelemental dada por
el elemento nmero 2 se obtiene de la siguiente instruccin:
ITRIAN IEL(), XYZ(), ELE(), 2, -5.2, 3
Dadas las coordenadas de los nudos que definen el lado ik del elemento finito se tiene que L(ike ) = 2.0 . Por lo tanto, los coeficientes del vector de contribucin interelemental son los siguientes:
IEL()
F1
F2
F3
(3x1)
C1
-5.2000E+00
0.0000E+00
-5.2000E+00
21.2. IRECTA
Crea el vector de contribucin interelemental de un elemento finito rectangular bilineal
(Figura 8.7(a)), preparado para resolver una ecuacin diferencial de campo bidimensional
expresada en la Ecuacin (10.5).
Sustituyendo la matriz de funciones de forma del elemento N (e ) presentada en las Ecuaciones (8.19) y (8.20), en la Ecuacin (21.6) se obtiene el vector de contribucin interelemental sobre los cuatro lados de un elemento rectangular bilineal de nudos ijkm de la forma:
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
230
Captulo 21.
i (e) =
(e)
ij
(e)
ij
S L
2
1
1 S ( e ) L( e )
+ jk jk
0
2
0
0
1
(e ) (e)
+ S km Lkm
1
2
0
0
0
(e ) (e)
+ S im Lim
1
2
1
1
0
0
1
(21.9)
donde Sij(e ) es la derivada direccional con respecto a la normal al lado ij de longitud L(eij ) ,
(e )
S es la derivada direccional con respecto a la normal al lado jk de longitud L(ejk) , S km
es la
derivada direccional con respecto a la normal al lado km de longitud L(ekm) y Sim(e ) es la derivada direccional con respecto a la normal al lado im de longitud L(eim) . Sin embargo, la instruccin IRECTA calcula el vector de contribucin interelemental por cada lado c del elemento indicado en la Figura 11.3 de la forma:
(e )
jk
Si c = 1 i
(e)
Si c = 2 i ( e ) =
Sij( e ) L(ije )
2
S L
(e) (e)
jk
jk
[1
1 0 0]
[0
1 1 0]
2
S L
[0 0 1 1]T
Si c = 3 i ( e ) =
2
(e) (e)
S L
T
Si c = 4 i ( e ) = im im [1 0 0 1]
2
(e) (e)
km km
(21.10)
Argumento
Tipo de variable
Descripcin
MX()
Double (real)
XYZ()
Double (real)
ELE()
Integer (entero)
IELE
Integer (entero)
Double (real)
LADO
la Ecuacin (21.8).
Indicador del lado que el elemento finito comparte con el contorno del problema donde existe contribucin interelemental.
Si LADO=1 corresponde al lado ij.
Integer (entero)
Si LADO=2 corresponde al lado jk.
Si LADO=3 corresponde al lado km.
Si LADO=4 corresponde al lado im.
Tabla 21.2. Sintaxis de la instruccin IRECTA.
Ejemplo 21.2 Sea un problema controlado por la Ecuacin (10.5), para el cual el
lado km del elemento rectangular bilineal nmero 1 pertenece al contorno cuya
condicin de Neumann indica que n = 5.2 . La contribucin interelemental dada
por el elemento nmero 1 se obtiene de la siguiente instruccin:
ITRIAN IEL(), XYZ(), ELE(), 1, -5.2, 3
Dadas las coordenadas de los nudos que definen el lado km del elemento finito se
tiene que L(kme ) = 2.0 . Por lo tanto, los coeficientes del vector de contribucin interelemental son los siguientes:
IEL()
F1
F2
F3
F3
(3x1)
C1
0.0000E+00
0.0000E+00
-5.2000E+00
-5.2000E+00
231
Referencias
Antia, H. M. (2002). Numerical Methods for Scientists and Engineers. Berlin, Birkhuser
Verlag.
Argyris, J. (1954). "Energy theorems ans structural analysis." Aircraft Engineering 26: 347356, 383-387.
Argyris, J. (1955). "Energy theorems ans structural analysis." Aircraft Engineering 27: 4258, 80-94, 125-134, 145-158.
Bathe, K. (1996). Finite elements procedures. New Jersey, Prentice Hall.
Belytschko, T., Liu, W. K. & Moran, B. (2000). Nonlinear finite elements for continua and
structures, John Wiley and Sons.
Bonet, J. & Wood, R. (1997). Nonlinear continuum mechanics for finite elements analysis,
Cambridge University Press.
Cervera, M., Agelet, C. & Chiumenti, M. (2001). COMET. Contact Mechanical and Thermal analysis. Multi purpose coupled nonlinear program for steady and transient
conditions. Barcelona.
Clough, R. (1960). The finite element in plane stress analysis. Conference on Electronic
Computation, Pittsburgh.
COMSOL (2007). COMSOL Multiphysics. Los Angeles, USA.
Cook, R., Malkus, D. & Plesha, M. (1989). Concepts and applications of finite elements
analysis. New York, John Wiley & Son.
Crisfield, M. A. (1991a). Non-linear finite elements analysis of solid and structures. 1 Essentials. John Wiley and Sons.
Crisfield, M. A. (1991b). Non-linear finite elements analysis of solid and structures. 2 Advanced topics, John Wiley and Sons.
Felippa, C. (1991). Nonlinear finite elements method. Boulder, University of Colorado.
Gere, W. & Weaver, J. (1990). Matrix Analysis of Framed Structures. New York, Van
Nostrand Reinhold.
Grossman, S. (1996). Algebra Lineal. Mxico D.F., Mc Graw Hill.
Herrera, L. (2007). Simulacin del comportamiento elstico del concreto reforzado sometido a torsin pura mediante el mtodo semi-inverso de Saint-Venant y el mtodo de
los elementos finitos. Tesis de pregrado en Ingeniera Civil, Universidad Nacional
de Colombia, Bogot.
Holzapfel, G. (2000). Nonlinear solid mechanics, John Wiley and Sons.
Horn, R. & Johnson, C. (1994). Topics in Matrix Analysis, Cambridge.
Hughes, T. J. R. (2000). The finite element method. New York, Dover.
Kojic, M. & Bathe, K. J. (2005). Inelastic Analysis of Solids and Structures. Berlin, Springer-Verlag.
Linero, D. (1999). Euler. Programa didctico de elementos finitos. Bogot, Facultad de
Ingeniera. Universidad Nacional de Colombia.
LundUniversity (1999). CALFEM. A finite element toolbox to MATLAB. Lund, Sweden,
Division of Structural Mechanics and Division of Solid Mechanics.
MacNeal, R. (1972). The NASTRAN Theorial Manual.
234
Referencias