Sunteți pe pagina 1din 238

PEFiCA

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

Dorian Luis Linero Segrera


Profesor Asociado
Facultad de Ingeniera
Universidad Nacional de Colombia
2010
Dorian Lus Linero Segrera Universidad Nacional de Colombia, 2010
Certificado de Registro de Soporte Lgico (Software) de la Direccin Nacional de Derechos de Autor,
Ministerio del Interior y de Justicia, libro 13, tomo 25, partida 403 del 20 de mayo de 2010.
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
2 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


PEFiCA Programa de elementos finitos a cdigo abierto 3

Captulo 10 Instrucciones para crear la matriz de rigidez de un elemento................... 115


10.1. KUNID2..................................................................................................... 115
10.2. KUNID3..................................................................................................... 116
10.3. KTRIAN..................................................................................................... 118
10.4. KRECTA.................................................................................................... 119
10.5. KTRIEL...................................................................................................... 121
10.6. KRECEL .................................................................................................... 126
Captulo 11 Instrucciones para crear el vector de fuerzas de un elemento .................. 129
11.1. FUNID2 ..................................................................................................... 129
11.2. FUN2QL .................................................................................................... 130
11.3. FUNID3 ..................................................................................................... 131
11.4. FUN3QL .................................................................................................... 132
11.5. FTRIAN ..................................................................................................... 133
11.6. FRECTA .................................................................................................... 134
11.7. FTRIES ...................................................................................................... 136
11.8. FTRIEC ...................................................................................................... 138
11.9. FRECES ..................................................................................................... 140
11.10. FRECEC..................................................................................................... 142
Captulo 12 Instrucciones para crear matrices de constantes elsticas......................... 145
12.1. CELAPL..................................................................................................... 145
Captulo 13 Instrucciones de cambios de base ............................................................. 147
13.1. TRVECO.................................................................................................... 147
13.2. TRESP2...................................................................................................... 148
13.3. TRPRIN ..................................................................................................... 149
13.4. TRVMIS..................................................................................................... 151
Captulo 14 Instrucciones para numerar los grados de libertad ................................... 153
14.1. NGLNUD................................................................................................... 153
14.2. NGLELE .................................................................................................... 155
14.3. NGLBAN ................................................................................................... 156
Captulo 15 Instrucciones para ensamblar y extraer matrices ...................................... 159
15.1. ENSAMK................................................................................................... 159
15.2. ENSAMV................................................................................................... 161
15.3. ENBAND ................................................................................................... 163
15.4. ENSAMX................................................................................................... 163
15.5. EXTRAV ................................................................................................... 165
Captulo 16 Instrucciones de organizacin de matrices ............................................... 169
16.1. ORFUGL.................................................................................................... 169
16.2. ORGLFU.................................................................................................... 172
16.3. ORSONO ................................................................................................... 173
16.4. ORSONM................................................................................................... 176
16.5. ORNUDE ................................................................................................... 178
16.6. ORNLIN..................................................................................................... 180
16.7. ORNLIX..................................................................................................... 181
16.8. ORELIN ..................................................................................................... 182
16.9. ORELIX ..................................................................................................... 184
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
4 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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 permiti-
do representar el comportamiento de estructuras, suelos, rocas y lquidos ante diferentes
acciones, con geometras irregulares, con varios materiales y con condiciones de borde par-
ticulares.
En las primeras aplicaciones del mtodo de los elementos finitos se obtena la distribu-
cin de esfuerzos en un slido de comportamiento lineal elstico bidimensional, sustituyen-
do 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 con-
tacto 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 comporta-
miento mecnico de slidos y fluidos debe hacer parte de la formacin de un Ingeniero Ci-
vil. En particular en la Universidad Nacional de Colombia sede Bogot, la asignatura Ta-
ller 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 ele-
mentos 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
6 Captulo 1. Descripcin general del programa

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 de-
sarrollos.
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 forma-
tos 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 princi-
pal 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, co-
mienza el desarrollo de programas aislados de simulacin numrica con propsito especfi-
co. 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 per-
miten 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 cdi-
go abierto, es decir, grupos de rutinas observables y modificables, que despus de ser com-
piladas 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 Ele-
mentos Finitos - Euler (Linero 1999), el cual proporcionaba al usuario un grupo de instruc-
ciones 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 Maes-
tra en Ingeniera Estructuras. La respuesta de los estudiantes revel las fortalezas y de-
bilidades de la herramienta, dando paso a la creacin del nuevo programa denominado PE-
FiCA.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 7

1.2. Objetivos
El programa PEFiCA tiene como objetivo principal motivar, estimular y facilitar el apren-
dizaje 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 estu-
diante 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 pro-
grama busca que el usuario participe activamente del proceso de aprendizaje en el tema,
observando, entendiendo y desarrollando progresivamente cada una de las etapas de clcu-
lo.
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 en-
samblaje 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 unidi-
mensional 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 per-
meables y transferencia de calor bidimensional, entre otros.
Asimismo, el programa permite obtener el campo de los desplazamientos, deformacio-
nes 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 fini-
tos 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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


8 Captulo 1. Descripcin general del programa

ecuaciones homogneo. Tambin existen rutinas que ensamblan matrices y vectores de


acuerdo con la numeracin de los valores nodales o grados de libertad del problema.
Con respecto al pre y post proceso, hay rutinas que convierten el contenido de las celdas
de las hojas de clculo en matrices y otras que escriben las matrices obtenidas en las celdas
de una hoja de clculo. Asimismo, otras subrutinas presentan la funcin de aproximacin
y sus derivadas en el interior de cada elemento finito o los valores promedio en los nudos
de la malla, mediante grficos de iso lneas o de reas llenas en escala de colores o de gri-
ses. A partir del Captulo 3 de este documento se describen con detalle las instrucciones
desarrolladas en el programa clasificadas por su objetivo, por ejemplo, las subrutinas que
construyen la matriz de rigidez de los diferentes elementos finitos estn en el Captulo 10.
El diseo del programa permite la construccin de nuevas subrutinas que conlleven a la
solucin de otros problemas. Por ejemplo, para resolver un problema de elasticidad plana
donde el material es orttropo, el usuario tan solo debe crear una instruccin que calcule la
matriz de rigidez del elemento finito, ya que los dems procedimientos en la solucin del
problema estn preestablecidos en el programa. De hecho varias tesis y trabajos de final
de curso han ampliando y modificando la versin preliminar de PEFiCA para lograr objeti-
vos particulares (Herrera 2007; Puerto 2008; Parra 2009).

1.4. Caractersticas tcnicas


Las principales caractersticas tcnicas del programa de elementos finitos a cdigo abierto
PEFiCA son las siguientes:
Funcionalidad. El programa tiene ms de 100 instrucciones escritas en lenguaje Vi-
sual Basic for Applications que permiten resolver los problemas indicados en el apartado
anterior mediante mtodo de los elementos finitos.
Estabilidad. Las subrutinas del programa cuentan con controles y trampas de errores
que garantizan la estabilidad del programa durante su ejecucin. Sin embargo, la posibili-
dad de modificar las subrutinas de los programas a cdigo abierto como este, reducen su
robustez.
Usabilidad. La aplicacin Microsoft Excel proporciona una interfaz de entrada y salida
de datos gil y amigable para el usuario. Por otro lado, el post proceso grfico del progra-
ma PEFiCA, permite visualizar cmodamente las cantidades de inters en el dominio del
problema, como por ejemplo: funciones de campo, desplazamientos, deformaciones y es-
fuerzos.
Eficiencia. Debido a sus fines didcticos, el programa guarda en la memoria RAM al-
gunas matrices caractersticas de las etapas intermedias del procedimiento, sin embargo, los
usuarios avanzados podrn evitar que dichas matrices sean guardadas. El tiempo de ejecu-
cin depende del nmero de grados de libertad que tenga el problema y de la cantidad de
resultados intermedios que se desean observar.
Extendibilidad. Al ser un programa a cdigo abierto es fcil adicionar nuevas subruti-
nas que permitan la solucin de otros problemas mediante el mtodo de los elementos fini-
tos.
Portabilidad. Tanto el programa como los datos de un problema estn contenidos en
un libro de Microsoft Excel, esto facilita su portabilidad a computadores que cuenten con

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 9

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 volu-
men 2 que presenta los ejemplos de aplicacin y los algoritmos de clculo ms representa-
tivos. Adicionalmente, se incluyen los archivos de ms de 20 ejemplos resueltos con el
programa.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


Captulo 2
Estructura y manejo del programa
El Programa de Elementos Finitos a Cdigo Abierto - PEFiCA es una herramienta compu-
tacional 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 Micro-
soft 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).

2.1. Estructura del pre- y post-proceso: hojas de clculo


El programa puede leer el valor de las celdas de las hojas de clculo que contengan la in-
formacin bsica del problema que se desea resolver. Asimismo, las matrices resultantes
pueden escribirse en las celdas especificadas por el usuario. A continuacin se indica una
distribucin recomendada de las hojas de clculo como pre y post-proceso del programa.

Las hojas de entrada de datos constituyen el pre procesador del programa de elemen-
tos 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 con-
tenga la informacin completa del problema.
12 Captulo 2. Estructura y manejo del programa

Hoja de
Descripcin
clculo
Contiene los parmetros generales del problema como el ttulo, la cantidad de nudos y
TB_GEN 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
TB_XYZ 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 secuen-
TB_ELE cial. 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 conoci-
TB_RES dos 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
TB_FUN 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
TB_FUE
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 tra-
vs de las matrices escogidas por el usuario. Las instrucciones EDIMEI, EDIMER,
EDIMPI y EDIMPR permiten escribir en una hoja de clculo: matrices y escalares, ente-
ras 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.

2.2. Estructura del proceso: mdulos y rutinas en VBA


Los mdulos de VBA contienen las subrutinas del proceso de clculo clasificadas de acuer-
do con su objetivo dentro del mtodo de los elementos finitos. El nombre de cada rutina es
de 6 caracteres de los cuales el primero o en algunos casos los dos o tres primeros, indican
a que mdulo pertenecen. La Tabla 2.2 describe el contenido de cada mdulo de Visual
Basic, mientras que de la Tabla 2.3 a la Tabla 2.20 se indica el objetivo de cada una de las
rutinas existentes en el programa.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 13

Prefijo de
Mdulo objetivo
las rutinas
Md Contiene solamente la subrutina principal del programa PEFiCA().
Contiene las subrutinas que construyen una matriz a partir de los valores de un
MdED ED 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).
MdMT MT
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 lineal-
MdSO SO mente independientes mediante diferentes mtodos. Estas instrucciones se descri-
ben en el Captulo 6.
MdVP VP
Contiene las subrutinas que calculan los valores y vectores propios en sistemas
homogneos de ecuaciones simultneas (Captulo 7).
MdN N
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).
MdB B
Contiene las subrutinas que crean la matriz de operadores diferenciales actuando
sobre las funciones de forma de un tipo de elemento finito (Captulo 9).
MdK K
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
MdF F 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 materia-
MdCE CE les 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
MdTR TR
fuerzas, desplazamientos, esfuerzos y deformaciones. En algunas rutinas se cons-
truye 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
MdNGL NGL 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.
MdEN EN
Contiene las subrutinas que construyen la matriz o vector del sistema a partir del
ensamblaje de las matrices o vectores elementales (Captulo 15).
MdEX EX
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
MdOR OR acuerdo con la numeracin de los grados de libertad, de los nudos o de los elemen-
tos del problema. Estas instrucciones se describen en el Captulo 16.
MdIO IO
Contiene las subrutinas que permiten importar y exportar matrices a un archivo
plano. Estas instrucciones se describen en el Captulo 17.
MdPB PB
Contiene las subrutinas miscelneas del programa, generalmente utilizadas por las
dems instrucciones. Estas instrucciones se describen en el Captulo 18.
MdGRA GRA
Contiene las subrutinas dedicadas a la generacin de grficas de cantidades de
inters sobre la malla de elementos finitos (Captulo 19).
MdGE GE
Contiene las subrutinas dedicadas a la generacin de la malla a partir de una regin
especfica. Estas instrucciones se describen en el Captulo 20.
MdI I
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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


14 Captulo 2. Estructura y manejo del programa

rutina objetivo
MTCONS
Crea una matriz M de nf filas por nc columnas, cuyos coeficientes corresponden a un nmero
real c.
MTCONI
Crea una matriz M de nf filas por nc columnas, cuyos coeficientes corresponden a un nmero
entero c.
MTSUBM Extrae una submatriz S de la matriz existente M.
MTADJU Crea un vector columna x conformado por dos subvectores columna existentes s y t.
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.
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.
MTTRAN Calcula la matriz transpuesta de la matriz existente M, creando la matriz T.
MTMULT Multiplica la matriz A por la matriz B obteniendo la matriz C.
MTMUL3
Multiplica la primera matriz transpuesta AT por la segunda matriz B y el resultado lo multipli-
ca a la primera matriz A.
MTSUMA Calcula la matriz C como la suma entre las matrices A y B.
MTREST Calcula la matriz C como la resta de la matriz A menos la matriz B.
MTPROD
Multiplica trmino a trmino los coeficientes de las matrices A y B, almacenando el resultado
en la matriz C.
MTDIVI Multiplica trmino a trmino los coeficientes de las matrices A y B.
MTPORE Obtiene la matriz B como resultado de multiplicar el escalar c por la matriz A.
MTSUCI Suma los coeficientes de una matriz entera A.
MTSUCR Suma los coeficientes de una matriz real A.
MTMACI Encuentra el coeficiente mximo o mnimo de una matriz entera A.
MTMACR Encuentra el coeficiente mximo o mnimo de una matriz real A.
MTBAND
Establece el ancho de semi banda de una matriz simtrica llena A y crea la matriz banda B
correspondiente.
MTFUDU Factoriza una matriz cuadrada M.
MTFCLU
Factoriza la matriz M en el producto entre una matriz triangular inferior L y una matriz trian-
gular superior U.
MTDETE Calcula el determinante de una matriz cuadrada M.
MTINVE Calcula la matriz inversa de una matriz cuadrada M mediante eliminacin Gaussiana.
MTCOPI Crea una copia de una matriz real determinada.
Tabla 2.3. Instrucciones de operaciones matriciales bsicas indicadas en el mdulo MdMT

rutina objetivo
SOGAUS
Resuelve un sistema de ecuaciones simultaneas linealmente independiente mediante el mtodo
de eliminacin de Gauss.
SOCHLK
Resuelve un sistema simtrico de ecuaciones simultaneas linealmente independiente mediante
el mtodo de Cholesky modificado.
SOBAND
Resuelve un sistema de ecuaciones simultaneas linealmente independiente mediante el mtodo
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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 15

rutina objetivo
EDLECI
Crea la matriz entera M para la cual cada coeficiente corresponde a una celda de la hoja de
clculo.
EDLECR
Crea la matriz real M para la cual cada coeficiente corresponde a una celda de la hoja de cl-
culo
EDLECE
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.
EDTABI 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
EDTABR esta subrutina un ndice establece en que fila de la matriz creada se guardarn los valores de
las celdas.
EDIMEI
Escribe una variable escalar entera en una hoja de clculo en el formato de salida para varia-
bles enteras.
EDIMER
Escribe una variable escalar real en una hoja de clculo en el formato de salida para variables
reales.
EDIMPI
Escribe una matriz entera en una hoja de clculo en el formato de salida para variables ente-
ras.
EDIMPR Escribe una matriz real en una hoja de clculo en el formato de salida para variables reales.
EDLIMH 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
VPITER
Obtiene el primer vector propio y el primer valor propio mediante el mtodo de la iteracin
inversa.
VPJACK
Obtiene los vectores propios y los valores propios mediante el mtodo de Jacobi de un sistema
de ecuaciones homogneo sin matriz de masas.
VPJACO
Obtiene los vectores propios y los valores propios mediante el mtodo de Jacobi de un sistema
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 objetivo
NUNID2 Crea la matriz de funciones de forma de un elemento unidimensional lineal.
NUIND3 Crea la matriz de funciones de forma de un elemento unidimensional cuadrtico.
NTRIAN
Crea la matriz de funciones de forma de un elemento triangular lineal con un grado de libertad
por nudo.
NRECTA
Crea la matriz de funciones de forma de un elemento rectangular bilineal con un grado de
libertad por nudo.
NTRIEL
Crea la matriz de funciones de forma de un elemento triangular lineal para elasticidad bidi-
mensional u otro problema con dos grados de libertad por nudo.
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.
Tabla 2.7. Instrucciones para crear la matriz de funciones de forma de un elemento, indicadas en el mdulo
MdN

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


16 Captulo 2. Estructura y manejo del programa

rutina objetivo
BUNID2
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
unidimensional lineal en un problema de campo unidimensional.
BUNID3
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
unidimensional cuadrtico en un problema de campo unidimensional.
BTRIAN
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
triangular lineal con un grado de libertad por nudo.
BRECTA
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
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
KUNID2
Crea la matriz de rigidez de un elemento finito unidimensional lineal preparado para resolver
una ecuacin diferencial de campo unidimensional.
KUNID3
Crea la matriz de rigidez de un elemento finito unidimensional cuadrtico preparado para
resolver una ecuacin diferencial de campo unidimensional..
KTRIAN
Crea la matriz de rigidez de un elemento finito triangular lineal preparado para resolver la
ecuacin diferencial de campo bidimensional de Poisson.
KRECTA
Crea la matriz de rigidez de un elemento finito rectangular bilineal preparado para resolver la
ecuacin diferencial de campo bidimensional de Poisson.
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.
KRECEL
Crea la matriz de rigidez de un elemento finito rectangular bilineal de elasticidad para un ma-
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
CELAPL
Crea la matriz de constantes elsticas para un material de comportamiento lineal elstico is-
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 objetivo
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.
TRESP2
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
TRPRIN partir de las componentes de esfuerzo (o de deformaciones) en la base original en un espacio
bidimensional.
TRVMIS
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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 17

rutina objetivo
Crea el vector de trminos independientes de un elemento finito unidimensional lineal prepa-
FUNID2 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 prepa-
FUN2QL 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.
FTRIAN
Crea el vector de trminos independientes de un elemento finito triangular lineal preparado
para resolver la ecuacin diferencial de campo bidimensional de Poisson.
FRECTA
Crea el vector de trminos independientes de un elemento finito rectangular bilineal preparado
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 elastici-
dad.
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.
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 elasti-
cidad.
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 elastici-
dad.
Tabla 2.12. Instrucciones para crear el vector de fuerzas de un elemento, indicadas en el mdulo MdF

rutina objetivo
NGLNUD
Crea la matriz de grados de libertad por nudo a partir de la matriz indicadora de condiciones
de borde del problema.
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.
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.
Tabla 2.13. Instrucciones numerar grados de libertad, indicadas en el mdulo MdNGL

rutina objetivo
ENSAMK
Suma la contribucin de una matriz elemental a la matriz del sistema de acuerdo con la nume-
racin de los valores nodales o grados de libertad del elemento adicionado.
ENSAMV
Suma la contribucin de un vector elemental al vector del sistema de acuerdo con la numera-
cin de los valores nodales o grados de libertad del elemento adicionado.
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 grados de libertad del elemento.
ENSAMX
Suma un coeficiente especificado de una matriz elemental a los coeficientes de un vector del
sistema de acuerdo con la numeracin de los grados de libertad del elemento.
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.
Tabla 2.14. Instrucciones para ensamblar y extraer matrices, indicadas en los mdulos MdEN y MdEX

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


18 Captulo 2. Estructura y manejo del programa

rutina objetivo
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.
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.
ORSONO
Crea un vector de resultados nodales a partir de una matriz de resultados elementales calcula-
dos en los nudos de cada elemento.
ORSONM
Crea una matriz de resultados nodales por material a partir de una matriz de resultados ele-
mentales calculados en los nudos de cada elemento.
ORNUDE Crea una matriz o tabla que contiene en cada fila los elementos asociados a cada nudo.
ORNLIN
Construye una listado de los nudos que hacen parte de un segmento recto entre dos nudos
extremos definidos en la tabla de coordenadas.
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.
ORELIN
Construye una listado de los elementos cuyos lados hacen parte de un segmento definido por
dos nudos.
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.
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.
Tabla 2.15. Instrucciones de organizacin de matrices, indicadas en el mdulo MdOR

rutina objetivo
IOEXPR Permite exportar una matriz real existente a un archivo plano.
IOEXPI Permite exportar una matriz entera existente a un archivo plano.
IOEXPD Permite exportar un vector de datos enteros a un archivo plano en un formato definido.
IOELDR
Permite exportar una matriz real existente a un archivo plano en el formato indicado en la para
un paso de carga especfico.
IOEXPT Permite exportar una cadena de caracteres a la primera lnea de un archivo plano.
Tabla 2.16. Instrucciones para importar y exportar matrices, indicadas en el mdulo MdIO

rutina objetivo
GEMARE 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
ITRIAN
Crea el vector de contribucin interelemental de un elemento finito triangular lineal preparado
para resolver una ecuacin diferencial de campo bidimensional de Poisson.
IRECTA
Crea el vector de contribucin interelemental de un elemento finito rectangular bilineal prepa-
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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 19

rutina objetivo
PBDEMR Extrae el nmero de filas y de columnas de una matriz real existente.
PBDEMI Extrae el nmero de filas y de columnas de una matriz entera existente.
PBATRI Calcula el rea de un triangulo a partir de las coordenadas de sus extremos.
PBDIST
Calcula la distancia entre dos nudos en el espacio bidimensional a partir de la matriz o tabla de
coordenadas en los nudos.
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.
PBDIAG
Llena los coeficientes de la diagonal inferior de una matriz cuadrada a partir de los coeficien-
tes de la diagonal superior convirtindola en una matriz simtrica.
PBCOEL
Calcula cuatro factores de elasticidad para condicin plana de esfuerzos y plana de deforma-
ciones tiles en el clculo de la matriz de rigidez de los elementos de elasticidad plana.
PBREDO Redondea un escalar real segn el nmero de cifras significativas establecido.
PBDINU Calcula la distancia entre un nudo y un segmento recto definido por dos nudos.
PBPGAU
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

rutina objetivo
GRAFDE
Crea la matriz de parmetros grficos con los valores por defecto de cada uno de los coeficien-
tes.
GRAFIL Crea un archivo que contiene los parmetros grficos almacenados en un vector existente.
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.
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.
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el vec-
GRAFIF tor 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 vec-
GRAFIM tor de valores nodales, la cual es interpolada en el interior de los elementos finitos del mismo
material.
GRAFIE
Dibuja los resultados elementales de una cantidad o funcin de aproximacin definida por una
matriz de valores en el interior de cada elemento.
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.
GRATFI
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el vec-
tor 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
GRATFE vector de valores en los elementos durante varios pasos de carga (o de pseudo-tiempo en gene-
ral).
Tabla 2.20. Instrucciones grficas indicadas en el mdulo MdGR

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


20 Captulo 2. Estructura y manejo del programa

Observacin 2.1. El Editor de Visual Basic (VBE) incluido en Microsoft Office Ex-
cel permite visualizar y modificar las rutinas contenidas en los mdulos. Para ac-
tivar el VBE en Excel 2000 o 2003 seleccione el men: Herramien-
tasMacroEditor 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.

2.3. Capacidad del programa PEFiCA


El programa PEFiCA requiere para su funcionamiento un sistema operativo Microsoft Win-
dows XP o Microsoft Windows Vista, como tambin Microsoft Office Excel versin 2000,
2003 o 2007 previamente instalado.
La capacidad del programa esta determinada por el tamao mximo de la matriz de ri-
gidez del sistema. En general las matrices son arreglos de dos ndices enteros tipo Inte-
ger, cuyo tamao mximo es de 32,767. Sin embargo, la velocidad de clculo se reduce
fuertemente cuando se declaran matrices de gran tamao debido al espacio ocupado en la
memoria RAM o en la memoria virtual del disco duro, por ejemplo, una matriz de doble
precisin de 32,767 por 32,767 tiene un tamao de almacenamiento de 8.5 GB aproxima-
damente.
La Tabla 2.21 muestra los valores mximos para algunos problemas tpicos resueltos
con el mtodo de los elementos finitos.

Mximo de Mximo de
Tipo de problema
nudos elementos
Problema de campo unidimensional. 32,762 32,762
Problema de campo bidimensional: torsin pura en secciones
transversales, flujo potencial, infiltracin del agua en suelos, 32,762 32,762
transferencia de calor.
Anlisis mecnico bidimensional de slidos: estado plano de
16,381 32,762
esfuerzos y estado plano de deformaciones.
Anlisis estructural de armaduras bidimensionales. 16,381 32,762
Anlisis estructural de prticos bidimensionales. 10,920 32,762
Anlisis estructural de armaduras tridimensionales. 10,920 32,762
Anlisis estructural de prticos tridimensionales. 5,460 32,762
Anlisis estructural de placas planas delgadas. 10,920 32,762
Anlisis mecnico tridimensional de slidos. 10,920 32,762
Tabla 2.21. Capacidad del programa para problemas tpicos resueltos con el MEF

La lectura y presentacin de matrices esta limitada al nmero mximo de filas y de co-


lumnas de las hojas de clculo propio de la versin de Microsoft Excel que se est utilizan-
do.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 21

2.4. Instalacin y ejecucin del programa PEFiCA


A continuacin se indica (en primera persona), el procedimiento de instalacin del progra-
ma PEFiCA, para sistema operativo Windows XP y Microsoft Office Excel 2000 o 2003.

Seleccione el men InicioPanel de control, haga clic sobre el icono Configuracin


regional y de idioma. En la pestaa de Opciones regionales haga clic sobre el botn
Personalizar En la pestaa Nmeros modifique el smbolo decimal por el punto (.)
y modifique el separador de miles por un espacio (_), haga clic en el botn Aceptar de
la ventana de Personalizacin de configuracin regional, y haga clic en el botn
Aceptar de la ventana de Configuracin regional. El generador de grficos del pro-
grama PEFiCAgraf.exe y otros programas de ingeniera utilizan el punto como sepa-
rador decimal.

Abra Microsoft Office Excel, seleccione el men Herramientas Macro Seguridad,


en la pestaa Nivel de seguridad, seleccione Medio, y haga clic en el botn Aceptar.
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 ma-
cros no seguras provenientes de otros archivos.

Copie la carpeta PEFiCA\ en el lugar del disco duro donde se desea ubicar el progra-
ma. Esta carpeta contiene los archivos: PEFiCA.xls, PEFiCAGraf.exe, PEFi-
CA.pdf, y la carpeta \ejemplos\.

Abra el archivo PEFiCA.xls desde Microsoft Excel, aparecer la ventana Advertencia


de seguridad. Haga clic en el botn Habilitar macros. De esta forma el archivo
PEFiCA.xls dispondr de las rutinas que conforman el programa.

Para visualizar y modificar las rutinas de clculo, seleccione Herramien-


Macro
tas Editor de Visual Basic y despus seleccione Ver Explorador de proyec-
tos. Como lo indica la Figura 2.1, a la izquierda se presenta la ventana Proyecto-
VBAProyect que contiene una la lista de los mdulos del programa y a la derecha se
observan las lneas de cdigo de las rutinas de cada mdulo.

El proceso de instalacin del programa PEFiCA en computadores que cuentan con un


sistema operativo Windows Vista y Microsoft Office Excel 2007 es el siguiente:

Seleccione el men InicioPanel de control, haga doble clic sobre el icono de Op-
ciones regionales y de idioma, en la pestaa de Formatos haga clic en el botn Per-
sonalice este formato, en la pestaa Nmero modifique el smbolo decimal escri-
biendo el punto (.) y modifique el separador de miles por un espacio (_), finalmente,
haga clic en el botn Aceptar de la ventana Personalice este formato y haga clic en
Aceptar en la ventana Opciones regionales y de idioma. El generador de grficos

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


22 Captulo 2. Estructura y manejo del programa

del programa PEFiCAgraf.exe y otros programas de ingeniera utilizan el punto co-


mo 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 pesta-
a Centro de confianza, haga clic en el botn Configuracin del centro de confian-
za, seleccione la pestaa Configuracin de macros, haga clic en las cajas de verifica-
cin Deshabilitar todas las macros con notificacin y Confiar en el acceso al mode-
lo 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 ma-
cros no seguras provenientes de otros archivos.

Copie la carpeta PEFiCA\ en el lugar del disco duro donde se desea ubicar el progra-
ma. Esta carpeta contiene los archivos: PEFiCA.xls, PEFiCAGraf.exe, PEFi-
CA.pdf, y la carpeta \ejemplos\.

Abra el archivo PEFiCA.xls desde Microsoft Excel 2007, aparecer en la barra de ta-
reas el mensaje Advertencia de seguridad las macros se han deshabilitado y el bo-
tn 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 ru-
tinas que conforman el programa.

Si Microsoft Excel 2007 no incluye la ficha Programador en la cinta de opciones,


haga clic en el botn de Office, a continuacin haga clic en el botn Opciones de Ex-
cel, seleccione la pestaa Ms frecuentes, haga clic en la caja de verificacin Mostrar
ficha del Programador en la cinta de opciones y finalmente haga clic en el botn
Aceptar.

Para visualizar y modificar las rutinas de clculo, seleccione la ficha Programador de


la cinta de opciones y haga clic en el icono de Visual Basic. Como lo indica la
Figura 2.1, a la izquierda se presenta la ventana Proyecto-VBAProyect que contiene
una la lista de los mdulos del programa y a la derecha se observan las lneas de cdi-
go de las rutinas de cada mdulo.

Despus de la instalacin, se puede ejecutar el programa desde el Editor de Visual Ba-


sic, el cual es comn para Excel 2003 y 2007. Los siguientes pasos conducen a la ejecu-
cin de la rutina principal de clculo.

Haga doble clic sobre el mdulo Md en la ventana de Proyecto-VBAProyect, y en la


ventana a la derecha aparecer la rutina principal PEFiCA().

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 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).

Para ejecutar el programa, ubique el cursor en cualquier lnea de la rutina PEFiCA(), y


seleccione el men EjecutarEjecutar Sub/UserForm. La compilacin y la depura-
cin del programa se explicar en el siguiente apartado.

Observacin 2.2. Las rutinas sin argumentos escritas en los mdulos son macros
ejecutables en Microsoft Excel, como por ejemplo, la rutina principal PEFiCA() del
mdulo Md. El usuario debe escribir el procedimiento en la rutina principal PEFi-
CA() y ejecutar la macro de su mismo nombre.

Observacin 2.3. El contenido del men Ayuda del Editor de Visual Basic contiene
temas de ayuda relacionados con el lenguaje de programacin Visual Basic for Ap-
plications, en cambio, el men de ayuda ? en la Hoja de Clculo contiene los temas
relacionados con el manejo general de Excel.

2.5. Editor de Visual Basic


Microsoft Office Excel cuenta con un entorno del lenguaje Visual Basic for Applications
denominado Editor de Visual Basic (VBE), el cual permite compilar, depurar y ejecutar
rutinas o macros organizadas por mdulos (Figura 2.1).
El Editor de Visual Basic est conformado por un grupo de ventanas que contienen el
cdigo del programa, la lista de mdulos del mismo y la magnitud de las variables en tiem-
po de ejecucin. A continuacin se describen algunas de estas ventanas.

Ventana de cdigo: muestra las lneas de cdigo de un mdulo especfico. Se activa


seleccionando el men Ver Cdigo. El ttulo de la ventana indica el nombre del m-
dulo. Para ubicarse en una rutina especfica, se escoge el nombre de la misma en la
lista desplegable de la parte superior derecha de la ventana, como lo indica la Figura
2.2.

Explorador de proyectos: muestra una lista jerrquica de los elementos contenidos en


cada proyecto, principalmente los mdulos. Se activa seleccionando Ver
Explorador de proyectos. Corresponde a una ventana ubicada a la izquierda en el
VBE (Figura 2.1), que permite abrir la ventana de cdigo de un mdulo especfico
haciendo doble clic sobre l.

Ventana de inmediato: muestra la informacin que resulta de las instrucciones de de-


puracin en el cdigo o comandos escritos directamente en la ventana. Se activa se-
leccionando el men Ver Ventana inmediato. Puede utilizarse para visualizar la
evolucin del proceso de clculo mediante mensajes de texto.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


24 Captulo 2. Estructura y manejo del programa

rea de cdigo

explorador de
proyectos

ventana de
propiedades
del objeto ventana de inspeccin
de variables

Figura 2.1. Editor de Visual Basic.

Ventana de inspeccin: muestra la magnitud de un grupo de variables preestablecidas


Agregar inspeccin. Se activa seleccionando
por el usuario en el men Depuracin
el men VerVentana inspeccin en tiempo de ejecucin.

Ventana de variables locales: muestra la magnitud de todas las variables locales de la


subrutina en ejecucin. Se activa seleccionando el men Ver Ventana locales en
tiempo de ejecucin.

Ventana de propiedades: muestra la lista de propiedades de un objeto. En particular,


para los objetos tipo mdulo, permite ver y modificar el nombre del mdulo. Se ac-
tiva seleccionando el men VerVentana propiedades. En extremo inferior izquier-
do de la Figura 2.1.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 25

Figura 2.2. Editor de Visual Basic, ventana de cdigo.

Las herramientas de ejecucin y depuracin del cdigo permiten compilar, controlar,


corregir y ejecutar el cdigo del programa. A continuacin se indica algunas de estas fun-
ciones, ubicadas en la barra de herramientas de depuracin (Figura 2.3).

Interrumpir Paso a paso por Ventana de


ejecucin procedimientos inspeccin
Ventana de Pila de
Alternar punto
locales llamadas
Modo de diseo de interrupcin

Ejecutar rutina Paso a paso por Ventana de


instrucciones inmediato

Reestablecer Paso a paso Inspeccin


proyecto para salir rpida

Figura 2.3. Editor de Visual Basic, barra de herramientas de depuracin.

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.

Interrumpir ejecucin: suspende temporalmente la ejecucin de un programa mientras


est en la etapa de desarrollo. En el modo interrumpido, se puede examinar, depurar,
volver a configurar, incrementar o continuar la ejecucin. Se activa seleccionando el
men Ejecutar Interrumpir u oprimiendo simultneamente las teclas Ctrl+Pausa.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


26 Captulo 2. Estructura y manejo del programa

Restablecer proyecto: borra las variables de nivel de mdulo y pila de ejecucin, y


restablece el proyecto, es decir, aborta la ejecucin de la rutina y sale del modo de
ejecucin. Se activa seleccionando el men Ejecutar Restablecer.

Alternar punto de interrupcin: establece y retira un punto de interrupcin en la lnea


de comando donde est ubicado el cursor. Los puntos de interrupcin son lneas de
cdigo en las cuales la ejecucin del programa se detiene automticamente. Se activa
seleccionando el men Depuracin Alternar punto de interrupcin u oprimiendo las
tecla F9. La Figura 2.1 muestra en color marrn un punto de interrupcin.

Ejecutar paso a paso por instrucciones: ejecuta de forma secuencial una de las ins-
trucciones de la rutina actual. Permite correr una rutina completa ejecutando instruc-
cin 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 ins-
trucciones de la rutina actual. A diferencia del procedimiento anterior, cuando la ins-
truccin 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 ejecu-
tando 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 De-
puracin 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 lla-
mado a una instruccin activa en tiempo de ejecucin. Por ejemplo, cuando se pro-
duce 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 triangu-
lo verde a la izquierda de la lnea de cdigo que llam a la subrutina generadora del
error (paso 4).

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 27




Figura 2.4. Editor de Visual Basic, utilizacin de la pila de llamadas.

2.6. Etapas de clculo con el programa PEFiCA


Este apartado indica las etapas que el usuario debe realizar para solucionar un problema
especfico mediante el programa PEFiCA.

Etapa de pre proceso: Introducir los datos del problema en las hojas de clculo desig-
nadas para tal fin, describiendo la geometra de la malla de elementos finitos, las con-
diciones 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 instruc-
ciones preexistentes en el programa y las instrucciones propias del lenguaje de pro-
gramacin, 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.

Etapa de ejecucin del proceso: En el Editor de Visual Basic se depura, compila y


ejecuta la rutina principal PEFiCA() obteniendo la solucin del problema, como lo
ilustra la Figura 2.6(2).

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


28 Captulo 2. Estructura y manejo del programa

Etapa de post-proceso: Como parte del proceso de clculo se incluyen lneas de cdi-
go que presentan los resultados mediante matrices escritas en la hoja de salida habi-
tualmente 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

 

 

Figura 2.6. Etapas de clculo con el programa PEFiCA.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 29

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 trmi-
no de una matriz cualquiera A debe ser el A1,1 .

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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.

3.1. Tipos de datos


En el desarrollo del programa se han utilizado diferentes tipos de datos compatibles con
Visual Basic for Applications (VBA). Los parmetros de las instrucciones son variables
escalares o matriciales que contienen cadenas de caracteres, nmeros enteros o nmeros
reales.

3.1.1. Variables escalares


Las variables escalares almacenan un solo valor de tamao y caractersticas definidas en la
Tabla 3.1.
Las variables de cadena de caracteres tipo string deben escribirse entre comillas dobles
respetando las letras maysculas y minsculas; por ejemplo, si se desea indicar el nombre
de la hoja de clculo Hoja1 con una variable tipo string sta ser igual a Hoja1.
En todas las operaciones numricas las variables reales son declaradas de doble preci-
sin o tipo double, con el fin de evitar errores de redondeo. En cambio, las variables que
contienen numeracin de nudos, elementos, grados de libertad, condiciones de borde, etc.
se definen como enteras o tipo integer.

Tipo de Tamao
Descripcin Intervalo
datos almacenado
10 bytes +
cadena de
String longitud de desde 0 a 2E+09 de caracteres
caracteres
la cadena
Integer entero 2 bytes -32768 a 32767
para valores negativos:
real de
-1.79769313486E+306 a -4.94065645841E-324
Double doble pre- 8 bytes
para valores positivos:
cisin
4.94065645841E-324 a 1.79769313486E308
Tabla 3.1. Tipos de datos utilizados en el programa
32 Captulo 3. Tipos de datos, formatos y matrices

3.1.2. Variables matriciales o matrices


En general en los lenguajes de programacin, una matriz es el conjunto de elementos orde-
nados de forma secuencial denominados trminos o coeficientes, que tienen el mismo tipo
de datos y que estn definidos por una variable.
De igual forma como se establece en lgebra lineal, cada elemento de una matriz posee
una combinacin de ndices nico que lo identifica. Estos ndices son variables enteras
introducidas en la sintaxis de la variable matricial, es decir, el elemento M(I,J) de la varia-
ble M() corresponde al coeficiente mij de la matriz M, donde los ndices de la matriz I y J
son escalares enteros tipo integer.
Como lo indica el ejemplo presentado en la Figura 3.1, si se define la variable tipo ma-
triz real de doble precisin MX() de 2 filas por 2 columnas, el trmino MX(1,1) puede con-
tener un valor diferente al trmino MX(1,2) conservando el mismo tipo de dato (double en
este caso). A la izquierda se presentan las instrucciones de la ventana de cdigo en el editor
de Visual Basic for Applications y a la derecha se indica la matriz.

Cdigo en VBA Notacin matricial


Dim M() As Double
ReDim M(2, 2)
M(1, 1) = 0.5758 0.5758 0.9594
M=
0.1249 0.8963 2 2
M(1, 2) = 0.9594
M(2, 1) = 0.1249
M(2, 2) = 0.8963
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 ' matriz de tamao fijo


:
:
Dim I() as Integer ' matriz dinmica

Figura 3.2. Ejemplo de matriz de tamao fijo y matriz dinmica.

En cambio, una matriz cuyo tamao puede cambiar mientras el programa se est ejecu-
tando 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 ins-
truccin 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 tama-
o segn el tipo (Tabla 3.1).

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 33

Tanto el sistema operativo, como la cantidad de memoria disponible determinan el ta-


mao 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.

3.1.3. Variables especiales


En muchas ocasiones es necesario indicar la posicin de una celda dentro de una hoja de
clculo, con el fin convertir sus contenidos en matrices o viceversa. Microsoft Excel de-
signa numricamente a las filas y alfabticamente a las columnas, sin embargo, el programa
utiliza nmeros de forma secuencial para definir tanto filas como columnas.
La designacin alfabtica de las columnas en la hoja de clculo se transforma en num-
rica para especificar la posicin de las celdas en el programa; por ejemplo, la celda C20 en
la hoja de clculo estara ubicada en la fila POSF=20 y en la columna POSC=3, como se
muestra en la Figura 3.3.

POSC = 3

columna 1 columna 2 columna 3

POSF = 20

Figura 3.3. Designacin numrica las filas y las columnas en la posicin de una celda.

3.2. Formatos de salida


Parte de la informacin obtenida en el procedimiento de clculo puede presentarse median-
te matrices o tablas. A continuacin se ilustra los formatos establecidos en el programa
para mostrar datos en una hoja de clculo.
Los resultados preliminares del proceso pueden escribirse en cualquier hoja de clculo,
sin embargo se recomienda utilizar una sola hoja para tal fin. En este documento la hoja
de resultados de denomina TB_OUT.
Las instrucciones de presentacin de resultados como EDIMER, EDIMEI, EDIMPR y
EDIMPI escriben los coeficientes de una matriz especificada con un formato especial. La
Figura 3.4 y la Figura 3.5 muestran dicho formato el cual tiene las siguientes caractersti-
cas:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


34 Captulo 3. Tipos de datos, formatos y matrices

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 co-
lor rojo y los coeficientes iguales a cero en color negro.

Los coeficientes de matrices reales se escriben en notacin cientfica con formato


0.0000E+00. En cambio, los coeficientes de matrices enteras se representan con
formato 000, como se indica en la Tabla 3.2.

Tipo de Formato numrico


datos positivos cero negativos
Entera 010 000 -010

Real 1.52340E+01 0.0000E+00 -1.52340E+01


Tabla 3.2. Ejemplos de los formatos de salida

Rtulos indicadores de
Tamao de matriz columnas de la matriz

Ttulo de matriz

Rtulos indicadores
de filas de la matriz
Coeficiente
entero cero

Coeficiente
entero positivo

Matriz de trminos enteros

Figura 3.4. Formato de salida de matrices con trminos enteros

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 35

Rtulos indicadores de
Tamao de matriz 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

Figura 3.5. Formato de salida de matrices con trminos reales

3.3. Presentacin de resultados de forma secuencial en una hoja de


clculo
El programa utiliza las hojas de clculo para leer los datos de entrada y para escribir los
resultados del problema. Con respecto a este ltimo, las instrucciones EDIMER, EDIMEI,
EDIMPR y EDIMPI escriben escalares y matrices en una posicin especfica dentro de una
hoja de clculo.
Con el fin de presentar las matrices resultantes, una despus de la otra, sin que se so-
brescriban y sin dejar grandes espacios, se realiza el siguiente procedimiento en la rutina
principal PEFiCA():

Con anterioridad se crea la hoja de clculo para presentar los resultados o hoja de sa-
lida. 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.

Se establece la posicin inicial en la hoja de clculo asignando el valor de FILA y


COLM, por ejemplo las lneas de cdigo FILA=2 : COLM=1 establecen que la primera
matriz escrita ubicar a partir de la segunda fila y de la primera columna de la hoja de
salida.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


36 Captulo 3. Tipos de datos, formatos y matrices

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. Algu-
nos 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 co-
rresponder a las variables FILA y COLM.

Como se describe en el Captulo 4, el parmetro POSF se modifica en el interior de las


instrucciones de escritura de matrices. El valor de entrada a la subrutina de POSF co-
rresponde al nmero de la fila de la celda donde se desea escribir el primer trmino de
la matriz M11, en cambio, su valor de salida de la subrutina es igual a la suma entre su
valor de entrada, el nmero de filas de la matriz y 3, evitando as la superposicin en-
tre resultados.

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 matri-
ces 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-
neas correspondientes a la presentacin de resultados en una hoja de salida.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 37

Figura 3.7. Contenido de la hoja de salida TB_OUT despus de ejecutar la rutina PEFiCA.

3.4. Matrices especiales


La formulacin matricial que enmarca el mtodo de los elementos finitos permite identifi-
car algunas matrices caractersticas necesarias en el anlisis. En las secciones siguientes se
describen dichas matrices.

3.4.1. Matrices o tablas de la topologa de la malla de elementos finitos


La malla de elementos finitos est constitutita por un grupo de elementos conectados entre
s por nudos. En el programa, cada nudo tiene un cdigo identificador o simplemente
identificador que corresponde a un nmero entero entre 1 y el total de nudos de la malla.
Asimismo, cada elemento se define con un identificador entero entre 1 y el total de elemen-
tos finitos. En la Figura 3.8 se muestra una malla de 9 nudos, 4 elementos finitos rectangu-
lares bilineales y 2 grados de libertad por nudo.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


38 Captulo 3. Tipos de datos, formatos y matrices

(04) (09) (14)


(03) (08) (13) notacin
03 06 09
vm vk
02 04 # grado de magnitud de un um
(02) (07) (12) libertad g.l. conocido
(01) (06) (11) m k
(11)=2.4
02 05 08 (e)
(10) vi vj
01 03 ui uj
07 # nudo
(17)=0 (16)=0 (15)=0
(18)=0 (05) (10) i j

01 04 07

Figura 3.8. Ejemplo de una malla de elementos finitos.

En la figura, los grados de libertad desconocidos estn numerados del 1 al 14 y los co-
nocidos 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 ] (3.1)
T T
= [15 16 17 18 ] = [0 0 0 0]
Como parte de la programacin del mtodo son esenciales las matrices o tablas que des-
criban la geometra y las condiciones de borde de la malla de elementos finitos. A conti-
nuacin 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 co-
rresponde a la dimensin del problema. La Figura 3.9 indica la matriz de coordena-
das de los 9 nudos del ejemplo bidimensional ilustrado en la Figura 3.8.

coordenada
nudo en x en y

Figura 3.9. Matriz o tabla de coordenadas de los nudos.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 39

Matriz de elementos o tabla de conectividades. Matriz entera que contiene los cdi-
gos identificadores de los nudos asociados a cada elemento finito. Una fila de la ma-
triz presenta la informacin de un elemento finito y cada columna contiene el identifi-
cador 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 ma-
triz 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) inexis-
tente(s) de los elementos finitos con menor cantidad de nudos.

Identificador del nudo del elemento


elem nudo i nudo j nudo k nudo m

Figura 3.10. Matriz o tabla de elementos.

Matriz o tabla indicadora de condiciones de borde. Matriz indicadora de los valores


nodales o grados de libertad conocidos que establecen las condiciones de borde de Di-
richlet o naturales (Hughes 2000). Si un coeficiente de esta matriz es igual a uno
(001), est indicando que el grado de libertad que representa es conocido. En cam-
bio, si el coeficiente es igual a cero (000), establece que el grado de libertad es desco-
nocido. Para el ejemplo presentado en esta seccin, la Figura 3.11 muestra la tabla
indicadora de las condiciones de borde.

g.l. conocido = 001


nudo en x en y g.l. desconocido = 000

Identificador de grado
de libertad conocido

Identificador de grado
de libertad desconocido

Figura 3.11. Matriz o tabla indicadora de condiciones de borde.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


40 Captulo 3. Tipos de datos, formatos y matrices

Matriz o tabla de grados de libertad por nudo. Matriz entera que contiene el identi-
ficador de los valores nodales o grados de libertad de cada uno de los nudos de la ma-
lla. Cada fila contiene la informacin de un nudo y cada columna presenta el identi-
ficador 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 corres-
ponde 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 alma-
cena 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 coefi-
ciente 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.

Identificador del g.l.


nudo en x en y

Figura 3.12. Matriz o tabla de grados de libertad por 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 ele-
mento 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 indepen-
dientes. 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 41

Identificador del grado de libertad del elemento

elem # ui # vi # uj # vj # uk # vk # um # vm

Figura 3.13. Matriz de incidencias.

3.4.2. Matrices o tablas de fuerzas y desplazamientos aplicados


En problemas de elasticidad, las fuerzas y desplazamientos impuestos a la estructura se
organizan en matrices o tablas especiales de acuerdo con la numeracin de los nudos, de los
elementos o de los grados de libertad. A continuacin se indican las matrices ms comu-
nes:

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 tan-
to, 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 pre-
sentado 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 previa-
mente 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 instruc-
ciones ORFUGL y ORGLFU descritas en el Captulo 16.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


42 Captulo 3. Tipos de datos, formatos y matrices

fuerza nodal FY FY=4.8 FY=2.4 FY=1.2


FX FX=1.5 FX=2.3 FX=-1.6
nudo en x en y
02 03 07 10

FY FY FY FY
FX FX FX FX

08 09 11 12

FY FY FY FY
FX FX FX FX

01 04 05 06

notacin malla de
componente magnitud de elementos
de la fuerza la fuerza
finitos
Matriz o tabla de fuerzas nodales FY=2.4
ordenada de acuerdo con la FX=2.3
numeracin de los nudos 07 # nudo

Figura 3.14. Matriz o tabla de fuerzas organizadas por nudo.

Matriz o tabla de desplazamientos organizados por nudo. Tabla que contiene en ca-
da 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).

Vector o tabla de desplazamientos organizados por grados de libertad. Vector que


contiene la magnitud de los desplazamientos nodales organizados de acuerdo con la
numeracin previamente asignada a los grados de libertad. Este vector se obtiene al
plantear el equilibrio del slido con sus condiciones de borde. Tiene las mismas ca-
ractersticas de la tabla de fuerzas organizadas por grados de libertad (Figura 3.15).

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 distri-
buidas 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 con-
tienen las componentes en las direcciones x y y respectivamente, de la fuerza por uni-
dad 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 sex-
ta 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 cal-
cular 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


PEFiCA Programa de elementos finitos a cdigo abierto 43

accin de una presin aplicada sobre un lado del elemento mediante las instrucciones
FTRIES y FRECES.

grado de fuerza
libertad nodal

Vector de fuerzas
nodales ordenadas
segn la numeracin notacin
de los grados de # grado de magnitud de
libertad libertad la fuerza

F(11)=2.4
F(10)=2.3
07 # nudo

F(01) F(03)=4.8 F(11)=2.4 F(17)=1.2


F(00) F(02)=1.5 F(10)=2.3 F(16)=-1.6

02 03 07 10

F(13) F(15) F(19) F(21)


F(12) F(14) F(18) F(20)

08 09 11 12

F(00) F(05) F(07) F(09)


F(00) F(04) F(06) F(08)

01 04 05 06

malla de
elementos finitos
Figura 3.15. Matriz o tabla de fuerzas organizadas por grados de libertad.

fuerza msica presin en un lado


elemento en x en y 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 especfi-
ca. 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 Tipo de variable Descripcin


String (cadena de Hoja de clculo que contiene las celdas que confor-
HOJA
caracteres) marn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
POSF Integer (entero) la celda correspondiente al coeficiente m11 de la ma-
triz creada.
Nmero de la columna en la hoja de clculo donde se
POSC Integer (entero) ubica la celda correspondiente al coeficiente m11 de la
matriz creada.
MX() Integer (entero) Matriz creada M.
NF Integer (entero) Nmero de filas de la matriz M.
NC Integer (entero) Nmero de columnas de la matriz M.
Tabla 4.1. Sintaxis de la instruccin EDLECI.
46 Captulo 4. Instrucciones de edicin de matrices

La designacin alfabtica de las columnas en la hoja de clculo se transforma en num-


rica 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 coeficien-
tes 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 NC = 4
POSC = 1

fila 13 NF = 2
fila 14
fila 15

HOJA = Hoja1

Figura 4.1. Parmetros de la instruccin EDLECI.

La lnea de comando utilizada es:

EDLECI Hoja1, 14, 1, MI(), 2, 4

Como resultado la matriz MI() tendr los siguientes coeficientes:

MI() (2x4)
C1 C2 C3 C4
F1 000 001 002 003
F2 004 005 006 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 47

EDLECR HOJA, POSF, POSC, MX(), NF, NC

Argumento Tipo de variable Descripcin


String (cadena de Hoja de clculo que contiene las celdas que confor-
HOJA
caracteres) marn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
POSF Integer (entero) la celda correspondiente al coeficiente m11 de la ma-
triz creada.
Nmero de la columna en la hoja de clculo donde se
POSC Integer (entero) ubica la celda correspondiente al coeficiente m11 de la
matriz creada.
MX() Double (real) Matriz creada M.
NF Integer (entero) Nmero de filas de la matriz M.
NC Integer (entero) Nmero de columnas de la matriz M.
Tabla 4.2. Sintaxis de la instruccin EDLECR.

Como se puede observar, que esta instruccin tiene un objetivo similar al de la instruc-
cin 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 coeficien-
tes estn en la hoja de clculo TB_XYZ; especficamente, el trmino (1,1) correspon-
de a la celda B5 como lo indica la Figura 4.2.

columna 2
columna 1 columna 3
POSF = 5 NC = 2
POSC = 2

fila 5
fila 6 NF = 6
fila 7

HOJA = TB_XYZ
Figura 4.2. Parmetros de la instruccin EDLECR.

La lnea de comando utilizada es:

EDLECR TB_XYZ, 5, 2, XY(), 6, 2

Como resultado la matriz XY() tendr los siguientes coeficientes:

XY() (6x2)
C1 C2
F1 4.0000E+00 0.0000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


48 Captulo 4. Instrucciones de edicin de matrices

F2 5.0000E-01 0.0000E+00
F3 3.5000E+00 0.0000E+00
F4 3.0000E+00 0.0000E+00
F5 2.5000E+00 0.0000E+00
F6 2.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 Tipo de variable Descripcin


String (cadena de Hoja de clculo que contiene la celda que se desea
HOJA
caracteres) capturar.
Nmero de la fila en la hoja de clculo que identifica
POSF Integer (entero)
a la celda.
Nmero de la columna en la hoja de clculo que iden-
POSC Integer (entero)
tifica a la celda.
Integer (entero) o
ESC Variable escalar donde se guarda el valor de la celda.
Double (real)
Tabla 4.3. Sintaxis de la instruccin EDLECE.

Ejemplo 4.3 Guardar en la variable YOUN el valor de la celda B12 de la hoja de


clculo TB_GEN como lo indica la Figura 4.1.

columna 1 columna 2

POSF = 12
POSC = 2
fila 12
fila 13
fila 14

HOJA = TB_GEN

Figura 4.3. Parmetros de la instruccin EDLECE.

La lnea de comando utilizada es:

EDLECE Hoja1, 12, 2, YOUN

Como resultado la variable real YOUN=2.0000E+05.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 49

4.4. EDTABI
Construye una matriz entera a partir de un bloque de celdas de una hoja de clculo especfi-
ca. 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 especi-
ficados 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 Tipo de variable Descripcin


String (cadena de Hoja de clculo que contiene las celdas que confor-
HOJA
caracteres) marn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
POSF Integer (entero) 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
POSC Integer (entero)
matriz creada. La columna POSC-1 debe contener el
ndice i correspondiente.
MX() Integer (entero) Matriz creada M.
NF Integer (entero) Nmero de filas de la matriz M.
NC Integer (entero) Nmero de columnas de la matriz M.
Tabla 4.4. Sintaxis de la instruccin EDTABI.

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 indi-
ca en la hoja de clculo TB_RES de la siguiente figura.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


50 Captulo 4. Instrucciones de edicin de matrices

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
POSF = 5
m12=001

fila 5 de coeficientes
la matriz de la matriz
HOJA = TB_RES m51=000
m52=001
Figura 4.4. Parmetros de la instruccin EDTABI.

La lnea de comando utilizada es:

EDTABI "TB_RES", 5, 2, MRE(), NNUD, NGLN

Como resultado la matriz MRE() tendr los siguientes coeficientes:

MRE() (10x2)
C1 C2
F1 001 001
F2 000 000
F3 000 000
F4 000 000
F5 000 001
F6 000 000
F7 000 000
F8 000 000
F9 000 000
F10 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 especifica-
dos 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 51

EDTABR HOJA, POSF, POSC, MX(), NF, NC

Argumento Tipo de variable Descripcin


String (cadena de Hoja de clculo que contiene las celdas que confor-
HOJA
caracteres) marn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
POSF Integer (entero) 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
POSC Integer (entero)
matriz creada. La columna POSC-1 debe contener el
ndice i correspondiente.
MX() Double (real) Matriz creada M.
NF Integer (entero) Nmero de filas de la matriz M.
NC Integer (entero) Nmero de columnas de la matriz M.
Tabla 4.5. Sintaxis de la instruccin EDTABR.

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 m31=1.500
la matriz m32=4.800

POSF = 5 coeficientes
de la matriz
m71=2.300
fila 7 de
m72=2.400
la matriz

fila 10 de coeficientes
la matriz de la matriz
HOJA = TB_FUN
m10,1=-1.600
m10,2=1.200
Figura 4.5. Parmetros de la instruccin EDTABR.

La lnea de comando utilizada es:

EDTABR "TB_FUN", 5, 2, MFN(), NNUD, NGLN

Como resultado la matriz MFN() tendr los siguientes coeficientes:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


52 Captulo 4. Instrucciones de edicin de matrices

MFN() (12x2)
C1 C2
F1 0.0000E+00 0.0000E+00
F2 0.0000E+00 0.0000E+00
F3 1.5000E+00 4.8000E+00
F4 0.0000E+00 0.0000E+00
F5 0.0000E+00 0.0000E+00
F6 0.0000E+00 0.0000E+00
F7 2.3000E+00 2.4000E+00
F8 0.0000E+00 0.0000E+00
F9 0.0000E+00 0.0000E+00
F10 -1.6000E+00 1.2000E+00
F11 0.0000E+00 0.0000E+00
F12 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 va-
riables 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 Tipo de variable Descripcin


String (cadena de
HOJA Hoja de clculo donde se escribir la variable ESC.
caracteres)
String (cadena de Rotulo relacionado con la variable que ser escrito en
MXLB
caracteres) 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 la varia-
POSF Integer (entero) ble ESC. Este parmetro debe ser mayor que 2.
Como variable de salida corresponde al parmetro
de entrada POSF ms 3.
Nmero de columna de la celda donde se desea ubicar
POSC Integer (entero)
la variable ESC.
ESC Integer (entero) Variable escalar entera que se desea escribir.
Tabla 4.6. Sintaxis de la instruccin EDIMEI.

Ejemplo 4.6 Escribir en la celda B870 de la hoja de clculo TB_OUT, la variable


entera escalar ESC = 18 mediante la instruccin:

EDIMEI "TB_OUT", "BAND", FILA, COLM, BAND

donde FILA=870 y COLM=2. El resultado se presenta en la siguiente figura:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 53

POSC = 2
MXLB = BAND
tamao de la matriz

POSF-1 rotulo y tamao de matriz


POSF ESC
POSF+1 lnea en blanco
POSF+3

HOJA = TB_OUT
Figura 4.6. Parmetros de la instruccin EDIMEI.

4.7. EDIMER
Escribe una variable escalar real en una hoja de clculo en el formato de salida para varia-
bles 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 Tipo de variable Descripcin


String (cadena de
HOJA Hoja de clculo donde se escribir la variable ESC.
caracteres)
String (cadena de Rotulo relacionado con la variable que ser escrito en
MXLB
caracteres) 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 la varia-
POSF Integer (entero) ble ESC. Este parmetro debe ser mayor que 2.
Como variable de salida corresponde al parmetro
de entrada POSF ms 3.
Nmero de columna de la celda donde se desea ubicar
POSC Integer (entero)
la variable ESC.
ESC Double (real) Variable escalar entera que se desea escribir.
Tabla 4.7. Sintaxis de la instruccin EDIMER.

Ejemplo 4.7 Escribir en la celda B880 de la hoja de clculo TB_OUT, la variable


real escalar ESC = 2020 mediante la instruccin:

EDIMER "TB_OUT", "determinante", FILA, COLM, ESC

donde FILA=880 y COLM=2. El resultado se presenta en la siguiente figura:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


54 Captulo 4. Instrucciones de edicin de matrices

POSC = 2
MXLB = determinante
tamao de la matriz

POSF-1
POSF ESC
POSF+1 lnea en blanco
POSF+3

HOJA = TB_OUT
Figura 4.7. Parmetros de la instruccin EDIMER.

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 Tipo de variable Descripcin


String (cadena de
HOJA Hoja de clculo donde se escribir la variable ESC.
caracteres)
String (cadena de Rotulo relacionado con la variable que ser escrito en
MXLB
caracteres) 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 trmi-
no m1,1 de la matriz M. Este parmetro debe ser
POSF Integer (entero) mayor que 2.
Como variable de salida corresponde al parmetro
de entrada POSF ms el nmero de filas de la ma-
triz M y ms 3.
Nmero de columna de la celda donde se desea ubicar
POSC Integer (entero)
la variable ESC.
MX() Integer (entero) Matriz entera que se desea escribir M.
Si TP=0 presenta todas las columnas de una matriz
Optional Integer en el ancho de la hoja de clculo (por defecto).
TP (argumento opcional Si TP=1 establece una presentacin de 6 columnas
tipo entero) como mximo para impresin en papel tamao
carta.
Tabla 4.8. Sintaxis de la instruccin EDIMPI.

Ejemplo 4.8 Escribir la matriz ELE() de 6 filas y 4 columnas en la hoja de clcu-


lo TB_OUT, mediante la instruccin:

EDIMPI "TB_OUT", "ELE()", FILA, COLM, ELE()

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 55

rotulo de la matriz POSC = 2 donde FILA=977 y COLM=2. El


MXLB = ELE() tamao de la matriz rotulo de columnas

POSF-1
POSF
POSF+1

rotulo de filas
POSF+NF+1

POSF+NF+3
resultado se
presenta en la si-
guiente figura:

HOJA = TB_OUT trminos de la matriz


Figura 4.8. Parmetros de la instruccin EDIMPI.

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 Tipo de variable Descripcin


String (cadena de
HOJA Hoja de clculo donde se escribir la variable ESC.
caracteres)
String (cadena de Rotulo relacionado con la variable que ser escrito en la fila
MXLB
caracteres) 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
POSF Integer (entero) M. Este parmetro debe ser mayor que 2.
Como variable de salida corresponde al parmetro de en-
trada POSF ms el nmero de filas de la matriz M y ms 3.
Nmero de columna de la celda donde se desea ubicar la va-
POSC Integer (entero)
riable ESC.
MX() Double(real) Matriz entera que se desea escribir.
Si TP=0 presenta todas las columnas de una matriz en el
Optional Integer
ancho de la hoja de clculo (por defecto).
TP (argumento opcional
tipo entero) Si TP=1 establece una presentacin de 6 columnas como
mximo para impresin en papel tamao carta.
Tabla 4.9. Sintaxis de la instruccin EDIMPR.

Ejemplo 4.9 Escribir la matriz XYZ() de 12 filas y 2 columnas en la hoja de cl-


culo TB_OUT, mediante la instruccin:

EDIMPR "TB_OUT", "XYZ()", FILA, COLM, XYZ()

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


56 Captulo 4. Instrucciones de edicin de matrices

donde FILA=977 y COLM=2. El resultado se presenta en la siguiente figura:

rotulo de la matriz POSC = 2


MXLB = XYZ() 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

Figura 4.9. Parmetros de la instruccin EDIMPR.

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 Tipo de variable Descripcin


String (cadena de
HOJA 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"

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 nme-
ro real c como se indica en la siguiente ecuacin:
1 1 L 1
1 1
M = c (5.1)
M M

1 1 L 1 n n
f c

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

MTCONS MX(), C, NF, NC

Argumento Tipo de variable Descripcin


MX() Double (real) Matriz creada M.
C Double (real) Valor de los coeficientes de la matriz M.
NF Integer (entero) Nmero de filas de la matriz M.
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

La matriz resultante puede visualizarse en la hoja de clculo TB_OUT, mediante la


instruccin EDIMPR obteniendo:
58 Captulo 5. Instrucciones de operaciones matriciales bsicas

MX() (2x6)
C1 C2 C3 C4 C5 C6
F1 2.5000E+00 2.5000E+00 2.5000E+00 2.5000E+00 2.5000E+00 2.5000E+00
F2 2.5000E+00 2.5000E+00 2.5000E+00 2.5000E+00 2.5000E+00 2.5000E+00

5.2. MTCONI
Crea una matriz M de nf filas por nc columnas, cuyos coeficientes corresponden a un nme-
ro 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.
C Integer (entero) Valor de los coeficientes de la matriz M.
NF Integer (entero) Nmero de filas de la matriz M.
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 L m p f , p c + n c 1
c
f c

dado M = M M S= M M (5.2)
m L mn f nc m L m p f + n f 1, p c + nc 1
n f 1 n f nc p f + n f 1, p c n f nc

Por lo tanto, la posicin del primer coeficiente de la matriz M que conforma la subma-
triz 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 59

MTSUBM MX(), MS(), POSF, POSC, NF, NC

Argumento Tipo de variable Descripcin


MX() Double (real) Matriz existente M.
MS() Double (real) Matriz creada S.
Fila de la matriz M que define la posicin del termino
POSF Integer (entero)
s11 de la submatriz S.
Columna de la matriz M que define la posicin del
POSC Integer (entero)
termino s11 de la submatriz S.
NF Integer (entero) 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 coefi-
ciente MX(2,1) de la matriz existente MX() definida como:

MX() (6x6)
C1 C2 C3 C4 C5 C6
F1 5.2267E+04 2.0000E+04 -1.2267E+04 -4.0000E+03 -2.6133E+04 -2.0000E+04
F2 2.0000E+04 8.0711E+04 4.0000E+03 2.5956E+04 -2.0000E+04 -4.0356E+04
F3 -1.2267E+04 4.0000E+03 5.2267E+04 -2.0000E+04 -1.3867E+04 -4.0000E+03
F4 -4.0000E+03 2.5956E+04 -2.0000E+04 8.0711E+04 4.0000E+03 -6.6311E+04
F5 -2.6133E+04 -2.0000E+04 -1.3867E+04 4.0000E+03 5.2267E+04 2.0000E+04
F6 -2.0000E+04 -4.0356E+04 -4.0000E+03 -6.6311E+04 2.0000E+04 8.0711E+04

Para obtener el resultado esperado se debe escribir la siguiente lnea de comando:

MTSUBM MX(), MS(), 2, 1, 3, 4

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 re-
sultado de est instruccin es la matriz MS() indicada a continuacin:

MS() (3x4)
C1 C2 C3 C4
F1 2.0000E+04 8.0711E+04 4.0000E+03 2.5956E+04
F2 -1.2267E+04 4.0000E+03 5.2267E+04 -2.0000E+04
F3 -4.0000E+03 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 expre-
sados como:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


60 Captulo 5. Instrucciones de operaciones matriciales bsicas

s11 t11

s= M , t= M (5.3)
s t
n f 1 n f 1 n f n f 1

El vector creado x de nf + nf filas contiene el vector s a partir de la primera fila y el vector


t a partir de la fila nf + 1 , as:
s11
M

s sn 1
x= x= f (5.4)
t t11
M

t n f
n f 1

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

MTADJU MX(), MS(), MT()

Argumento Tipo de variable Descripcin


MX() Double (real) Vector columna creado x.
MS() Double (real) Primer subvector columna existente s.
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() (3x1)


C1 C1
F1 -4.6505E-01 F1 -2.3153E-06
F2 -7.9349E-03 F2 5.4164E-07
F3 2.7165E-01 F3 3.3956E-06

Escribiendo la lnea de comando:

MTADJU MX(), MS(), MT()

se obtiene el vector MX() presentado a continuacin:

MX() (6x1)
C1
F1 -4.6505E-01
F2 -7.9349E-03
F3 2.7165E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 61

F4 -2.3153E-06
F5 5.4164E-07
F6 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 (5.5)
sn ,1 L sn , n tn ,1 L t n , n
fs fs cs ft ft ct

Caso 1. Si se adjunta la matriz T despus de la ltima fila 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
M M

S sn ,1 L sn fs , ncs
X = X = fs (5.6)
T t11 L t1, nct
M M

tn ft ,1 L tn ft , nct

Caso 2. Si se adjunta la matriz T despus de la ltima columna de la matriz S, se ob-


tiene la matriz X de n fs = n ft filas y ncs + nct columnas de la forma:
s11 L s1, ncs t11 L t1, nct

X = [S T] X = M M M M (5.7)
sn ,1 L sn , n tn ft ,1 L t n ft , nct
fs fs cs

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


62 Captulo 5. Instrucciones de operaciones matriciales bsicas

MTADMR MX(), MS(), MT(), TP

Argumento Tipo de variable Descripcin


MX() Double (real) Matriz creada X.
MS() Double (real) Primera submatriz existente S.
MS() Double (real) Segunda submatriz existente T.
Identificador del tipo de operacin.
Optional Integer (ar- Si TP=1 Caso 1: adjunta T despus de la ltima
TP gumento opcional tipo fila de S.
entero) Si TP=2 Caso 2: adjunta T despus de la ltima
columna de S.
Tabla 5.5. Sintaxis de la instruccin MTADMR.

Ejemplo 5.4 Construir la matriz MX()a partir de las submatrices existentes KGL()
y MAS() definidas como:

KGL() (4x4)
C1 C2 C3 C4
F1 2.0000E+00 -1.0000E+00 0.0000E+00 0.0000E+00
F2 -1.0000E+00 2.0000E+00 -1.0000E+00 0.0000E+00
F3 0.0000E+00 -1.0000E+00 2.0000E+00 -1.0000E+00
F4 0.0000E+00 0.0000E+00 -1.0000E+00 1.0000E+00

MAS() (4x4)
C1 C2 C3 C4
F1 4.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F2 0.0000E+00 2.0000E+00 0.0000E+00 0.0000E+00
F3 0.0000E+00 0.0000E+00 8.0000E+00 0.0000E+00
F4 0.0000E+00 0.0000E+00 0.0000E+00 1.0000E+00

Caso 1: escribiendo la lnea de comando:

MTADMR MX(), KGL(), MAS(), 1

se obtiene la matriz MX() presentada a continuacin:

MX() (8x4)
C1 C2 C3 C4
F1 2.0000E+00 -1.0000E+00 0.0000E+00 0.0000E+00
F2 -1.0000E+00 2.0000E+00 -1.0000E+00 0.0000E+00
F3 0.0000E+00 -1.0000E+00 2.0000E+00 -1.0000E+00
F4 0.0000E+00 0.0000E+00 -1.0000E+00 1.0000E+00
F5 4.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F6 0.0000E+00 2.0000E+00 0.0000E+00 0.0000E+00
F7 0.0000E+00 0.0000E+00 8.0000E+00 0.0000E+00
F8 0.0000E+00 0.0000E+00 0.0000E+00 1.0000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 63

Caso 2: escribiendo la lnea de comando:

MTADMR MX(), KGL(), MAS(), 2

se obtiene la matriz MX() presentada a continuacin:

MX() (4x8)
C1 C2 C3 C4 C5 C6
F1 2.0000E+00 -1.0000E+00 0.0000E+00 0.0000E+00 4.0000E+00 0.0000E+00
F2 -1.0000E+00 2.0000E+00 -1.0000E+00 0.0000E+00 0.0000E+00 2.0000E+00
F3 0.0000E+00 -1.0000E+00 2.0000E+00 -1.0000E+00 0.0000E+00 0.0000E+00
F4 0.0000E+00 0.0000E+00 -1.0000E+00 1.0000E+00 0.0000E+00 0.0000E+00

C7 C8
F1 0.0000E+00 0.0000E+00
F2 0.0000E+00 0.0000E+00
F3 8.0000E+00 0.0000E+00
F4 0.0000E+00 1.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 pre-
sentan a continuacin.

MTADMI MX(), MS(), MT(), TP

Argumento Tipo de variable Descripcin


MX() Integer (entero) Matriz creada X.
MS() Integer (entero) Primera submatriz existente S.
MS() Integer (entero) Segunda submatriz existente T.
Identificador del tipo de operacin.
Optional Integer (ar-
Si TP=1 Caso 1: adjunta T despus de la ltima fila de S.
TP gumento opcional tipo
entero) Si TP=2 Caso 2: adjunta T despus de la ltima columna
de S.
Tabla 5.6. Sintaxis de la instruccin MTADMI.

5.7. MTTRAN
Calcula la matriz transpuesta de la matriz existente M, creando la matriz T, donde:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


64 Captulo 5. Instrucciones de operaciones matriciales bsicas

m11 L m1n m11 L mnc 1


c

M= M M T = MT = M M (5.8)
m L mn f nc m L mnc n f
n f 1 n f nc 1n f nc n f

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

MTTRAN MX(), MT()

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.

Ejemplo 5.5 Dada la matriz MX()de coeficientes:

MX() (3x4)
C1 C2 C3 C4
F1 2.0000E+04 8.0711E+04 4.0000E+03 2.5956E+04
F2 -1.2267E+04 4.0000E+03 5.2267E+04 -2.0000E+04
F3 -4.0000E+03 2.5956E+04 -2.0000E+04 8.0711E+04

su matriz transpuesta se calcula con la siguiente instruccin:

MTTRAN MX(), MT()

de donde se obtiene la matriz MT() presentada a continuacin:

MT() (4x3)
C1 C2 C3
F1 2.0000E+04 -1.2267E+04 -4.0000E+03
F2 8.0711E+04 4.0000E+03 2.5956E+04
F3 4.0000E+03 5.2267E+04 -2.0000E+04
F4 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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 65

donde A es de n f filas por nc columnas, B de nc filas y nc columnas, obteniendo como


resultado una matriz C de n f nc .
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

MTMULT MA(), MB(), MC()

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() (3x6)
C1 C2 C3 C4 C5 C6
F1 3.4406E+00 0.0000E+00 -1.3721E+00 0.0000E+00 -2.0685E+00 0.0000E+00
F2 0.0000E+00 0.0000E+00 0.0000E+00 4.0000E+00 0.0000E+00 -4.0000E+00
F3 0.0000E+00 3.4406E+00 4.0000E+00 -1.3721E+00 -4.0000E+00 -2.0685E+00

DEL() (6x1)
C1
F1 3.1481E-04
F2 -6.2890E-04
F3 0.0000E+00
F4 -6.8608E-04
F5 0.0000E+00
F6 -6.3553E-04

la multiplicacin entre estas matrices se obtiene ejecutando la instruccin:

MTMULT BEL(), DEL(), EPE()

donde la matriz EPE() es igual a :

EPE() (3x1)
C1
F1 1.0831E-03
F2 -2.0220E-04
F3 9.2166E-05

5.9. MTMUL3
Multiplica la primera matriz transpuesta AT por la segunda matriz B y el resultado lo multi-
plica a la primera matriz A. La operacin matricial se define como:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


66 Captulo 5. Instrucciones de operaciones matriciales bsicas

nf nf
A Tnc n f B nf nc A n f nc = C nc nc tij = ari brj cij = tir arj (5.10)
r =1 r =1

Siendo n f y nc el nmero de filas y columnas de la matriz A y nf y nc el nmero de filas y


columnas de la matriz B, debe cumplirse que la matriz B sea cuadrada, es decir nf = nc y
que el nmero de filas de A y B sean iguales, es decir n f = nf . La matriz obtenida C ser
cuadrada de nc nc . Esta instruccin es til en el clculo de la matriz de rigidez de un ele-
mento finito de elasticidad K a partir de las constantes elsticas D y del operador diferen-
cial actuando sobre funciones de forma B, as:

= BT D B dV (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:

K = RT K L R (5.12)

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

MTMUL3 MA(), MB(), MC()

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() (6x6)
C1 C2 C3 C4 C5 C6
F1 8.6603E-01 5.0000E-01 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F2 -5.0000E-01 8.6603E-01 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F3 0.0000E+00 0.0000E+00 1.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F4 0.0000E+00 0.0000E+00 0.0000E+00 8.6603E-01 5.0000E-01 0.0000E+00
F5 0.0000E+00 0.0000E+00 0.0000E+00 -5.0000E-01 8.6603E-01 0.0000E+00
F6 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 1.0000E+00

KEL() (6x6)
C1 C2 C3 C4 C5 C6
F1 6.0000E+04 0.0000E+00 0.0000E+00 -6.0000E+04 0.0000E+00 0.0000E+00
F2 0.0000E+00 7.1111E+02 1.0667E+03 0.0000E+00 -7.1111E+02 1.0667E+03
F3 0.0000E+00 1.0667E+03 2.1333E+03 0.0000E+00 -1.0667E+03 1.0667E+03
F4 -6.0000E+04 0.0000E+00 0.0000E+00 6.0000E+04 0.0000E+00 0.0000E+00
F5 0.0000E+00 -7.1111E+02 -1.0667E+03 0.0000E+00 7.1111E+02 -1.0667E+03
F6 0.0000E+00 1.0667E+03 1.0667E+03 0.0000E+00 -1.0667E+03 2.1333E+03

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 67

la multiplicacin R T K L R entre estas matrices se obtiene ejecutando la instruccin:

MTMUL3 REL(), KEL(), KEG() donde la matriz KEG() es igual a :

KEG() (6x6)
C1 C2 C3 C4 C5 C6
F1 4.5178E+04 2.5673E+04 -5.3333E+02 -4.5178E+04 -2.5673E+04 -5.3333E+02
F2 2.5673E+04 1.5533E+04 9.2376E+02 -2.5673E+04 -1.5533E+04 9.2376E+02
F3 -5.3333E+02 9.2376E+02 2.1333E+03 5.3333E+02 -9.2376E+02 1.0667E+03
F4 -4.5178E+04 -2.5673E+04 5.3333E+02 4.5178E+04 2.5673E+04 5.3333E+02
F5 -2.5673E+04 -1.5533E+04 -9.2376E+02 2.5673E+04 1.5533E+04 -9.2376E+02
F6 -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 co-
mo:

A n f nc + B n f nc = C n f nc cij = aij + bij (5.13)

Siendo n f y nc el nmero de filas y de columnas respectivamente de las matrices A, B y


C. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presen-
tan a continuacin.

MTSUMA MA(), MB(), MC()

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() (3x4)
C1 C2 C3 C4
F1 1.2500E+01 4.3000E+00 0.0000E+00 2.0000E+00
F2 -8.5000E+00 1.5800E+01 1.4400E+01 5.2000E+00
F3 6.3000E+00 -9.8000E+00 7.5000E+00 4.0000E+00

MB() (3x4)
C1 C2 C3 C4
F1 1.0200E+01 -4.3000E+00 -1.8000E+00 -2.6000E+00
F2 9.6000E+00 7.1000E+00 5.8000E+00 3.0000E+00
F3 6.7000E+00 2.3000E+00 2.7000E+00 5.6000E+00

la suma entre estas matrices se obtiene ejecutando la instruccin:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


68 Captulo 5. Instrucciones de operaciones matriciales bsicas

MTSUMA MA(), MB(), MC()

donde la matriz MC() es igual a :

MC() (3x4)
C1 C2 C3 C4
F1 2.2700E+01 0.0000E+00 -1.8000E+00 -6.0000E-01
F2 1.1000E+00 2.2900E+01 2.0200E+01 8.2000E+00
F3 1.3000E+01 -7.5000E+00 1.0200E+01 9.6000E+00

5.11. MTREST
Calcula la matriz C como la resta de la matriz A menos la matriz B. Tal operacin se defi-
ne como:

A n f nc B n f nc = C n f n c cij = aij bij (5.14)

Siendo n f y nc el nmero de filas y de columnas respectivamente de las matrices A, B y


C. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presen-
tan a continuacin.

MTREST MA(), MB(), MC()

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 en-
tre ellas se obtiene ejecutando la instruccin:

MTREST MA(), MB(), MC()

donde la matriz MC() es igual a :

MC() (3x4)
C1 C2 C3 C4
F1 2.3000E+00 8.6000E+00 1.8000E+00 4.6000E+00
F2 -1.8100E+01 8.7000E+00 8.6000E+00 2.2000E+00
F3 -4.0000E-01 -1.2100E+01 4.8000E+00 -1.6000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 69

5.12. MTPROD
Multiplica trmino a trmino los coeficientes de las matrices A y B, almacenando el resul-
tado 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 cij = aij bij (5.15)

Siendo n f y nc el nmero de filas y de columnas respectivamente de las matrices A, B y


C. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presen-
tan a continuacin.

MTPROD MA(), MB(), MC()

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 produc-
to de Hadamard entre ellas se obtiene ejecutando la instruccin:

MTPROD MA(), MB(), MC()

donde la matriz MC() es igual a :

MC() (3x4)
C1 C2 C3 C4
F1 1.2750E+02 -1.8490E+01 0.0000E+00 -5.2000E+00
F2 -8.1600E+01 1.1218E+02 8.3520E+01 1.5600E+01
F3 4.2210E+01 -2.2540E+01 2.0250E+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:
aij
A n f nc / B n f n c = C n f nc cij = bij 0 (5.16)
bij

Siendo n f y nc el nmero de filas y de columnas respectivamente de las matrices A, B y


C. Si alguno de los coeficientes de la matriz B es igual a cero, la instruccin mostrar un

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


70 Captulo 5. Instrucciones de operaciones matriciales bsicas

mensaje de error que controla una divisin inadecuada. La sintaxis de la instruccin y la


descripcin de sus respectivos argumentos se presentan a continuacin.

MTDIVI MA(), MB(), MC()

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()

donde la matriz MC() es igual a :

MC() (3x4)
C1 C2 C3 C4
F1 1.2255E+00 -1.0000E+00 0.0000E+00 -7.6923E-01
F2 -8.8542E-01 2.2254E+00 2.4828E+00 1.7333E+00
F3 9.4030E-01 -4.2609E+00 2.7778E+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 bij = c aij (5.17)

Siendo n f y nc el nmero de filas y de columnas respectivamente de las matrices A y B.


La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a
continuacin.

MTPORE MA(), ESCA, MB()

Argumento Tipo de variable Descripcin


MA() Double (real) Matriz existente A.
ESCA Double (real) Valor del escalar que multiplica a la matriz A.
MB() Double (real) Matriz resultante B.
Tabla 5.14. Sintaxis de la instruccin MTPORE.

Ejemplo 5.12 La siguiente instruccin multiplica la matriz MA()definida en el


Ejemplo 5.8 por el escalar 4.5.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 71

MTPORE MA(), 4.5, MB()

donde la matriz resultantes MB() es igual a :

MB() (3x4)
C1 C2 C3 C4
F1 5.6250E+01 1.9350E+01 0.0000E+00 9.0000E+00
F2 -3.8250E+01 7.1100E+01 6.4800E+01 2.3400E+01
F3 2.8350E+01 -4.4100E+01 3.3750E+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

Siendo n f y nc el nmero de filas y de columnas respectivamente de las matriz A, y asum


el resultado de la sumatoria de los coeficientes de A. La sintaxis de la funcin y la des-
cripcin de sus respectivos argumentos se presentan a continuacin.

[variable]= MTSUCI(MA())

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.

Ejemplo 5.13 La lnea de comando:

SUMI = MTSUCI(MI())

guarda en la variable entera SUMI el resultado de la sumatoria de los trminos de la


matriz MI()definida como:

MI() (2x4)
C1 C2 C3 C4
F1 000 001 002 003
F2 004 005 006 007

Despus la ejecucin la variable SUMI = 28

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


72 Captulo 5. Instrucciones de operaciones matriciales bsicas

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 presen-
tan 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.

Ejemplo 5.14 La lnea de comando:

SUMA = MTSUCI(MA())

guarda en la variable real SUMA el resultado de la sumatoria de los trminos de la


matriz MA()definida en el Ejemplo 5.8. Despus la ejecucin la variable SU-
MA=53.70.

5.17. MTMACI
Encuentra el coeficiente mximo o mnimo de una matriz entera A, de la forma:

{ } { }
amax = max aij , amin = min aij (i = 1,K, n f j = 1,K, nc ) (5.19)

Siendo n f y nc el nmero de filas y de columnas respectivamente de las matriz A. La


sintaxis de la funcin y la descripcin de sus respectivos argumentos se presentan a conti-
nuacin.

[variable]= MTMACI(MA(),TP)

Argumento Tipo de variable Descripcin


MA() Integer (entero) Matriz existente A.
Si TP=0 la funcin calcula el mximo coeficiente
Optional Integer
de A (por defecto).
TP (argumento opcional
tipo entero) Si TP=1 la funcin calcula el mnimo coeficiente
de A.
MTMACI Integer (entero) Escalar igual al coeficiente mximo o mnimo de A.
Tabla 5.17. Sintaxis de la funcin MTMACI.

Ejemplo 5.15 La lnea de comando:

MAXI = MTMACI(MI())

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 73

guarda en la variable entera MAXI el coeficiente mximo de la matriz MI()definida


en el Ejemplo 5.13. Despus la ejecucin la variable MAXI = 7.

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.
Si TP=0 la funcin calcula el mximo coeficiente
Optional Integer
de A (por defecto).
TP (argumento opcional
tipo entero) Si TP=1 la funcin calcula el mnimo coeficiente
de A.
MTMACR Double (real) Escalar igual al coeficiente mximo o mnimo de A.
Tabla 5.18. Sintaxis de la funcin MTMACR.

Ejemplo 5.16 La lnea de comando:

MAXR = MTMACR(MA())

guarda en la variable real MAXR el coeficiente mximo de la matriz MA()definida en


el Ejemplo 5.14. Despus la ejecucin la variable MAXR = 15.8.

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 des-
cripcin de sus respectivos argumentos se presentan a continuacin.

MTBAND MLL(), MBA(), BAND

Argumento Tipo de variable Descripcin


MLL() Double (real) Matriz simtrica existente A.
MBA() Double (real) Matriz banda creada B.
BAND Double (real) Ancho de semi banda calculado
Tabla 5.19. Sintaxis de la instruccin MTBAND.

Ejemplo 5.17 Dada la matriz simtrica KGL()definida como:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


74 Captulo 5. Instrucciones de operaciones matriciales bsicas

KGL() (6x6)
C1 C2 C3 C4 C5 C6
F1 4.0000E+04 -2.0000E+04 1.0000E+04 0.0000E+00 0.0000E+00 0.0000E+00
F2 -2.0000E+04 9.0000E+04 -1.5000E+04 0.0000E+00 2.0000E+04 0.0000E+00
F3 1.0000E+04 -1.5000E+04 9.0000E+04 -1.2000E+04 6.0000E+04 0.0000E+00
F4 0.0000E+00 0.0000E+00 -1.2000E+04 8.0000E+04 4.5000E+04 -2.2000E+04
F5 0.0000E+00 2.0000E+04 6.0000E+04 4.5000E+04 7.0000E+04 1.4000E+04
F6 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

Se obtiene la siguiente matriz banda KBA()cuyo nmero de columnas corresponde


al ancho de semi banda BAND=4 indicado por el nmero de coeficientes en color gris
en la matriz llena KGL():

KBA() (6x4)
C1 C2 C3 C4
F1 4.0000E+04 -2.0000E+04 1.0000E+04 0.0000E+00
F2 9.0000E+04 -1.5000E+04 0.0000E+00 2.0000E+04
F3 9.0000E+04 -1.2000E+04 6.0000E+04 0.0000E+00
F4 8.0000E+04 4.5000E+04 -2.2000E+04 0.0000E+00
F5 7.0000E+04 1.4000E+04 0.0000E+00 0.0000E+00
F6 4.0000E+04 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 L m1n u11 0 0 d11 0 0 u11 L u1n


M
(5.20)
M = M uii 0 0 d ii 0 0 uii M
mn1 L mnn u1n L u nn 0 0 d nn 0 0 u nn

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 des-
cripcin de sus respectivos argumentos se presentan a continuacin.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 75

MTFUDU MX(), MD()

Argumento Tipo de variable Descripcin


Como variable de entrada corresponde a la matriz
MX() Double (real)
cuadrada existente M.
Como variable de salida corresponde a la matriz
Double (real)
triangular superior creada U.
BAND Double (real) Matriz diagonal creada D.
Tabla 5.20. Sintaxis de la instruccin MTFUDU.

Ejemplo 5.18 Dada la matriz simtrica MX()definida previamente como:

MX() (4x4)
C1 C2 C3 C4
F1 7.0000E+00 1.2000E+01 5.0000E+00 0.0000E+00
F2 1.2000E+01 3.0000E+00 1.0000E+00 -2.0000E+00
F3 5.0000E+00 1.0000E+00 1.5000E+01 8.0000E+00
F4 0.0000E+00 -2.0000E+00 8.0000E+00 4.0000E+00

Al ejecutar la instruccin:

MTFUDU MX(), MD()

se obtienen dos matrices: una matriz triangular superior U, la cual se guarda en la


variable MX()con los siguientes trminos:

MX() (4x4)
C1 C2 C3 C4
F1 1.0000E+00 1.7143E+00 7.1429E-01 0.0000E+00
F2 0.0000E+00 1.0000E+00 4.3089E-01 1.1382E-01
F3 0.0000E+00 0.0000E+00 1.0000E+00 6.0321E-01
F4 0.0000E+00 0.0000E+00 0.0000E+00 1.0000E+00

y una matriz diagonal MD()de la forma:

MD() (4x4)
C1 C2 C3 C4
F1 7.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F2 0.0000E+00 -1.7571E+01 0.0000E+00 0.0000E+00
F3 0.0000E+00 0.0000E+00 1.4691E+01 0.0000E+00
F4 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):

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


76 Captulo 5. Instrucciones de operaciones matriciales bsicas

m11 L m1n l11 0 0 u11 L u1n


M n n = L n n U n n es decir, M M = M lii 0 0 uii M (5.21)
mn1 L mnn l n1 L lnn 0 0 u nn

Del procedimiento nmero de descomposicin matricial, se obtiene una matriz triangu-


lar 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) matriz cuadrada existente M.
ML() Double (real) matriz triangular inferior creada L.
MU() Double (real) matriz triangular superior creada U.
Tabla 5.21. Sintaxis de la instruccin MTFCLU.

Ejemplo 5.19 Dada la matriz simtrica MX()definida en el Ejemplo 5.18, de la ins-


truccin:

MTFCLU MX(), ML(), MU()

se obtienen dos matrices: una matriz triangular ML()inferior de la forma:

ML() (4x4)
C1 C2 C3 C4
F1 1.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F2 1.7143E+00 1.0000E+00 0.0000E+00 0.0000E+00
F3 7.1429E-01 4.3089E-01 1.0000E+00 0.0000E+00
F4 0.0000E+00 1.1382E-01 6.0321E-01 1.0000E+00

y una matriz triangular superior MU()con los siguientes trminos:

MU() (4x4)
C1 C2 C3 C4
F1 7.0000E+00 1.2000E+01 5.0000E+00 0.0000E+00
F2 0.0000E+00 -1.7571E+01 -7.5714E+00 -2.0000E+00
F3 0.0000E+00 0.0000E+00 1.4691E+01 8.8618E+00
F4 0.0000E+00 0.0000E+00 0.0000E+00 -1.1179E+00

5.22. MTDETE
Calcula el determinante de una matriz cuadrada M. El procedimiento consiste en descom-
poner la matriz M en el producto entre una matriz triangular inferior L y una matriz trian-
gular 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
PEFiCA Programa de elementos finitos a cdigo abierto 77

ser el producto entre los trminos de la diagonal de las matrices L y U, en virtud de las
siguientes propiedades:

El determinante de una multiplicacin matricial es el producto entre el determinante


de cada matriz.

El determinante de una matriz triangular es el producto entre los trminos de su di-


agonal.

Es decir,
M = LU det M = det L det U
det L = l11 K lii K lnn ; det U = u11 K uii K unn (5.22)
det M = l11u11 K lii uii K l nn u nn

La sintaxis de la funcin y la descripcin de sus respectivos argumentos se presentan a


continuacin.

[variable]= MTDETE(MX())

Argumento Tipo de variable Descripcin


MX() Double (real) matriz cuadrada existente M.
MTDETE Double (real) determinante de la matriz M.
Tabla 5.22. Sintaxis de la funcin MTDETE.

Ejemplo 5.20 Conociendo previamente la matriz MX()definida en el Ejemplo 5.18,


la instruccin:

DETM = MTDETE(MX())

obtiene el valor del determinante de MX()y lo guarda en la variable escalar DETM =


2.0200E+03.

Del procedimiento nmero de descomposicin matricial LU, se obtiene una matriz


triangular inferior L en la cual todos los trminos de la diagonal son iguales a 1.00 y en
consecuencia su determinante siempre es igual a 1.00. Por esta razn en el cdigo se cal-
cula el determinante de M como el determinante de U.

5.23. MTINVE
Calcula la matriz inversa de una matriz cuadrada M mediante eliminacin Gaussiana. Da-
da una matriz M, la instruccin obtiene una matriz M-1 tal que,(Grossman 1996)

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


78 Captulo 5. Instrucciones de operaciones matriciales bsicas

M n1 n M n n = I n n (5.23)

siendo I la matriz identidad de orden n.


La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

MTINVE MX()

Argumento Tipo de variable Descripcin


como variable de entrada corresponde a la matriz
MX() Double (real)
cuadrada existente M.
como variable de salida corresponde a la matriz inver-
MX() Double (real)
sa calculada M-1.
Tabla 5.23. Sintaxis de la instruccin MTINVE.

Ejemplo 5.21 Conociendo previamente la matriz MX()definida en el Ejemplo 5.18,


la instruccin:

MTINVE MX()

Calcula la matriz inversa y guarda el resultado en el mismo arreglo MX(), de la ma-


nera que despus de ejecutada la instruccin los coeficientes de la matriz MX() son:

MX() (4x4)
C1 C2 C3 C4
F1 -5.3465E-02 7.3267E-02 9.9010E-02 -1.6139E-01
F2 7.3267E-02 -6.3366E-02 4.9505E-02 -1.3069E-01
F3 9.9010E-02 4.9505E-02 -2.5743E-01 5.3960E-01
F4 -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 descrip-
cin 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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:
M 11u1 + M 12u2 + L + M 1nun = f1
M 21u1 + M 22u2 + L + M 2 nun = f 2
(6.1)
M
M n1u1 + M n 2u2 + L + M nnun = f n
un sistema de n ecuaciones simultaneas que puede escribirse matricialmente de la for-
ma:

M n nu n1 = f n1 (6.2)

donde M es una matriz cuadrada conformada por los coeficientes M ij y los vectores co-
lumna u y f contienen las variables dependientes del sistema u j y los trminos indepen-
dientes 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 ma-
triz cuadrada M y el vector de trminos independientes f, calcula el vector de variables de-
pendientes 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 Captulo 6. Instrucciones de solucin de ecuaciones simultneas

SOGAUS MS(), VS(), VR()

Argumento Tipo de variable Descripcin


MS() Double (real) Matriz cuadrada existente M.
VS() Double (real) Vector de trminos independientes existente f.
VR() Double (real) Vector solucin o vector de variables dependientes u.
Tabla 6.1. Sintaxis de la instruccin SOGAUS.

Ejemplo 6.1 Dada la matriz cuadrada M de dimensin 4, cuyos coeficientes son:

M() (4x4)
C1 C2 C3 C4
F1 7.0000E+00 1.2000E+01 5.0000E+00 0.0000E+00
F2 8.0000E+00 3.0000E+00 1.0000E+00 -2.0000E+00
F3 9.0000E+00 4.0000E+00 1.5000E+01 8.0000E+00
F4 1.0000E+01 5.0000E+00 -1.0000E+00 4.0000E+00

y el vector de trminos independientes f igual a:

F() (4x1)
C1
F1 8.0000E+00
F2 1.0000E+01
F3 -2.0000E+00
F4 1.0000E+00

calcular el vector de variables dependientes u, utilizando la siguiente instruccin:

SOGAUS M(), F(), U()

Como resultado se obtiene,

U() (4x1)
C1
F1 7.5070E-01
F2 1.0845E-01
F3 2.8873E-01
F4 -1.6901E+00

6.2. SOCHLK
Resuelve un sistema simtrico de ecuaciones simultaneas linealmente independiente me-
diante el mtodo de Cholesky modificado (Uribe 1995); en otras palabras, calcula el vec-
tor 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 81

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

SOCHLK MS(), VS(), VR()

Argumento Tipo de variable Descripcin


Matriz simtrica existente M. La instruccin lee los
MS() Double (real)
coeficientes de la diagonal superior de la matriz.
VS() Double (real) Vector de trminos independientes existente f.
VR() Double (real) Vector solucin o vector de variables dependientes u.
Tabla 6.2. Sintaxis de la instruccin SOCHLK.

Ejemplo 6.2 Dada la matriz simtrica M de dimensin 4, cuyos coeficientes son:

M() (4x4)
C1 C2 C3 C4
F1 7.0000E+00 1.2000E+01 5.0000E+00 0.0000E+00
F2 1.2000E+01 3.0000E+00 1.0000E+00 -2.0000E+00
F3 5.0000E+00 1.0000E+00 1.5000E+01 8.0000E+00
F4 0.0000E+00 -2.0000E+00 8.0000E+00 4.0000E+00

y el vector de trminos independientes f igual a:

F() (4x1)
C1
F1 8.0000E+00
F2 1.0000E+01
F3 -2.0000E+00
F4 1.0000E+00

calcular el vector de variables dependientes u, utilizando la siguiente instruccin:

SOCHLK M(), F(), U()

Como resultado se obtiene,

U() (4x1)
C1
F1 -5.4455E-02
F2 -2.7723E-01
F3 2.3416E+00
F4 -4.5718E+00

6.3. SOBAND
Resuelve un sistema de ecuaciones simultaneas linealmente independiente mediante el m-
todo 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 Captulo 6. Instrucciones de solucin de ecuaciones simultneas

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

SOBAND MBA(), VX()

Argumento Tipo de variable Descripcin


MBA() Double (real) Matriz existente M en formato matriz banda.
como variable de entrada corresponde al vector de
VX() Double (real)
trminos independientes existente f.
como variable de salida corresponde al vector solu-
VX() Double (real)
cin o vector de variables dependientes u.
Tabla 6.3. Sintaxis de la instruccin SOBAND.

Ejemplo 6.3 La matriz simtrica M(), de dimensin igual a 4 y ancho de semi ban-
da igual a 3, expresada como:

M() (4x4)
C1 C2 C3 C4
F1 7.0000E+00 1.2000E+01 5.0000E+00 0.0000E+00
F2 1.2000E+01 3.0000E+00 1.0000E+00 -2.0000E+00
F3 5.0000E+00 1.0000E+00 1.5000E+01 8.0000E+00
F4 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() (4x3)
C1 C2 C3
F1 7.0000E+00 1.2000E+01 5.0000E+00
F2 3.0000E+00 1.0000E+00 -2.0000E+00
F3 1.5000E+01 8.0000E+00 0.0000E+00
F4 4.0000E+00 0.0000E+00 0.0000E+00

Dado un vector de trminos independientes f igual a:

F() (4x1)
C1
F1 8.0000E+00
F2 1.0000E+01
F3 -2.0000E+00
F4 1.0000E+00

calcular el vector de variables dependientes u, utilizando la siguiente instruccin:

SOBAND MBA(), VX()

El resultado se sobrescribe en el vector VX(),

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 83

VX() (4x1)
C1
F1 -5.4455E-02
F2 -2.7723E-01
F3 2.3416E+00
F4 -4.5718E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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:
A11 x1 + A12 x2 + L + A1n xn = 0
A21 x1 + A22 x2 + L + A2 n xn = 0
(7.1)
M
An1 x1 + An 2 x2 + L + Ann xn = 0
un sistema homogneo de n ecuaciones simultaneas que puede escribirse matricialmente
de la forma:

Ai xi = 0 (7.2)

donde A i y x i corresponden a la coleccin de matrices cuadradas y de vectores propios,


respectivamente que satisfacen la ecuacin anterior. La Tabla 2.6 indica el objetivo de las
subturinas del mdulo MdVP.

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)

donde K es la matriz de rigidez simtrica, positiva y definida, M es la matriz diagonal de


masas, x i es el i-esimo vector propio calculado, i es el i-esimo valor propio calculado.
El mtodo de la iteracin inversa supone un vector propio inicial, con el cual se calcula
un nuevo vector propio aproximado, despus, a partir del vector calculado se encuentra una
tercera aproximacin. Este procedimiento se repite hasta que el valor propio entre ciclo y
ciclo sea tan aproximado como la tolerancia lo especifique.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
86 Captulo 6. Instrucciones de solucin de ecuaciones simultneas

VPITER KGL(), MAS(), VEP(), VAP, NCIC, TOLC, TOL

Argumento Tipo de variable Descripcin


KGL() Double (real) Matriz de rigidez simtrica existente K.
MAS() Double (real) Matriz de masas diagonal existente M.
VEP() Double (real) Primer vector propio calculado x1
VAP Double (real) Primer valor propio calculado 1
NCIC Integer (entero) Nmero de iteraciones realizadas
TOLC Double (real) Tolerancia calculada
Optional Double
Tolerancia especificada para el valor propio calcula-
TOL (argumento opcional
do. Por defecto TOL=0.01
tipo real)
Tabla 7.1. Sintaxis de la instruccin VPITER.

Ejemplo 7.1 Dada la matriz de rigidez KGL() y la matriz de masas MAS(), cuyos
coeficientes son:

KGL() (4x4)
C1 C2 C3 C4
F1 2.0000E+00 -1.0000E+00 0.0000E+00 0.0000E+00
F2 -1.0000E+00 2.0000E+00 -1.0000E+00 0.0000E+00
F3 0.0000E+00 -1.0000E+00 2.0000E+00 -1.0000E+00
F4 0.0000E+00 0.0000E+00 -1.0000E+00 1.0000E+00

MAS() (4x4)
C1 C2 C3 C4
F1 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F2 0.0000E+00 2.0000E+00 0.0000E+00 0.0000E+00
F3 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F4 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

Como resultado se obtiene,

VEP() (4x1)
C1
F1 2.5126E-01
F2 5.0252E-01
F3 6.0302E-01
F4 7.0353E-01

VAP (1x1)
1.4646E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 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:

K xi = i xi (7.4)

donde K es la matriz de rigidez simtrica, positiva y definida de tamao n. La instruccin


almacena cada vector propio como una columna de la matriz X y guarda la coleccin de
valores propios en el vector , como lo indica la siguiente expresin:
X n n = [x1 x 2 L x n ]
(7.5)
n1 = [1 2 L n ]
T

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

VPJACK KGL(), VEP(), VAP(), NCIC, TOL

Argumento Tipo de variable Descripcin


KGL() Double (real) Matriz de rigidez simtrica existente K.
Matriz que contiene a los vectores propios calculados
VEP() Double (real)
X.
Vector que contiene a los valores propios calculados
VAP Double (real)
.
NCIC Integer (entero) Nmero de iteraciones realizadas
Optional Double
Tolerancia especificada para el valor propio calcula-
TOL (argumento opcional
do. Por defecto TOL=0.01
tipo real)
Tabla 7.2. Sintaxis de la instruccin VPJACK.

Ejemplo 7.2 Dada la matriz de rigidez KGL()cuyos coeficientes son:

KGL() (4x4)
C1 C2 C3 C4
F1 5.0000E+00 -4.0000E+00 1.0000E+00 0.0000E+00
F2 -4.0000E+00 6.0000E+00 -4.0000E+00 1.0000E+00
F3 1.0000E+00 -4.0000E+00 6.0000E+00 -4.0000E+00
F4 0.0000E+00 1.0000E+00 -4.0000E+00 5.0000E+00

calcular la matriz que contiene la coleccin de vectores propios VEP() y el vector


que contiene la coleccin de valores propios VVP(), mediante la instruccin::
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
88 Captulo 6. Instrucciones de solucin de ecuaciones simultneas

VPJACK KGL(), VEP(), VVP(), NCIC

Como resultado se obtiene,

VEP() (4x4)
C1 C2 C3 C4
F1 3.7175E-01 -3.7175E-01 -6.0150E-01 -6.0150E-01
F2 6.0150E-01 6.0150E-01 3.7175E-01 -3.7175E-01
F3 6.0150E-01 -6.0150E-01 3.7175E-01 3.7175E-01
F4 3.7175E-01 3.7175E-01 -6.0150E-01 6.0150E-01

VVP() (4x1)
C1
F1 1.4590E-01
F2 1.3090E+01
F3 6.8541E+00
F4 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:

K xi = i M xi (7.6)

donde K n n es la matriz de rigidez simtrica, positiva y definida de tamao n, M n n es la


matriz simtrica de masas. La instruccin almacena cada vector propio como una columna
de la matriz X y guarda la coleccin de valores propios en el vector , como lo indica la
siguiente expresin:
X n n = [x1 x 2 L x n ]
(7.7)
n1 = [1 2 L n ]
T

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


PEFiCA Programa de elementos finitos a cdigo abierto 89

VPJACO KGL(), MAS(), VEP(), VAP(), NCIC, TOL

Argumento Tipo de variable Descripcin


KGL() Double (real) Matriz de rigidez simtrica existente K.
MAS() Double (real) Matriz de masas simtrica existente M.
Matriz que contiene a los vectores propios calculados
VEP() Double (real)
X.
Vector que contiene a los valores propios calculados
VAP Double (real)
.
NCIC Integer (entero) Nmero de iteraciones realizadas
Optional Double
Tolerancia especificada para el valor propio calcula-
TOL (argumento opcional
do. Por defecto TOL=0.01
tipo real)
Tabla 7.3. Sintaxis de la instruccin VPJACO.

Ejemplo 7.3 Dada la matriz de rigidez KGL()y la matriz de masas MAS(), cuyos
coeficientes son:

KGL() (4x4)
C1 C2 C3 C4
F1 5.0000E+00 -4.0000E+00 1.0000E+00 0.0000E+00
F2 -4.0000E+00 6.0000E+00 -4.0000E+00 1.0000E+00
F3 1.0000E+00 -4.0000E+00 6.0000E+00 -4.0000E+00
F4 0.0000E+00 1.0000E+00 -4.0000E+00 5.0000E+00

MAS() (4x4)
C1 C2 C3 C4
F1 2.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F2 0.0000E+00 2.0000E+00 0.0000E+00 0.0000E+00
F3 0.0000E+00 0.0000E+00 1.0000E+00 0.0000E+00
F4 0.0000E+00 0.0000E+00 0.0000E+00 1.0000E+00

calcular la matriz que contiene la coleccin de vectores propios VEP() y el vector


que contiene la coleccin de valores propios VVP(), mediante la instruccin::

VPJACO KGL(), MAS(), VEP(), VVP(), NCIC

Como resultado se obtiene,

VEP() (4x4)
C1 C2 C3 C4
F1 6.5094E-01 -1.4092E+00 1.7190E-01 6.8261E-01
F2 1.0317E+00 -3.9381E-01 -4.0853E-01 -6.4848E-01
F3 9.9759E-01 1.5490E+00 1.1638E+00 -3.6135E-02
F4 6.0339E-01 1.8261E+00 -8.9810E-01 8.0444E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


90 Captulo 6. Instrucciones de solucin de ecuaciones simultneas

VVP() (4x1)
C1
F1 9.6537E-02
F2 1.3915E+00
F3 1.0638E+01
F4 4.3735E+00

NCIC (1x1)
004

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 fun-
ciones de aproximacin son continuas expresadas como:

( e ) (x) = N(x) ( e) ( e) x ( e ) (8.1)

La matriz N ( e ) = [N i( e ) , N (j e ) ,L, N n( e ) ] contiene las funciones de forma del elemento las


cuales dependen de la posicin en el interior del elemento x donde sean evaluadas. El vec-
tor ( e ) = [i( e ) , j( e ) ,L, n( e ) ] tiene los valores nodales asociados al elemento.
T

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 liber-
tad 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 Captulo 8. Instrucciones para crear la matriz de funciones de forma de un elemento

( e ) = a1 + a2 x (ej )
1.0 N i(e ) N (ej ) 1.0

i(e )

0.0 0.0

i L(e ) j i L(e ) j

x, x,
(a) (b)

Figura 8.1. Elemento Unidimensional Lineal: (a) geometra y funcin de aproximacin,


(b)funciones de forma.

Al expresar la ecuacin anterior en notacin matricial como lo indica el Ecuacin (8.1),


la matriz de funciones de forma de este tipo de elemento es igual a:

N ( e ) = [N i( e ) N (j e ) ] (8.4)

siendo,
x x
N i( e ) = 1 ; N (j e ) = (8.5)
L( e ) L( e )
como lo muestra la Figura 8.1(b). Sustituyendo al cociente x L(e ) por la coordenada
natural 0 1 las funciones de forma se pueden expresar como:

N i( e ) = 1 ; N (j e ) = (8.6)

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

NUNID2 MX(), XCN

Argumento Tipo de variable Descripcin


Matriz creada de las funciones de forma del elemento
MX() Double(real)
N (e ) .
Posicin donde se evala la funcin de forma en co-
XCN Double(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 evalua-


das a 0.8 L( e ) desde el extremo izquierdo del elemento se obtiene de la siguiente ex-
presin:

NUNID2 NEL(), 0.8

Los coeficientes de la matriz de funciones de forma son los siguientes:


Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010
PEFiCA Programa de elementos finitos a cdigo abierto 93

NEL() (1x2)
C1 C2
F1 2.0000E-01 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 N i(e ) N k(e )
1.0 1.0

(ej )
N (ej )
0.0 0.0

i L(e ) 2 j L(e ) 2 k i j k

x,
(a) (b)

Figura 8.2. Elemento Unidimensional Cuadrtico: (a) geometra y funcin de aproximacin,


(b)funciones de forma.

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 ) + N k( e ) k( e ) (8.8)

Al expresar la ecuacin anterior en notacin matricial como lo indica el Ecuacin (8.1),


la matriz de funciones de forma de este tipo de elemento es igual a:

N ( e ) = [N i( e ) N (j e ) N k( e ) ] (8.9)

siendo,

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


94 Captulo 8. Instrucciones para crear la matriz de funciones de forma de un elemento

2
= 1 3 ( e ) + 2 ( e )
(e) x x
N i
L L
2
= 4 ( e ) 4 ( e )
(e) x x
N j
(8.10)
L L
2
= ( e ) + 2 ( e )
(e) x x
N j
L L
como lo muestra la Figura 8.1(b). Sustituyendo al cociente x L(e ) por la coordenada
natural 0 1 las funciones de forma se pueden expresar como:

N i( e ) = 1 3 + 2 2 ; N (j e ) = 4 4 2 ; N (j e ) = + 2 2 (8.11)

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

NUNID3 MX(), XCN

Argumento Tipo de variable Descripcin


Matriz creada de las funciones de forma del elemento
MX() Double(real)
N (e ) .
Posicin donde se evala la funcin de forma en co-
XCN Double(real)
ordenadas naturales 0 1 .
Tabla 8.2. Sintaxis de la instruccin NUNID3.

Ejemplo 8.2 Las funciones de forma de un elemento unidimensional cuadrtico


evaluadas a 0.8 L( e ) desde el extremo izquierdo del elemento se obtiene de la si-
guiente expresin:

NUNID3 NEL(), 0.8

Los coeficientes de la matriz de funciones de forma son los siguientes:

NEL() (1x3)
C1 C2 C3
F1 -1.2000E-01 6.4000E-01 4.8000E-01

8.3. NTRIAN
Crea la matriz de funciones de forma de un elemento triangular lineal con un grado de li-
bertad 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:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 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

x i ( xi , yi )

(a) (b)
Figura 8.3. Elemento triangular lineal: (a) geometra, (b) funcin de aproximacin

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 ) + N k( e ) k( e ) (8.13)

Al expresar la ecuacin anterior en notacin matricial como lo indica el Ecuacin (8.1),


la matriz de funciones de forma de este tipo de elemento es igual a:

N ( e ) = [N i( e ) N (j e ) N k( e ) ] (8.14)

siendo,
1
N i( e ) ( x, y ) = (ai + bi x + ci y )
2A
1
N (j e ) ( x, y ) = (a j + b j x + c j y ) (8.15)
2A
1
N k( e ) ( x, y ) = (a k + bk x + c k y )
2A
donde,

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


96 Captulo 8. Instrucciones para crear la matriz de funciones de forma de un elemento

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 (8.16)
a k = xi y j x j y i bk = y i y j c k = x j xi

La Figura 8.4 representa las funciones de forma del elemento mediante tres grficos tri-
dimensionales donde el eje vertical indica la funcin de forma y los otros dos ejes definen
la geometra del elemento.

(a) (b) (c)


Figura 8.4. Funciones de forma del elemento triangular lineal.

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

NTRIAN MX(),XYZ(), ELE(), IELE, XP, YP

Argumento Tipo de variable Descripcin


Matriz creada de las funciones de forma del elemento
MX() Double (real)
N (e ) .
Matriz existente de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Coordenada x de un punto dentro del elemento donde
XP Double (real)
se evala la funcin de forma.
Coordenada y de un punto dentro del elemento donde
YP 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 coor-
denadas 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 ob-
tiene de las siguientes instrucciones:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 97

:
:
'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
NTRIAN NEL(), XYZ(), ELE(), 4, XP, YP
:
:
Figura 8.5. Parte del cdigo de la rutina principal PEFiCA donde se calcula la matriz de fun-
ciones de forma de un elemento triangular lineal.

03 06 09
05 04
02

02 05 08
yp
01 03
y
01 04 07
x
xp
Matriz de coordenadas de los
nudos (existente) malla de elementos finitos

Matriz de conectividades de los elementos


(existentes)
Figura 8.6. Ejemplo. Elemento triangular lineal nmero 4 de una malla de elementos finitos.

Los coeficientes de la matriz de funciones de forma son los siguientes:

NEL() (1x3)
C1 C2 C3
F1 3.3333E-01 3.3333E-01 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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


98 Captulo 8. Instrucciones para crear la matriz de funciones de forma de un elemento

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
m

2a

y s
i 2b j

(a) (b)
Figura 8.7. Elemento rectangular bilineal: (a) geometra, (b) funcin de aproximacin

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 ) + N k( e) k( e) + N m( e ) m( e ) (8.18)

Al expresar la ecuacin anterior en notacin matricial como lo indica el Ecuacin (8.1),


la matriz de funciones de forma de este tipo de elemento es igual a:

N ( e ) = [N i( e ) N (j e ) N k( e ) N m( e ) ] (8.19)

siendo,
1
N i( e ) ( s, t ) = (2b s ) (2a t )
4ab
s
N (j e ) ( s, t ) = ( 2a t )
4ab
(8.20)
st
N k( e ) ( s, t ) =
4ab
t
N m( e ) ( s, t ) = (2b s )
4ab
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 defi-
nen 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:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 99

N i( e ) , = 1 1
s t s t
2b 2a 2b 2a
N (j e ) , =
s t s t
1
2b 2a 2b 2a
(8.21)
N k( e ) , =
s t s t

2b 2a 2b 2a
N m( e ) , =
s t t s
1
2b 2a 2a 2b

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

NRECTA MX(),XYZ(), ELE(), IELE, SP, TP

Argumento Tipo de variable Descripcin


Matriz creada de las funciones de forma del elemento
MX() Double (real)
N (e ) .
Matriz existente de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Posicin relativa 0 s 2b 1 de un punto dentro del
SP Double (real) elemento en direccin s donde se evala la funcin de
forma
Posicin relativa 0 t 2a 1 de un punto dentro del
TP 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 coor-
denadas 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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


100 Captulo 8. Instrucciones para crear la matriz de funciones de forma de un elemento

03 06 09
05 04
02

02 05 08
2a=1.5
y 03
(t 2a )(1) = 0.5 01
x
01
04 07
(1)
( s 2b ) = 0.5
Matriz de coordenadas de los 2b=1.5
nudos (existente) malla de elementos finitos

Matriz de conectividades de los elementos (existentes)

Figura 8.8. Ejemplo. Elemento rectangular bilineal nmero 1 de la malla de elementos finitos.

Los coeficientes de la matriz de funciones de forma son los siguientes:

NEL() (1x4)
C1 C2 C3 C4
F1 2.5000E-01 2.5000E-01 2.5000E-01 2.5000E-01

N (j e )
N i( e )

(a) (b)

N k(e ) N m( e )

(c) (d)
Figura 8.9. Funciones de forma del elemento rectangular bilineal.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 101

8.5. NTRIEL
Crea la matriz de funciones de forma de un elemento triangular lineal para elasticidad bi-
dimensional u otro problema con dos grados de libertad por nudo como lo indica la Figura
8.10.

vj

(x j , y j ) uj
vk j

k uk v(x,y)
( xk , y k ) u(x,y)

vi
y
ui
( xi , yi ) i
x
Figura 8.10. Elemento triangular lineal de elasticidad bidimensional.

El vector que define el campo del desplazamiento en elasticidad bidimensional


T
u = [u v] tiene dos componentes que representan el desplazamiento en la direccin x y y
respectivamente. Cada una de ellas se describe como una funcin de aproximacin inde-
pendiente pero del mismo tipo, definida para todo punto (x,y) que pertenece al dominio del
elemento (e ) . En un elemento triangular lineal en particular se tiene que:
u ( e ) ( x, y ) = N i( e ) u i( e ) + N (j e ) u (je ) + N k( e ) u k( e )
(8.22)
v ( e ) ( x, y ) = N i( e ) vi( e ) + N (j e ) v (je ) + N k( e ) v k( e )

siendo N i( e ) , N (j e ) , N k( e ) las funciones de forma expresadas en la Ecuacin (8.15). La


Ecuacin (8.22) se expresa matricialmente como:

u ( x) ( e ) = N ( x ) ( e ) U ( e ) x ( e ) (8.23)

El vector de valores nodales del desplazamiento en el elemento es


U = [u i( e ) vi( e ) u (je ) v (je ) u k( e ) v k( e ) ] , y la matriz de funciones de forma corresponde
(e) T

a:

(e) N i( e ) 0 N (j e ) 0 N k( e ) 0
N = (8.24)
0 N i( e ) 0 N (j e ) 0 N k( e )

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

NTRIEL MX(), XYZ(), ELE(), IELE, XP, YP

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


102 Captulo 8. Instrucciones para crear la matriz de funciones de forma de un elemento

Argumento Tipo de variable Descripcin


Matriz creada de las funciones de forma del elemento
MX() Double (real)
N (e) .
Matriz existente de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Coordenada x de un punto dentro del elemento donde
XP Double (real)
se evala la funcin de forma.
Coordenada y de un punto dentro del elemento donde
YP 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 coor-
denadas 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
funciones de forma de un elemento triangular lineal de elasticidad bidimensional.

Los coeficientes de la matriz de funciones de forma son los siguientes:

NEL() (2x6)
C1 C2 C3 C4 C5 C6
F1 3.3333E-01 0.0000E+00 3.3333E-01 0.0000E+00 3.3333E-01 0.0000E+00
F2 0.0000E+00 3.3333E-01 0.0000E+00 3.3333E-01 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 des-
T
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:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 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 )

siendo N i( e ) , N (j e ) , N k( e ) , N m( e ) las funciones de forma expresadas en la Ecuacin (8.21) en


trminos de la posicin relativa 0 s 2b 1 en direccin s y 0 t 2a 1 en direccin t.
Al expresar matricialmente la Ecuacin (8.25) como lo indica la Ecuacin (8.23), se esta-
blece que el vector de valores nodales del desplazamiento en el elemento es
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 funciones de forma
T

corresponde a:
N (e) 0 N (j e ) 0 N k( e ) 0 N m( e ) 0
N (e) = i (8.26)
0 N i( e ) 0 N (j e ) 0 N k( e ) 0 N m( e )

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

NRECEL MX(),XYZ(), ELE(), IELE, SP, TP

Argumento Tipo de variable Descripcin


Matriz creada de las funciones de forma del elemento
MX() Double (real)
N (e) .
Matriz existente de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Posicin relativa 0 s 2b 1 de un punto dentro del
SP Double (real) elemento en direccin s donde se evala la funcin de
forma
Posicin relativa 0 t 2a 1 de un punto dentro del
TP 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 coor-
denadas 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

Los coeficientes de la matriz de funciones de forma son los siguientes:

NEL() (2x8)

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


104 Captulo 8. Instrucciones para crear la matriz de funciones de forma de un elemento

C1 C2 C3 C4 C5 C6
F1 2.5000E-01 0.0000E+00 2.5000E-01 0.0000E+00 2.5000E-01 0.0000E+00
F2 0.0000E+00 2.5000E-01 0.0000E+00 2.5000E-01 0.0000E+00 2.5000E-01

C7 C8
F1 2.5000E-01 0.0000E+00
F2 0.0000E+00 2.5000E-01

t
vm vk
um
m k uk
v(s,t)
2a
u(s,t)
vi vj
y i j s
ui 2b
uj

x
Figura 8.12. Elemento rectangular bilineal de elasticidad bidimensional.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 ac-
tuando 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 dife-
rencial nabla de un problema especfico, la matriz B ( e ) es igual a:

B (e ) = N (e) (9.1)

Adems de la funcin de aproximacin ( e ) , otra cantidad de inters en el elemento es


el gradiente de la funcin de aproximacin calculado como:

( e ) = (N ( e ) ( e ) ) = B ( e) ( e ) (9.2)

donde el vector de los valores nodales ( e) = [i( e ) , (j e) ,L, n( e ) ] tiene coeficientes in-
T

dependientes de las coordenadas del problema.

9.1. BUNID2
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un ele-
mento 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) (9.3)
= i + j
x x x
donde,
106 Captulo 8. Instrucciones para crear la matriz de funciones de forma de un elemento

N i( e) 1 N i( e ) 1
= (e) ; = ( e) (9.4)
x L x L
Al expresar la Ecuacin (9.3) en notacin matricial como lo indica el Ecuacin (9.2), la
matriz de operadores diferenciales actuando sobre funciones de forma del elemento unidi-
mensional lineal es igual a:
N ( e ) N (j e ) 1
B ( e) = N (e ) = i = ( e ) [ 1 1] (9.5)
x x L

Por lo tanto, el operador nabla para problemas de campo unidimensional corresponde a


= [ x ] .
Se observa que los trminos de la matriz B ( e ) del elemento unidimensional lineal en
particular son constantes con respecto a x.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

BUNID2 MX(), LELE

Argumento Tipo de variable Descripcin


Matriz creada de los operadores diferenciales actuan-
MX() Double(real)
do sobre funciones de forma del elemento B ( e ) .
LELE Double(real) Longitud del elemento finito L(e) .
Tabla 9.1. Sintaxis de la instruccin BUNID2.

Ejemplo 9.1 La matriz de operadores diferenciales actuando sobre las funciones


de forma de un elemento unidimensional lineal de longitud 2.5m se obtiene de la si-
guiente expresin:

BUNID2 NEL(), 2.5

Los coeficientes de la matriz resultante en m 1 son los siguientes:

BEL() (1x2)
C1 C2
F1 -4.0000E-01 4.0000E-01

9.2. BUNID3
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un ele-
mento 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:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 107

(e)
( e ) N i( e ) ( e ) N j ( e) N k( e) ( e) (9.6)
= i + j + k
x x x x
donde,
N i( e) 1 3 + 4x
= (e)
x L L( e)
( e)
N j 1 4 8x
= (e) (9.7)
x L L( e )
( e)
N k 1 1 + 4x
= (e)
x L L( e )
Al expresar la Ecuacin (9.6) en notacin matricial como lo indica el Ecuacin (9.2) y
sustituyendo al cociente x L( e ) por la coordenada natural 0 1 , la matriz de operadores
diferenciales actuando sobre funciones de forma del elemento unidimensional cuadrtico es
igual a:

(e) ( e)
N ( e ) N (j e ) N k( e)
B = N = i
x x x
(9.8)
1
B (e) = ( e) [(3 + 4 ) (4 8 ) (1 + 4 )]
L
Por lo tanto, el operador nabla para problemas de campo unidimensional corresponde a
= [ x ] .
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

BUNID3 MX(), XCN, LELE

Argumento Tipo de variable Descripcin


Matriz creada de los operadores diferenciales actuan-
MX() Double(real)
do sobre funciones de forma del elemento B (e ) .
Posicin donde se evala la matriz B (e ) en coordena-
XCN Double(real)
das naturales 0 1 .
LELE Double(real) Longitud del elemento finito L(e) .
Tabla 9.2. Sintaxis de la instruccin BUNID3.

Ejemplo 9.2 La matriz de operadores diferenciales actuando sobre las funciones


de forma de un elemento unidimensional cuadrtico de longitud 2.5m evaluada a
0.8 L( e ) desde el extremo se obtiene de la siguiente expresin:

BUNID3 NEL(), 0.8, 2.5

Los coeficientes de la matriz resultante en m 1 son los siguientes:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


108 Captulo 8. Instrucciones para crear la matriz de funciones de forma de un elemento

BEL() (1x3)
C1 C2 C3
F1 8.0000E-02 -9.6000E-01 8.8000E-01

9.3. BTRIAN
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un ele-
mento 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) (e) ( e) (e) i( e )
x x N i xN j xN k (e)
(e)
= (e) (e) (e) j (9.9)
y y N i yN j yN k ( e )
k
En general las derivadas parciales de una funcin () en trminos de x y de y se escri-
ben de la forma x () () x y y () () y . Derivando las funciones de forma
dadas en la Ecuacin (8.15) se obtiene,
bi bj b
x N i( e) = ; x N (j e) = ; x N k( e) = k
2A 2A 2A
(9.10)
(e) c cj c
yN i = i ; y N (j e ) = ; yN k( e ) = k
2A 2A 2A
De acuerdo con las ecuaciones anteriores la matriz de operadores diferenciales actuando
sobre las funciones de forma para un elemento triangular lineal de rea A y con un grado de
libertad es igual a:
1 bi bj bk
B ( e) = (9.11)
2 A ci cj c k

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 (9.12)
a k = xi y j x j y i bk = yi y j c k = x j xi

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 coor-
denadas 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 ins-
truccin:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 109

BTRIAN BEL(), XYZ(), ELE(), 4

Los coeficientes de la matriz de operadores diferenciales actuando sobre funciones


de forma son los siguientes:

BEL() (2x3)
C1 C2 C3
F1 -6.6667E-01 6.6667E-01 0.0000E+00
F2 0.0000E+00 -1.0000E+00 1.0000E+00

BTRIAN MX(), XYZ(), ELE(), IELE

Argumento Tipo de variable Descripcin


Matriz creada de los operadores diferenciales actuan-
MX() Double (real)
do sobre funciones de forma del elemento B (e ) .
Matriz existente de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Tabla 9.3. Sintaxis de la instruccin BTRIAN.

9.4. BRECTA
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un ele-
mento 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
= [ x y ] , el gradiente de la funcin de aproximacin ( e ) definido en la Ecua-
T

cin (9.2) corresponde a un vector de la forma:


i( e)
x ( e) x N i( e ) x N (j e ) x N k( e) x N m( e) (j e)
(e)
= (e) (9.13)
y y N i y N (j e) y N k( e) y N m( e ) k( e)
( e)
m
En general las derivadas parciales de una funcin () en trminos de x y de y se escri-
ben de la forma x () () x y y () () y .
Las funciones de forma indicadas en la Ecuacin (8.20) estn expresadas en trminos de
s y de t, por lo tanto las derivadas con respecto a x y a y sern:
N i( e) N i( e ) ( s, t ) s N i( e) ( s, t ) t
= +
x s x t x
( e) (e) ( e) (9.14)
N i N i ( s, t ) s N i ( s, t ) t
= +
y s y t y
Dado que el sistema coordenado local (s,t) con origen en ( xi , y i ) se relaciona con el sis-
tema 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 Captulo 8. Instrucciones para crear la matriz de funciones de forma de un elemento

tre los dos sistemas presentadas en la ecuacin anterior son s x = t y = 1 y


s y = t x = 0 . En consecuencia, las derivadas de las funciones de forma en funcin
de x y de y son:
N i( e ) ( 2a t ) N (j e ) (2a t ) N k( e ) t
= ; = ; =
x 4ab x 4ab x 4ab
(e) (e) ( e)
N m t N i (2b s ) N j s
= ; = ; = (9.15)
x 4ab y 4ab y 4ab
N k( e ) s N m( e ) (2b s )
= ; =
y 4ab y 4ab
La matriz de operadores diferenciales actuando sobre las funciones de forma para un
elemento rectangular bilineal con un grado de libertad es igual a:
1 ( 2a t ) ( 2a t ) t t
B (e) = (9.16)
4ab (2b s ) s s (2b s )
Expresando la ecuacin anterior en trminos de la posicin relativa 0 s 2b 1 en di-
reccin s y 0 t 2a 1 en direccin t, se tiene:
(1 2b )(1 t 2a ) (1 2b )(1 t 2a ) (1 2b )(t 2a ) (1 2b )(t 2a )
B (e) = (9.17)
(1 2a )(1 s 2b ) (1 2a )( s 2b ) (1 2a )( s 2b ) (1 2a )(1 s 2b )
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

BRECTA MX(),XYZ(), ELE(), IELE, SP, TP

Argumento Tipo de variable Descripcin


Matriz creada de los operadores diferenciales actuan-
MX() Double (real)
do sobre funciones de forma del elemento B (e ) .
Matriz existente de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Posicin relativa 0 s 2b 1 de un punto dentro del
SP Double (real) elemento en direccin s donde se evala la matriz
B (e ) .
Posicin relativa 0 t 2a 1 de un punto dentro del
TP 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 coor-
denadas XYZ() y por la matriz de elementos ELE()mostrada en la Figura 8.8, la

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 111

matriz B ( e ) en el centroide del elemento rectangular bilineal nmero 1 se obtiene a


partir de la siguiente instruccin:

BRECTA BEL(), XYZ(), ELE(), 1, 0.5, 0.5

Los coeficientes de la matriz de operadores diferenciales actuando sobre funciones


de forma son los siguientes:

BEL() (2x4)
C1 C2 C3 C4
F1 -3.3333E-01 3.3333E-01 3.3333E-01 -3.3333E-01
F2 -5.0000E-01 -5.0000E-01 5.0000E-01 5.0000E-01

9.5. BTRIEL
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un ele-
mento 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
punto material se puede representar mediante el vector = [ xx yy xy ] . Para una
T

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 desplaza-
miento y el operador diferencial para elasticidad bidimensional es igual a:

0
x

=0 (9.18)
y


y x
Recordando que el vector de desplazamiento en el dominio de un elemento finito es de
la forma u ( e ) = N ( e ) U ( e ) , en general se obtiene un vector de la deformacin en ( e ) igual a:

(x) ( e ) = u(x) ( e ) = N(x) ( e ) U ( e ) = B(x) ( e ) U ( e ) x ( e ) (9.19)

En el elemento triangular lineal de elasticidad bidimensional, el vector de valores noda-


les U ( e ) = [u i( e ) vi( e ) u (je ) v (je ) u k( e ) v k( e ) ] , y la matriz de operadores diferenciales ac-
T

tuando sobre funciones de forma corresponde a:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


112 Captulo 8. Instrucciones para crear la matriz de funciones de forma de un elemento

x N i( e) 0 x N (j e) 0 x N k( e ) 0
(e) (e) ( e) ( e) (e)
N =B = 0 yN i 0 yN j 0 yN k (9.20)
y N i( e ) xN i
(e)
y N (j e) xN (e)
j y N k( e) xN (e)
k

Las componentes de la matriz B ( e ) son las derivadas de las funciones de forma del ele-
mento 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 Tipo de variable Descripcin


Matriz creada de los operadores diferenciales actuan-
MX() Double (real)
do sobre las funciones de forma del elemento B (e ) .
Matriz existente de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE 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 coor-
denadas 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

Los coeficientes de la matriz de operadores diferenciales actuando sobre funciones


de forma son los siguientes:

BEL() (3x6)
C1 C2 C3 C4 C5 C6
F1 -6.6667E-01 0.0000E+00 6.6667E-01 0.0000E+00 0.0000E+00 0.0000E+00
F2 0.0000E+00 0.0000E+00 0.0000E+00 -1.0000E+00 0.0000E+00 1.0000E+00
F3 0.0000E+00 -6.6667E-01 -1.0000E+00 6.6667E-01 1.0000E+00 0.0000E+00

9.6. BRECEL
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un ele-
mento 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 defi-
ne como = [ xx yy xy ] y se obtiene al aplicar el operador diferencial dado en la
T

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


PEFiCA Programa de elementos finitos a cdigo abierto 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 diferen-


T

ciales actuando sobre las funciones de forma es igual a:


x N i( e ) 0 x N (j e) 0 x N k( e ) 0 x N m( e) 0
(e) (e) (e) (e) ( e)
B = 0 yN i 0 yN j 0 yN k 0 yN m (9.21)
y N i( e) xN i
(e)
y N (j e) xN ( e)
j y N k( e ) xN (e)
k y N m( e) xN (e)
m

Las componentes de la matriz B ( e ) son las derivadas de las funciones de forma del ele-
mento 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 Descripcin


Matriz creada de los operadores diferenciales actuando
MX() Double (real)
sobre funciones de forma del elemento B (e ) .
Matriz existente de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades des-
ELE() Integer (entero)
crita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Posicin relativa 0 s 2b 1 de un punto dentro del
SP Double (real)
elemento en direccin s donde se evala la matriz B (e ) .
Posicin relativa 0 t 2a 1 de un punto dentro del
TP Double (real)
elemento en direccin t donde se evala la matriz B (e ) .
Tabla 9.6. Sintaxis de la instruccin BRECEL.

Ejemplo 9.6 Dada una malla de elementos finitos definida por la matriz de coor-
denadas 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

Los coeficientes de la matriz de operadores diferenciales actuando sobre funciones


de forma son los siguientes:

BEL() (3x8)
C1 C2 C3 C4 C5 C6
F1 -3.3333E-01 0.0000E+00 3.3333E-01 0.0000E+00 3.3333E-01 0.0000E+00
F2 0.0000E+00 -5.0000E-01 0.0000E+00 -5.0000E-01 0.0000E+00 5.0000E-01
F3 -5.0000E-01 -3.3333E-01 -5.0000E-01 3.3333E-01 5.0000E-01 3.3333E-01

C7 C8
F1 -3.3333E-01 0.0000E+00
F2 0.0000E+00 5.0000E-01
F3 5.0000E-01 -3.3333E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 elemen-
tos 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 aproxima-
cin del elemento.

10.1. KUNID2
Crea la matriz de rigidez de un elemento finito unidimensional lineal preparado para resol-
ver la ecuacin diferencial en trminos de (x) de la forma:
d 2
D +Q = 0 (10.1)
dx 2
Los parmetros D y Q de la ecuacin diferencial dependen de x, sin embargo, se consi-
dera 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 es-
pacio unidimensional, por lo tanto cuenta con dos nudos ubicados en sus extremos (Figura
10.1).

i L(e ) j

Figura 10.1. Elemento Unidimensional Lineal

Como resultado de plantear la solucin en el mtodo de los elementos finitos se obtiene


que la matriz de rigidez de un elemento es igual a:

K (e) =
(e )
(B(e) )T D (e)B (e) dx (10.2)
116 Captulo 10. Instrucciones para crear la matriz de rigidez de un elemento

donde B ( e ) = N ( e ) es el operador diferencial actuando sobre las funciones de forma


del elemento mostrado en la Ecuacin (9.8). Considerando que el parmetro D (e ) de la
ecuacin diferencial es constante en el dominio del elemento, se obtiene la siguiente matriz
de rigidez:
D (e) 1 1
K (e) = 1 1 (10.3)
L( e )
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

KUNID2 MX(), D, L

Argumento Tipo de variable Descripcin


MX() Double(real) Matriz de rigidez del elemento creada K (e ) .
Parmetro D (e ) de la ecuacin diferencial asociada al
D Double(real)
elemento finito.
L Double(real) Longitud del elemento finito L(e ) .
Tabla 10.1. Sintaxis de la instruccin KUNID2.

Ejemplo 10.1 Dado el parmetro de la ecuacin diferencial D ( e ) = 32000 kN m 2 ,


la matriz de rigidez de un elemento unidimensional lineal KEL() de longitud 1.2m se
calcula en el programa con la expresin:

KUNID2 KEL(), 32000, 1.2

Los coeficientes de la matriz resultante en kN m son los siguientes:

KEL() (2x2)
C1 C2
F1 2.6667E+04 -2.6667E+04
F2 -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), consi-
derando 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 117

i L(e ) 2 j L(e ) 2 k

x
Figura 10.2. Elemento Unidimensional Cuadrtico

Como resultado de plantear la solucin en el mtodo de los elementos finitos se obtiene


la matriz de rigidez de un elemento finito indicada en la Ecuacin (10.2), donde
B ( e ) = N ( e ) es el operador diferencial actuando sobre las funciones de forma del elemen-
to mostrado en la Ecuacin (9.8).
Considerando que el parmetro D (e ) de la ecuacin diferencial es constante en el domi-
nio del elemento, se obtiene la siguiente matriz de rigidez:
7 8 1
D (e)
K (e)
= ( e ) 8 16 8 (10.4)
3L
1 8 7
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

KUNID3 MX(), D, L

Argumento Tipo de variable Descripcin


MX() Double(real) Matriz de rigidez del elemento creada K (e ) .
Parmetro D (e ) de la ecuacin diferencial asociada al
D Double(real)
elemento finito.
L Double(real) Longitud del elemento finito L(e ) .
Tabla 10.2. Sintaxis de la instruccin KUNID3.

Ejemplo 10.2 Dado el parmetro de la ecuacin diferencial D ( e ) = 32000 kN m 2 ,


la matriz de rigidez de un elemento unidimensional cuadrtico KEL() de longitud
1.2m se calcula en el programa con la expresin:

KUNID3 KEL(), 32000, 1.2

Los coeficientes de la matriz resultante en kN m son los siguientes:

KEL() (3x3)
C1 C2 C3
F1 6.2222E+04 -7.1111E+04 8.8889E+03
F2 -7.1111E+04 1.4222E+05 -7.1111E+04
F3 8.8889E+03 -7.1111E+04 6.2222E+04

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


118 Captulo 10. Instrucciones para crear la matriz de rigidez de un elemento

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:
2 2
Dx + D G + Q = 0 (10.5)
x 2 y 2
y

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 ca-
da elemento finito. Los primeros dos parmetros se presentan como coeficientes de una
matriz diagonal D (e ) de la forma:

(e) D x( e ) 0
D = (10.6)
0 D y( e )

Como resultado de plantear la solucin en el mtodo de los elementos finitos se obtiene,


en general, que la matriz de rigidez de un elemento es igual a:

K ( e ) = (B ( e ) ) D ( e ) B ( e ) d ( e ) + G ( e ) (N ( e ) ) N ( e ) d ( e )
T T
(10.7)

donde N (e ) es la matriz de funciones de forma y B (e ) es el operador diferencial actuan-


do 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 )
bi 2 bi b j bi bk ci 2 ci c j ci c k
(e) D 2 D y 2
K D = x bj b j bk + cj c j ck
4 A 4 A
sim. bk
2
sim. c k
2
(10.8)

2 1 1
G A
K G( e ) = 2 1
12
sim. 2
donde,
bi = y j y k ci = x k x j
b j = yk yi c j = xi x k (10.9)
bk = y i y j c k = x j xi

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


PEFiCA Programa de elementos finitos a cdigo abierto 119

KTRIAN MX(), XYZ(), ELE(), IELE, DX, DY, G

Argumento Tipo de variable Descripcin


MX() Double (real) Matriz (creada) de rigidez del elemento K (e ) .
Matriz (existente) de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Parmetro D x( e ) de la ecuacin diferencial de Poisson
DX Double (real)
(Ecuacin (10.5) ).
Parmetro DY( e ) de la ecuacin diferencial de Poisson
DY Double (real)
(Ecuacin (10.5) ).
Parmetro G (e ) de la ecuacin diferencial de Poisson
G Double (real)
(Ecuacin (10.5) ).
Tabla 10.3. Sintaxis de la instruccin KTRIAN.

Ejemplo 10.3 En un problema controlado por la Ecuacin (10.5), para el cual


D x( e ) = D x( e ) = 0.5 y G ( e ) = 0.02 , se tiene la malla de elementos finitos mostrada en
la Figura 8.6, definida por la matriz de coordenadas XYZ() y por la matriz de ele-
mentos ELE(). La matriz de rigidez del elemento triangular lineal nmero 4 se ob-
tiene de la siguiente instruccin:

KTRIAN KEL(), XYZ(), ELE(), 4, 0.5, 0.5, 0.02

Los coeficientes de la matriz de rigidez son los siguientes:

KEL() (3x3)
C1 C2 C3
F1 1.6917E-01 -1.6542E-01 1.2500E-03
F2 -1.6542E-01 5.4417E-01 -3.7375E-01
F3 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)), prepara-
do 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 Captulo 10. Instrucciones para crear la matriz de rigidez de un elemento

K ( e ) = K (De ) + K (Ge )
2 2 1 1 2 1 1 2
D a 2 1 1 D y b 2 2 1
K (De ) = x +
6b 2 2 6 a 2 1
(10.10)
sim. 2 sim. 2
4 2 1 2
Gab 4 2 1

K G( e ) =
9 4 2

sim. 4
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

KRECTA MX(), XYZ(), ELE(), IELE, DX, DY, G

Argumento Tipo de variable Descripcin


MX() Double (real) Matriz (creada) de rigidez del elemento K ( e ) .
Matriz (existente) de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Parmetro D x( e ) de la ecuacin diferencial de Poisson
DX Double (real)
(Ecuacin (10.5) ).
Parmetro DY( e ) de la ecuacin diferencial de Poisson
DY Double (real)
(Ecuacin (10.5) ).
Parmetro G (e ) de la ecuacin diferencial de Poisson
G Double (real)
(Ecuacin (10.5) ).
Tabla 10.4. Sintaxis de la instruccin KRECTA.

Ejemplo 10.4 En un problema controlado por la Ecuacin (10.5), para el cual


D x( e ) = D x( e ) = 0.5 y G ( e ) = 0.02 , se tiene la malla de elementos finitos mostrada en
la Figura 8.8, definida por la matriz de coordenadas XYZ() y por la matriz de ele-
mentos ELE(). La matriz de rigidez del elemento rectangular bilineal nmero 1 se
obtiene de la siguiente instruccin:

KRECTA KEL(), XYZ(), ELE(), 1, 0.5, 0.5, 0.02

Los coeficientes de la matriz de rigidez son los siguientes:

KEL() (4x4)
C1 C2 C3 C4
F1 3.6444E-01 1.5556E-02 -1.7972E-01 -1.9278E-01
F2 1.5556E-02 3.6444E-01 -1.9278E-01 -1.7972E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 121

F3 -1.7972E-01 -1.9278E-01 3.6444E-01 1.5556E-02


F4 -1.9278E-01 -1.7972E-01 1.5556E-02 3.6444E-01

10.5. KTRIEL
Crea la matriz de rigidez de un elemento finito triangular lineal de elasticidad para un mate-
rial istropo en condicin plana de esfuerzos o de deformaciones (Figura 8.10).
Un problema de elasticidad se puede plantear a partir de la relacin deformacin-
desplazamiento, la ecuacin constitutiva del material lineal elstico y la ecuacin de equili-
brio del slido dada por el principio de la energa potencial total estacionaria. La deforma-
cin infinitesimal es igual al operador diferencial actuando sobre el vector de desplaza-
mientos, es decir,

= u (10.11)

Particularmente en problemas de elasticidad bidimensional en el plano xy, el vector de


componentes de deformacin = [ xx yy xy ] , el vector de desplazamientos
T

T
u = [u v] y el operador diferencial es igual a:


0
x

=0 (10.12)
y


y x
La ecuacin constitutiva de un material lineal elstico es de la forma:

= D (10.13)

donde el vector de componentes de esfuerzo en el plano xy es igual a


= [ xx yy xy ] y la matriz de las constantes elsticas del material corresponde a:
T

d11 d12 0
D = d12 d 22 0 (10.14)

0 0 d 33
Para un problema en condicin plana de esfuerzos,
E E E
d 11 = d 22 = 2
; d12 = 2
; d 33 = (10.15)
(1 ) (1 ) 2(1 + )
En cambio, para un problema en condicin plana de deformaciones los coeficientes de
D son:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


122 Captulo 10. Instrucciones para crear la matriz de rigidez de un elemento

(1 ) E E E
d11 = d 22 = ; d12 = ; d 33 = (10.16)
(1 + )(1 2 ) (1 + )(1 2 ) 2(1 + )
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 estaciona-
rio de la energa potencial total. Adems indica que si la condicin estacionaria es un m-
nimo 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:
1 T
2
U= dV (10.17)

Sustituyendo el vector de esfuerzo de la ecuacin constitutiva (Ecuacin (10.13)) en la


Ecuacin (10.17), la energa elstica de deformacin ser igual a:
1 T
2
U= D dV (10.18)

recordando que la matriz D es simtrica, es decir, D = D T .


Por otro lado, el trabajo realizado por las fuerzas msicas b = [bx b y ] y las fuerzas de
T

superficie p = [ p x p y ] , en el dominio y en el contorno de un slido corresponde


T

a:
W = b T u dV + p T u dS (10.19)

Por lo tanto, la energa potencial total es igual a:


1 T
P = U-W =
2
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 desplaza-
miento 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 1
P
T
P= (e)
; P (e) = ( e )T D ( e ) ( e ) dV b ( e ) u ( e ) dV p ( e )T u ( e ) dS (10.21)
( e ) =1 2 ( e ) ( e ) ( e )

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 123

Sustituyendo en la ecuacin anterior el vector desplazamiento u(x) ( e ) = N(x) ( e ) U ( e ) y el


vector deformacin (x) ( e ) = B(x) ( e ) U ( e ) x ( e ) definidos en el interior del elemento
finito, se tiene que:
1 ( e )T
P (e) = 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 (10.22)
2 (e ) (e ) ( e )
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 for-
ma:
T
P (e) P (e) P (e) P (e)
= L (10.23)
U ( e ) U i( e ) U (j e ) U ge( e )

siendo ge el nmero de valores nodales o grados de libertad del elemento (e).


Derivando la Ecuacin (10.22) con respecto al vector de valores nodales se obtiene:
P (e)
(e)
= B ( e )T D ( e ) B ( e ) dV U ( e ) N ( e )T b ( e ) dV N ( e )T p ( e ) dS (10.24)
U ( e ) ( e ) ( e )
En la expresin anterior el primer trmino entre parntesis se define como la matriz de
rigidez del elemento, es decir,
K (e) = B
( e )T
D ( e ) B ( e ) dV (10.25)
( e )

El vector de fuerzas f (e ) corresponde a la suma entre el vector de fuerzas msicas fb(e ) y


el vector de fuerzas de superficie f p(e ) definidos como:
f b( e ) = N N
( e )T
b ( e ) dV ; f p( e ) = ( e )T
p ( e ) dS ; f ( e ) = f b( e ) + f p( e ) (10.26)
( e ) ( e )

Sustituyendo las Ecuaciones (10.25) y (10.26) en la Ecuacin (10.24), se tiene:


P (e)
= K (e ) U (e ) f (e) (10.27)
U ( e )
La energa potencial total adopta un valor estacionario cuando las derivadas de la ener-
ga potencial total con respecto a los valores nodales del slido son nulas, es decir,
T
P P P P
= = 0 = 0 L = 0 = 0 (10.28)
U U 1 U j U gt
donde gt el nmero de grados de libertad del slido. La derivada de la sumatoria de la
energa potencial de cada elemento es igual a la sumatoria de las derivadas de las mismas
con respecto a los desplazamientos nodales del slido.
Las derivadas de la energa potencial del elemento con respecto a los desplazamientos
nodales del slido que no estn asociados al mismo son iguales a cero; por lo tanto solo es
necesario derivar a P (e) con respecto a los desplazamientos nodales propios del elemento

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


124 Captulo 10. Instrucciones para crear la matriz de rigidez de un elemento

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 denomi-
nada ensamblaje A (me ) =1 , es decir,
P m
P (e) m
P (e)
= = A (e) = 0 (10.29)
U ( e )=1 U ( e ) =1 U
Del ensamblaje del primer trmino de la Ecuacin (10.27), se establece la siguiente
igualdad:
m
m
A (K U (e) ) = A K (e) U
(e)
(10.30)
( e ) =1 ( e ) =1
Por lo tanto,
P
= KU f = 0 (10.31)
U
siendo K la matriz de rigidez del slido obtenida del ensamblaje de las matrices de rigi-
dez de los elementos, es decir,
m
K = A K (e) (10.32)
( e )=1
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) (10.33)
( e ) =1
La matriz de rigidez de un elemento triangular lineal de elasticidad indicada a continua-
cin 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 )
K = K ij( e ) K (jje ) K (jke ) ; h =
(e)

4 A (e)
K ik( e ) K (jke ) K (kke )
b2d + c2d bi c i (d 12 + d 33 ) bi b j d 11 + c i c j d 33 bi c j d 12 + b j c i d 33
K ii(e ) = h i 11 i 33 (e )
K ij = h b c d + b c d
2 2
bi c i ( d 12 + d 33 ) bi d 33 + c i d 22 j i 12 i j 33 bi b j d 33 + c i c j d 22 (10.34)
b b d + c c d bi c k d 12 + bk c i d 33 b 2j d 11 + c 2j d 33 b j c j ( d 12 + d 33 )
K ik( e ) = h i k 11 i k 33 K (e)
jj = h 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
b j bk d 11 + c j c k d 33 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 )
K (jke ) = h K (e)
= h
bk c j d 12 + b j c k d 33 b j bk d 33 + c j c k d 22 kk 2 2
bk c k ( d 12 + d 33 ) bk d 33 + c k d 22

donde t (e ) es el espesor y A(e ) el rea del elemento. Los parmetros b y c corresponde


a las diferencias entre las coordenadas de los nudos de la forma:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 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) Matriz (creada) de rigidez del elemento K (e ) .
Matriz (existente) de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Mdulo de elasticidad o mdulo de Young del mate-
EYOU Double (real)
rial.
POIS Double (real) Relacin de Poisson del material.
TESP Double (real) Espesor del elemento finito.
Indica el tipo de numeracin de los grados de libertad
conocidos:
Optional Integer Si TP=0 considera un problema en condicin
TP (argumento opcional plana de esfuerzos (por defecto).
tipo entero) Si TP=1 considera un problema en condicin
plana de deformaciones y un espesor unitario
TESP=1.0.
Tabla 10.5. Sintaxis de la instruccin KTRIEL.

Ejemplo 10.5 Una presa considerada en condicin plana de deformaciones, est


hecha de un material lineal elstico istropo con mdulo de Young igual a
2 10 6 kN m 2 , y relacin de Poisson de 0.25. Se tiene la malla de elementos fini-
tos mostrada en la Figura 8.6, definida por la matriz de coordenadas XYZ() y por la
matriz de elementos ELE(). La matriz de rigidez del elemento triangular lineal de
elasticidad nmero 4 se obtiene de la siguiente instruccin:

KTRIEL KEL(), XYZ(), ELE(), 4, 2000000#, 0.25, 0#, 1

Los coeficientes de la matriz de rigidez son los siguientes:

KEL() (6x6)
C1 C2 C3 C4 C5 C6
F1 8.0000E+05 0.0000E+00 -8.0000E+05 4.0000E+05 0.0000E+00 -4.0000E+05
F2 0.0000E+00 2.6667E+05 4.0000E+05 -2.6667E+05 -4.0000E+05 0.0000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


126 Captulo 10. Instrucciones para crear la matriz de rigidez de un elemento

F3 -8.0000E+05 4.0000E+05 1.4000E+06 -8.0000E+05 -6.0000E+05 4.0000E+05


F4 4.0000E+05 -2.6667E+05 -8.0000E+05 2.0667E+06 4.0000E+05 -1.8000E+06
F5 0.0000E+00 -4.0000E+05 -6.0000E+05 4.0000E+05 6.0000E+05 0.0000E+00
F6 -4.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) Matriz (creada) de rigidez del elemento K (e ) .
Matriz (existente) de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Mdulo de elasticidad o mdulo de Young del mate-
EYOU Double (real)
rial.
POIS Double (real) Relacin de Poisson del material.
TESP Double (real) Espesor del elemento finito.
Indica el tipo de numeracin de los grados de libertad
conocidos:
Optional Integer Si TP=0 considera un problema en condicin
TP (argumento opcional plana de esfuerzos (por defecto).
tipo entero) Si TP=1 considera un problema en condicin
plana de deformaciones y un espesor unitario
TESP=1.0.
Tabla 10.6. Sintaxis de la instruccin KRECEL.

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


en la Tabla 10.6.
Tal como se plantea en las ecuaciones (10.17) a (10.33), la matriz de rigidez de un ele-
mento rectangular bilineal se obtiene sustituyendo a la matriz B (e ) de la Ecuacin (9.21) en
la Ecuacin (10.25), cuyo resultado se indica en la Ecuacin (10.35) (Weaver & Johnson
1984), donde t (e ) es el espesor y A(e ) el rea del elemento. Las constantes elsticas
d11 , d 22 , d12 , d33 estn definidas en las ecuaciones (10.15) y (10.16).

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 127

K ( e ) = K 1( e ) + K (2e )
2 s1
s 2 s2 sim.
3
2 s1 s3 2 s1

s s2 s3 2 s2
K 1( e ) = 3
s1 s3 s1 s3 2 s1

s3 s2 s3 2 s2 s3 2 s2
s1 s3 s1 s3 2 s1 s3 2 s1

s3 2 s2 s3 s2 s3 s2 s3 2 s2
d11at ( e ) d 22bt ( e ) d t (e)
s1 = , s2 = , s3 = 12 (10.35)
6b 6a 4
2 s4
s 2 s5 sim.
6
s4 s6 2 s4

s 2 s5 s6 2 s5
K (2e ) = 6
s4 s6 2 s4 s6 2 s4

s6 s5 s6 s5 s6 2 s5
2 s4 s6 s4 s6 s4 s6 2 s4

s6 s5 s6 s5 s6 2 s5 s6 2 s5
( e) (e) (e)
d 33bt d 33 at d 33t
s4 = , s5 = , s6 =
6a 6b 4

Ejemplo 10.6 Una lmina de espesor 0.001m considerado en condicin plana de


esfuerzos, est hecha de un material lineal elstico istropo con mdulo de Young
igual a 2 10 7 kN m 2 , y relacin de Poisson de 0.25. Se tiene la malla de elemen-
tos finitos mostrada en la Figura 8.8, definida por la matriz de coordenadas XYZ() y
por la matriz de elementos ELE(). La matriz de rigidez del elemento rectangular bi-
lineal de elasticidad nmero 1 se obtiene de la siguiente instruccin:

KRECEL KEL(), XYZ(), ELE(), 1, 20000000#, 0.25, 0.001

Los coeficientes de la matriz de rigidez son los siguientes:

KEL() (8x8)
C1 C2 C3 C4 C5 C6
F1 8.7407E+03 3.3333E+03 -2.7407E+03 -6.6667E+02 -4.3704E+03 -3.3333E+03
F2 3.3333E+03 1.2444E+04 6.6667E+02 3.5556E+03 -3.3333E+03 -6.2222E+03
F3 -2.7407E+03 6.6667E+02 8.7407E+03 -3.3333E+03 -1.6296E+03 -6.6667E+02
F4 -6.6667E+02 3.5556E+03 -3.3333E+03 1.2444E+04 6.6667E+02 -9.7778E+03
F5 -4.3704E+03 -3.3333E+03 -1.6296E+03 6.6667E+02 8.7407E+03 3.3333E+03
F6 -3.3333E+03 -6.2222E+03 -6.6667E+02 -9.7778E+03 3.3333E+03 1.2444E+04

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


128 Captulo 10. Instrucciones para crear la matriz de rigidez de un elemento

F7 -1.6296E+03 -6.6667E+02 -4.3704E+03 3.3333E+03 -2.7407E+03 6.6667E+02


F8 6.6667E+02 -9.7778E+03 3.3333E+03 -6.2222E+03 -6.6667E+02 3.5556E+03

C7 C8
F1 -1.6296E+03 6.6667E+02
F2 -6.6667E+02 -9.7778E+03
F3 -4.3704E+03 3.3333E+03
F4 3.3333E+03 -6.2222E+03
F5 -2.7407E+03 -6.6667E+02
F6 6.6667E+02 3.5556E+03
F7 8.7407E+03 -3.3333E+03
F8 -3.3333E+03 1.2444E+04

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


Captulo 11
Instrucciones para crear el vector de fuerzas
de un elemento
Las instrucciones presentadas a continuacin crean el vector de fuerzas equivalentes o vec-
tor 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 Ex-
presin (10.1). Los parmetros D y Q de la ecuacin diferencial dependen de x, sin em-
bargo, 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)

En particular para el elemento unidimensional lineal N (e ) es la matriz de funciones de


forma expresada en la Ecuacin (8.5). Considerando que el parmetro Q (e ) de la ecuacin
diferencial es constante en el dominio del elemento, se obtiene el siguiente vector de trmi-
nos independientes:
Q ( e ) L( e ) 1
f (e) = 1 (11.2)
2
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
130 Captulo 11 Instrucciones para crear el vector de fuerzas de un elemento

FUNID2 MX(), Q, L

Argumento Tipo de variable Descripcin


Vector (creado) de trminos independientes del ele-
MX() Double (real)
mento f (e ) .
Parmetro Q (e ) de la ecuacin diferencial asociada al
Q Double (real)
elemento finito.
L Double (real) Longitud del elemento finito L(e ) .
Tabla 11.1. Sintaxis de la instruccin FUNID2.

Ejemplo 11.1 Dado el parmetro de la ecuacin diferencial Q ( e ) = 10 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:

FUNID2 FEL(), 10, 1.2

Los coeficientes de la matriz resultante en kN son los siguientes:

FEL() (2x1)
C1
F1 6.0000E+00
F2 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 Ex-
presin (10.1), considerando que Q (e ) varia de forma lineal en el interior de cada elemento
finito, es decir,.
x
Q ( e ) ( x) = Qi( e ) + (Q (j e ) Qi( e ) ) x ( e) (11.3)
L( e )
siendo Q (ej ) y Qi(e ) los valores del parmetro Q (e ) en los nudos del elemento i y j, res-
pectivamente.
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 pa-
rmetro Q (e ) , como:

(e)
Q (j e ) L( e ) 1 (Q (j e ) Qi( e ) )L( e ) 1
f = + (11.4)
2 1 6 2

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


PEFiCA Programa de elementos finitos a cdigo abierto 131

FUN2QL MX(), QI, QJ, L

Argumento Tipo de variable Descripcin


Vector (creado) de trminos independientes del ele-
MX() Double (real)
mento f (e ) .
Valor del parmetro Q (e ) de la ecuacin diferencial
QI Double (real)
en el nudo i del elemento.
Valor del parmetro Q (e ) de la ecuacin diferencial
QJ Double (real)
en el nudo j del elemento.
L 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 va-


ria 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

Los coeficientes de la matriz resultante en kN son los siguientes:

FEL() (2x1)
C1
F1 7.0000E+00
F2 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 Ex-
presin (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:
1
(e)
Q ( e ) L( e )
f = 4 (11.5)
6
1
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


132 Captulo 11 Instrucciones para crear el vector de fuerzas de un elemento

FUNID3 MX(), Q, L

Argumento Tipo de variable Descripcin


Vector (creado) de trminos independientes del ele-
MX() Double (real)
mento f (e ) .
Parmetro Q (e ) de la ecuacin diferencial asociada al
Q Double (real)
elemento finito.
L Double (real) Longitud del elemento finito L(e ) .
Tabla 11.3. Sintaxis de la instruccin FUNID3.

Ejemplo 11.3 Dado el parmetro de la ecuacin diferencial Q ( e ) = 10 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:

FUNID3 FEL(), 10, 1.2

Los coeficientes de la matriz resultante en kN son los siguientes:

FEL() (3x1)
C1
F1 2.0000E+00
F2 8.0000E+00
F3 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 Ex-
presin (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 Ecua-
cin (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 unidimen-
sional lineal considerando variacin lineal del parmetro Q (e ) , como:
1 0
(e)
Q (j e ) L( e ) (Q (j e ) Qi( e ) )L( e ) 2
f = 4 + (11.6)
6 6
1 1
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


PEFiCA Programa de elementos finitos a cdigo abierto 133

FUN3QL MX(), QI, QJ, L

Argumento Tipo de variable Descripcin


Vector (creado) de trminos independientes del ele-
MX() Double (real)
mento f (e ) .
Valor del parmetro Q (e ) de la ecuacin diferencial
QI Double (real)
en el nudo i del elemento.
Valor del parmetro Q (e ) de la ecuacin diferencial
QJ Double (real)
en el nudo j del elemento.
L 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 va-


ria 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

Los coeficientes de la matriz resultante en kN son los siguientes:

FEL() (3x1)
C1
F1 2.0000E+00
F2 1.0000E+01
F3 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 expresa-
da en la Ecuacin (10.5), considerando al parmetro Q constante en el interior del elemen-
to, 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 ) presenta-


da en las Ecuaciones (8.14) a (8.16), en la expresin anterior se obtiene el vector de trmi-
nos independientes de un elemento triangular lineal como:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


134 Captulo 11 Instrucciones para crear el vector de fuerzas de un elemento

1
Q (e) A(e)
f (e) = 1 (11.8)
3
1
donde A(e ) es el rea del elemento finito.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

FTRIAN MX(), XYZ(), ELE(), IELE, Q

Argumento Tipo de variable Descripcin


Vector (creado) de trminos independientes del ele-
MX() Double (real)
mento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Parmetro Q (e ) de la ecuacin diferencial de Poisson
Q Double (real)
(Ecuacin (10.5) ).
Tabla 11.5. Sintaxis de la instruccin FTRIAN.

Ejemplo 11.5 En un problema controlado por la Ecuacin (10.5), para el cual


Q ( e ) = 10 , se tiene la malla de elementos finitos mostrada en la Figura 8.6, definida
por la matriz de coordenadas XYZ() y por la matriz de elementos ELE(). El vector
de trminos independientes del elemento triangular lineal nmero 4 se obtiene de la
siguiente instruccin:

FTRIAN FEL(), XYZ(), ELE(), 4, 10

Los coeficientes del vector de trminos independientes son los siguientes:

FEL() (3x1)
C1
F1 2.5000E+00
F2 2.5000E+00
F3 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


PEFiCA Programa de elementos finitos a cdigo abierto 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:
1
Q A(e) (e) 1
f (e) = (11.9)
4 1

1
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

FRECTA MX(), XYZ(), ELE(), IELE, Q

Argumento Tipo de variable Descripcin


Vector (creado) de trminos independientes del ele-
MX() Double (real)
mento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Parmetro Q (e ) de la ecuacin diferencial de Poisson
Q Double (real)
(Ecuacin (10.5) ).
Tabla 11.6. Sintaxis de la instruccin FRECTA.

Ejemplo 11.6 En un problema controlado por la Ecuacin (10.5), para el cual


Q ( e ) = 10 , se tiene la malla de elementos finitos mostrada en la Figura 8.8, definida
por la matriz de coordenadas XYZ() y por la matriz de elementos ELE(). El vector
de trminos independientes del elemento rectangular bilineal nmero 1 se obtiene
de la siguiente instruccin:

FRECTA KEL(), XYZ(), ELE(), 1, 10

Los coeficientes de la matriz de rigidez son los siguientes:

FEL() (4x1)
C1
F1 3.7500E+00
F2 3.7500E+00
F3 3.7500E+00
F4 3.7500E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


136 Captulo 11 Instrucciones para crear el vector de fuerzas de un elemento

11.7. FTRIES
Crea el vector de fuerzas en los nudos equivalentes a la aplicacin de una fuerza de superfi-
cie 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 fi-
nitos 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
una fuerza por unidad de superficie o presin constante p (jke ) = [ p x p y ] sobre la cara jk
T

del elemento finito (Figura 11.1), 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.10)
(jke )

La expresin anterior es una integral de lnea definidas en entre los nudos j y k. Las ca-
ras Lij , Ljk y Lik del elemento se designa como los lados 1, 2 y 3 respectivamente.

nudo k nudo k
y

x
py
px
lado 3 lado 2 lado 3 lado 2

lado 1 lado 1
nudo i 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.

De igual forma, el vector de fuerzas equivalentes a la aplicacin de una presin p ij(e ) y


p (eik ) sobre las caras ij y ik respectivamente, son las siguientes:

(N ) (N )
(e) T (e) T
f p( e(ij) ) = p ij( e ) tdLij ; f p( e()ik ) = p ik( e ) tdLik (11.11)
ij( e ) ik( e )

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 una presin en cada lado del
elemento triangular lineal, como:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 137

px 0 px
p 0 p
y y
tLij p x tL jk p x tLik 0
f p( e(ij) ) = (e)
; f p ( jk ) =
(e)
; f p ( ik ) = (11.12)
2 py 2 py 2 0
0 px px

0 py py
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

FTRIES MX(), XYZ(), ELE(), IELE, TESP, PX, PY, LADO

Argumento Tipo de variable Descripcin


Vector (creado) de trminos independientes del ele-
MX() Double (real)
mento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
TESP Double (real) Espesor del elemento finito.
Componente en direccin x de la presin aplicada
PX Double (real)
sobre la cara LADO del elemento.
Componente en direccin y de la presin aplicada
PY Double (real)
sobre la cara LADO del elemento.
Indicador de la cara del elemento sobre el cual se
aplica la presin (Figura 11.1).
Si LADO =1 la presin est aplicada sobre la
cara ij del elemento.
LADO Integer (entero)
Si LADO =2 la presin est aplicada sobre la
cara jk del elemento.
Si LADO =3 la presin est aplicada sobre la
cara ik del elemento.
Tabla 11.7. Sintaxis de la instruccin FTRIES.

Ejemplo 11.7 En el problema de elasticidad plana con espesor constante de 0.10 m


descrito por la malla de la Figura 8.6, se aplica una presin constante en direccin
x de 50 kN m 2 entre los nudos 8 y 9 como se indica en la Figura 11.2. El vector
de fuerzas equivalentes a la aplicacin de tal presin sobre el lado 2 del elemento
triangular lineal nmero 4 se obtiene de la siguiente expresin:

FTRIES FEL(), XYZ(), ELE(), 4, 0.1, 50, 0, 2

Los coeficientes del vector de fuerzas son los siguientes:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


138 Captulo 11 Instrucciones para crear el vector de fuerzas de un elemento

FEL() (6x1)
C1
F1 0.0000E+00
F2 0.0000E+00
F3 2.5000E+00
F4 0.0000E+00
F5 2.5000E+00
F6 0.0000E+00

nudo 9

y
lado 3
p x = 50 kN / m 2
x lado 2

elem. 04

nudo 5 lado 1 nudo 8


(inicial)
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 cons-
tante 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 fi-
nitos 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
una fuerza msica b ( e ) = [bx b y ] produce un vector de fuerzas equivalentes en los nudos
T

del elemento de la forma:

(N )
(e) T
f b( e ) = b ( e ) tdA ( e ) (11.13)
( e )

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
cuyo caso b ( e ) = [0 ] .
T

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:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 139

b x
b
y
tA x
(e) b
f b( e ) = (11.14)
3 b y
b x

b y
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

FTRIEC MX(), XYZ(), ELE(), IELE, TESP, BX, BY

Argumento Tipo de variable Descripcin


Vector (creado) de trminos independientes del ele-
MX() Double (real)
mento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
TESP Double (real) Espesor del elemento finito.
BX Double (real) Componente en direccin x de la fuerza msica.
BY Double (real) Componente en direccin y de la fuerza msica.
Tabla 11.8. Sintaxis de la instruccin FTRIEC.

Ejemplo 11.8 En el problema de elasticidad plana con espesor constante de 0.10 m


descrito por la malla de la Figura 8.6, se considera un peso especfico del material
de 24 kN m 3 . El vector de fuerzas equivalentes a la aplicacin de las fuerzas m-
sicas en el elemento triangular lineal nmero 4 se obtiene de la siguiente expresin:

FTRIEC FEL(), XYZ(), ELE(), 4, 0.1, 0, -24

Los coeficientes del vector de fuerzas son los siguientes:

FEL() (6x1)
C1
F1 0.0000E+00
F2 -6.0000E-01
F3 0.0000E+00
F4 -6.0000E-01
F5 0.0000E+00
F6 -6.0000E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


140 Captulo 11 Instrucciones para crear el vector de fuerzas de un elemento

11.9. FRECES
Crea el vector de fuerzas en los nudos equivalentes a la aplicacin de una fuerza de superfi-
cie 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 fi-
nitos 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
de superficie o presin constante p (jke ) = [ p x p y ] sobre la cara jk del elemento finito
T

(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 ca-
ras Lij , Ljk , Lkm y Lim del elemento se designa como los lados 1, 2, 3 y 4 respectivamente.

nudo m nudo k nudo m nudo k

lado 3 lado 3

lado 2 px lado 2
py
lado 4 lado 4

lado 1 lado 1
nudo i nudo j y nudo i nudo j

x
Figura 11.3. Fuerza de superficie aplicada sobre el lado jk o lado 2 del elemento finito rectangular
bilineal en direccin x y y.

De igual forma, el vector de fuerzas equivalentes a la aplicacin de una presin p (eij ) ,


p (ekm) y p (eim) sobre las caras ij, km y im respectivamente, son las siguientes:

(N ) p
(e) T
f p( e( )ij ) = (e)
ij tdLij
ij( e )

(N ) p
(e) T
f p( e( )km) = ( e)
km tdLkm (11.16)
(e )
km

(N ) p
(e) T
f p( e( )im ) = (e)
im tdLim
(e)
im

Dada la matriz de funciones de forma expresada en las Ecuaciones (8.21) y (8.26), se


obtienen el vector de fuerzas equivalentes a la aplicacin de una presin en cada lado del
elemento rectangular bilineal, como:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 141

px 0 0 px
p 0 0 p
y y
px px 0 0

tLij p y ( e ) tL jk p y ( e ) tLkm 0 ( e ) tLim 0
f p( e(ij) ) = f p ( jk ) = f p ( km) = f p (im ) = (11.17)
2 0 2 px 2 px 2 0

0 py py 0
0 0 px px

0 0 p y p y
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

FRECES MX(), XYZ(), ELE(), IELE, TESP, PX, PY, LADO

Argumento Tipo de variable Descripcin


Vector (creado) de trminos independientes del ele-
MX() Double (real)
mento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
TESP Double (real) Espesor del elemento finito.
Componente en direccin x de la presin aplicada
PX Double (real)
sobre la cara LADO del elemento.
Componente en direccin y de la presin aplicada
PY Double (real)
sobre la cara LADO del elemento.
Indicador de la cara del elemento sobre el cual se
aplica la presin (Figura 11.3).
Si LADO =1 la presin est aplicada sobre la
cara ij del elemento.
Si LADO =2 la presin est aplicada sobre la
LADO Integer (entero)
cara jk del elemento.
Si LADO =3 la presin est aplicada sobre la
cara km del elemento.
Si LADO =4 la presin est aplicada sobre la
cara im del elemento.
Tabla 11.9. Sintaxis de la instruccin FRECES.

Ejemplo 11.9 En el problema de elasticidad plana con espesor constante de 0.10 m


descrito por la malla de la Figura 8.8, se aplica una presin constante en direccin
x de 50 kN m 2 entre los nudos 7 y 8 como se indica en la Figura 11.4. El vector
de fuerzas equivalentes a la aplicacin de tal presin sobre el lado 2 del elemento
rectangular bilineal nmero 3 se obtiene de la siguiente expresin:

FRECES FEL(), XYZ(), ELE(), 4, 0.1, 50, 0, 2

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


142 Captulo 11 Instrucciones para crear el vector de fuerzas de un elemento

Los coeficientes del vector de fuerzas son los siguientes:

FEL() (8x1)
C1
F1 0.0000E+00
F2 0.0000E+00
F3 2.5000E+00
F4 0.0000E+00
F5 2.5000E+00
F6 0.0000E+00
F7 0.0000E+00
F8 0.0000E+00

nudo 8
nudo 5
lado 3

lado 2
y lado 4
p x = 50 kN / m 2
elem. 03
x

lado 1
nudo 4 nudo 7
(inicial)
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 cons-
tante 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 fi-
nitos se obtiene el vector de fuerzas equivalentes a la accin de una fuerza msica
b ( e ) = [bx b y ] como lo indica la Ecuacin (11.13).
T

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:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 143

b x
b
y
b x
( e ) b
tA y
f b( e ) = (11.18)
4 b x

b y
b x

b y
siendo A(e ) y t el rea y el espesor del elemento finito.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

FRECEC MX(), XYZ(), ELE(), IELE, TESP, BX, BY

Argumento Tipo de variable Descripcin


Vector (creado) de trminos independientes del ele-
MX() Double (real)
mento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
TESP Double (real) Espesor del elemento finito.
BX Double (real) Componente en direccin x de la fuerza msica.
BY Double (real) Componente en direccin y de la fuerza msica.
Tabla 11.10. Sintaxis de la instruccin FRECEC.

Ejemplo 11.10 En el problema de elasticidad plana con espesor constante de 0.10


m descrito por la malla de la Figura 8.8, se considera un peso especfico del mate-
rial de 24 kN m 3 . El vector de fuerzas equivalentes a la aplicacin de las fuerzas
msicas en el elemento rectangular bilineal nmero 1 se obtiene de la siguiente ex-
presin:

FRECEC FEL(), XYZ(), ELE(), 1, 0.1, 0, -24

Los coeficientes del vector de fuerzas son los siguientes:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


144 Captulo 11 Instrucciones para crear el vector de fuerzas de un elemento

FEL() (8x1)
C1
F1 0.0000E+00
F2 -9.0000E-01
F3 0.0000E+00
F4 -9.0000E-01
F5 0.0000E+00
F6 -9.0000E-01
F7 0.0000E+00
F8 -9.0000E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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:

= D (12.1)

donde y son los vectores de las componentes de esfuerzo y deformacin respecti-


vamente. 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
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


T

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 d12 0
D = d12 d 22 0 (12.2)

0 0 d 33
Para un problema en condicin plana de esfuerzos,
E E E
d 11 = d 22 = 2
; d12 = 2
; d 33 = (12.3)
(1 ) (1 ) 2(1 + )
En cambio, para un problema en condicin plana de deformaciones los coeficientes de
D son:
146 Captulo 12. Instrucciones para crear matrices de constantes elsticas

(1 ) E E E
d11 = d 22 = ; d12 = ; d 33 = (12.4)
(1 + )(1 2 ) (1 + )(1 2 ) 2(1 + )
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

CELAPL MX(), E, NU, ETIPO

Argumento Tipo de variable Descripcin


MX() Double (real) Matriz de constantes elsticas D.
E Double (real) Mdulo de elasticidad o de Young del material
NU Double (real) Relacin de Poisson del material
Si ETIPO=0 considera condicin plana de esfuer-
Optional Integer
zos.
ETIPO (argumento opcional
tipo entero) Si ETIPO=1 considera condicin plana de defor-
maciones.
Tabla 12.1. Sintaxis de la instruccin CELAPL.

Ejemplo 12.1 La matriz de constantes elsticas de un material lineal elstico is-


tropo 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

Los coeficientes del vector de fuerzas son los siguientes:

DMT() (3x3)
C1 C2 C3
F1 2.1333E+06 5.3333E+05 0.0000E+00
F2 5.3333E+05 2.1333E+06 0.0000E+00
F3 0.0000E+00 0.0000E+00 8.0000E+05

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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:

= T (13.1)

siendo el vector de la misma variable en la base original. Despejando de la ecua-


cin anterior y considerando que las matrices de transformacin son ortonormales, es decir,
T 1 = T T , se tiene que:

= TT (13.2)

En otros casos la instruccin transforma directamente a la variable fsica. Estas subru-


tinas 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.
Sea un vector de la forma v = [v x v y ] , cuyas componentes estn definidas en una ba-
T

se coordenada global xy. Las componentes del vector en la base coordenada local x y ,
v = [v x v y ] se obtienen de la siguiente expresin:
T

v x cos sin v x
v = Tv = (13.3)
v y sin cos v y
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. Instrucciones de cambios de base

TRVECO MX(), ANGL

Argumento Tipo de variable Descripcin


MX() Double (real) Matriz de transformacin de base coordenada T.
Angulo en grados entre el eje x (global) y el eje x
ANGL Double (real)
(local).
Tabla 13.1. Sintaxis de la instruccin TRVECO.

Ejemplo 13.1 La matriz de transformacin de vectores entre la base global y una


base local rotada 30 grados entre el eje x y el eje x , se calcula en el programa me-
diante la siguiente expresin:

TRVECO TR(), 30

Los coeficientes del vector de fuerzas son los siguientes:

TR() (2x2)
C1 C2
F1 8.6603E-01 5.0000E-01
F2 -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.
Sea un vector = [ xx yy xy ] que contiene las componentes de esfuerzo defini-
T

das en la base original xy. Las componentes de esfuerzo en la base coordenada local x y ,
= [ xx yy xy ] se obtienen de la siguiente expresin:
T

= T
xx cos 2 sin 2 2 sin cos xx
= (13.4)
yy sin 2 cos 2 2 sin cos yy
xy sin cos sin cos cos 2 sin 2 xy

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
= [ xx yy xy ] se calculan de la forma:
T

= T (13.5)

Siendo = [ xx yy xy ] el vector de las componentes de deformacin en la base


T

global y T la matriz de transformacin presentada en la Ecuacin (13.4).


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


PEFiCA Programa de elementos finitos a cdigo abierto 149

TRESP2 MX(), ANGL

Argumento Tipo de variable Descripcin


MX() Double (real) Matriz de transformacin de base coordenada T.
Angulo en grados entre el eje x (global) y el eje x
ANGL Double (real)
(local).
Tabla 13.2. Sintaxis de la instruccin TRESP2.

Ejemplo 13.2 La matriz de transformacin de vectores entre la base global y una


base local rotada 30 grados entre el eje x y el eje x , se calcula en el programa me-
diante la siguiente expresin:

TRESP2 TR(), 30

Los coeficientes del vector de fuerzas son los siguientes:

TR() (3x3)
C1 C2 C3
F1 7.5000E-01 2.5000E-01 8.6603E-01
F2 2.5000E-01 7.5000E-01 -8.6603E-01
F3 -4.3301E-01 4.3301E-01 5.0000E-01

13.3. TRPRIN
Calcula los esfuerzos (o deformaciones) principales y las respectivas direcciones principa-
les 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
en un vector de la forma p = [ p1 p 2 ] , en cambio, el ngulo que forma el eje x (glo-
T

bal) con la direccin principal 1 p1 y con la direccin principal 2 p 2 se guardan en otro


vector de la forma p = [ p1 p 2 ] .
T

Sea un vector = [ xx yy xy ] que contiene las componentes de esfuerzo defini-


T

das en la base original xy, los esfuerzos principales son iguales a:

p1 =
1
2
[
( xx + yy ) + ( xx + yy )2 + (2 xy )2 ]
(13.6)
p2
1
2
[
= ( xx + yy ) ( xx + yy ) + (2 xy )
2 2
]
donde p1 > p 2 . Las direcciones principales se definen como:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


150 Captulo 13. Instrucciones de cambios de base

( xx p1 )
p1 = arctg
xy
(13.7)
( xx p 2 )
p2 = arctg
xy
De forma anloga se calculan las deformaciones principales p1 y p 2 , y sus respecti-
vas direcciones.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

TRPRIN SXY(), MPR(), TPR()

Argumento Tipo de variable Descripcin


Vector de componentes de esfuerzos en la base coor-
SXY() Double (real)
denada original.
MPR() Double (real) Vector de esfuerzos principales.
Vector de direcciones principales. ngulo en grados
TPR() 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


xx = 1.7979 kN m , yy = 16.2330 kN m 2 y xy = 2.8895 kN m 2 , guardados
2

en el vector STE(), los esfuerzos y las direcciones principales se calcula en el pro-


grama mediante la siguiente expresin:

TRPRIN STE(), SPE(), TPE()

Los esfuerzos principales contenidos en el vector SPE() son:

SPE() (2x1)
C1
F1 2.2496E+00
F2 -1.6685E+01

Las direcciones principales contenidos en el vector TPE() son:

TPE() (2x1)
C1
F1 -8.8852E+00
F2 8.1115E+01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 151

13.4. TRVMIS
Calcula el esfuerzo de von Misses asociado al criterio de fluencia de la energa de distor-
sin (Popov 1998), a partir de las componentes de esfuerzo en la base original en un espa-
cio bidimensional.
Sea un vector = [ xx yy xy ] que contiene las componentes de esfuerzo defini-
T

das 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)

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

[variable]= TRVMIS(SXY())

Argumento Tipo de variable Descripcin


Vector de componentes de esfuerzos en la base coor-
SXY() Double (real)
denada original.
TRVMIS 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())

El valor calculado del SVM es igual a 17.92 kN m 2 .

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 nu-
dos 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 condicio-
nes 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 gra-
dos de libertad desconocidos con la informacin dada por la matriz indicadora de condicio-
nes 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 noda-
les del sistema pueda dividirse en dos subvectores: el vector de valores nodales desco-
nocidos y el vector de valores nodales conocidos . Por lo tanto la ecuacin de
equilibrio del sistema:

K = f (14.1)

se puede expresar de la forma:


K K f
K = f (14.2)
K
donde la matriz de rigidez se ha dividido las cuarto submatrices K , K , K y K
de acuerdo al nmero de grados de libertad desconocidos. Asimismo, el vector de trmi-
nos independientes est compuesto por los subvectores f y f .
Ahora las cantidades de inters del problema que corresponden a los valores nodales de-
sconocidos se obtienen de la primera ecuacin de la expresin matricial anterior, como:
1
= K (f K ) (14.3)
154 Captulo 14. Instrucciones para numerar los grados de libertad

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

NGLNUD MGL(), MRE(), TP

Argumento Tipo de variable Descripcin


Matriz creada que contiene los grados de libertad por
MGL() Integer(entero)
nudo (Seccin 3.4).
Matriz existente que contiene las condiciones de bor-
MRE() Integer(entero) de del problema (Seccin 3.4). Los coeficientes son 0
o 1.
Indica el tipo de numeracin de los grados de libertad
conocidos:
Optional Integer Si TP=0 el nmero identificador los grados de
TP (argumento opcional libertad conocidos es el cero (por defecto).
tipo entero) Si TP=1 los grados de libertad conocidos se nume-
ran despus de numerar todos los grados de liber-
tad desconocidos.
Tabla 14.1. Sintaxis de la instruccin NGLNUD.

(04) (09) (14)


(03) (08) (13) notacin
03 06 09
02 04 # grado de magnitud de un
(02) (07) (12) libertad g.l. conocido
(01) (06) (11)
(11)=2.4
02 05 08 (10)
01 03
07 # nudo
(17)=0 (16)=0 (15)=0
(18)=0 (05) (10)
malla de
01 04 07 elementos finitos

Matriz indicadora de condiciones Matriz de grados de libertad


de borde (existente) por nudo (creada)

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 ma-
triz 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


PEFiCA Programa de elementos finitos a cdigo abierto 155

La malla de elementos finitos, la matriz MRE() y la matriz creada MGL(), se mues-


tran en la Figura 14.1. En cambio, mediante la siguiente instruccin se crea la ma-
triz 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 mues-


tran en la Figura 14.2.

(04) (09) (14)


(03) (08) (13) notacin
03 06 09
02 04 # grado de magnitud de un
(02) (07) (12) libertad g.l. conocido
(01) (06) (11)
(11)=2.4
02 05 08 (10)
01 03
07 # nudo
(00)=0 (00)=0 (00)=0
(00)=0 (05) (10)
malla de
01 04 07 elementos finitos

Matriz indicadora de condiciones Matriz de grados de libertad


de borde (existente) por nudo (creada)

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 ma-
triz de grados de libertad por nudo y la matriz de conectividades del problema. La ins-
truccin 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 des-
cripcin de sus respectivos argumentos se presentan a continuacin.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


156 Captulo 14. Instrucciones para numerar los grados de libertad

NGLELE INC(), MGL(), ELE()

Argumento Tipo de variable Descripcin


INC() Integer (entero) Matriz de incidencias creada (Seccin 3.4).
Matriz de grados de libertad por nudo existente (Sec-
MGL() Integer (entero)
cin 3.4).
ELE() Integer (entero) Matriz de conectividades (Seccin 3.4).
Tabla 14.2. Sintaxis de la instruccin NGLELE.

Ejemplo 14.2 Dada la malla de 4 elementos, 9 nudos y 2 grados de libertad por


nudo mostrada en la Figura 14.1 y conocida la matriz de conectividades ELE(), se
obtiene la matriz de incidencias INC() mediante la siguiente instruccin:

NGLELE INC(), MGL(), ELE()

La matriz de conectividades existente y la matriz de incidencias creada se indican el


la Figura 14.3.

Identificador del nudo del elemento


elem nudo i nudo j nudo k nudo m vm vk
um

m k
(e)
vi vj
ui uj

i j
Matriz de elementos o tabla de conectividades

Identificador del grado de libertad del elemento

elem # ui # vi # uj # vj # uk # vk # um # vm

Matriz de incidencias o tabla de grados de libertad por elemento

Figura 14.3. Ejemplo de la instruccin NGLELE.

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 instruc-
cin 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


PEFiCA Programa de elementos finitos a cdigo abierto 157

NGLBAN INC(), BAND, NGLT

Argumento Tipo de variable Descripcin


INC() Integer (entero) Matriz de incidencias existente (Seccin 3.4).
Ancho calculado de la semi-banda de la matriz de
BAND Integer (entero)
rigidez del sistema.
NGLT Integer (entero) Nmero de grados de libertad del sistema calculado
Tabla 14.3. Sintaxis de la instruccin NGLBAN.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 compu-
tacional 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.

ENSAMK KG(), KE(), INC(), IELE

Argumento Tipo de variable Descripcin


Como parmetro de entrada corresponde a la matriz
KG() Double (real) del sistema antes de ensamblar la matriz elemental
KE().
Como parmetro de salida corresponde a la matriz del
KG() Double (real) sistema despus de ensamblar la matriz elemental
KE().
KE() Double (real) Matriz elemental existente que se desea ensamblar.
INC() Integer (entero) Matriz de incidencias (Seccin 3.4).
Nmero del elemento finito cuya matriz se desea
IELE Integer (entero)
ensamblar.
Tabla 15.1. Sintaxis de la instruccin ENSAMK.

Ejemplo 15.1 Dada la matriz rigidez del elemento finito nmero 1 como:
160 Captulo 15. Instrucciones para ensamblar y extraer matrices

KEL() (8x8)
C1 C2 C3 C4 C5 C6
F1 5.2444E+04 2.0000E+04 -1.6444E+04 -4.0000E+03 -2.6222E+04 -2.0000E+04
F2 2.0000E+04 7.4667E+04 4.0000E+03 2.1333E+04 -2.0000E+04 -3.7333E+04
F3 -1.6444E+04 4.0000E+03 5.2444E+04 -2.0000E+04 -9.7778E+03 -4.0000E+03
F4 -4.0000E+03 2.1333E+04 -2.0000E+04 7.4667E+04 4.0000E+03 -5.8667E+04
F5 -2.6222E+04 -2.0000E+04 -9.7778E+03 4.0000E+03 5.2444E+04 2.0000E+04
F6 -2.0000E+04 -3.7333E+04 -4.0000E+03 -5.8667E+04 2.0000E+04 7.4667E+04
F7 -9.7778E+03 -4.0000E+03 -2.6222E+04 2.0000E+04 -1.6444E+04 4.0000E+03
F8 4.0000E+03 -5.8667E+04 2.0000E+04 -3.7333E+04 -4.0000E+03 2.1333E+04

C7 C8
F1 -9.7778E+03 4.0000E+03
F2 -4.0000E+03 -5.8667E+04
F3 -2.6222E+04 2.0000E+04
F4 2.0000E+04 -3.7333E+04
F5 -1.6444E+04 -4.0000E+03
F6 4.0000E+03 2.1333E+04
F7 5.2444E+04 -2.0000E+04
F8 -2.0000E+04 7.4667E+04

y la matriz de incidencias del problema,

INC() (4x8)
C1 C2 C3 C4 C5 C6 C7 C8
F1 000 000 004 005 006 007 000 001
F2 000 001 006 007 008 009 002 003
F3 004 005 010 011 012 013 006 007
F4 006 007 012 013 014 015 008 009

Ensamblar la matriz de rigidez del elemento 1 en la matriz de rigidez de la estruc-


tura 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() (15x15)
C1 C2 C3 C4 C5 C6
F1 7.4667E+04 0.0000E+00 0.0000E+00 2.0000E+04 -3.7333E+04 -4.0000E+03
F2 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F3 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F4 2.0000E+04 0.0000E+00 0.0000E+00 5.2444E+04 -2.0000E+04 -9.7778E+03
F5 -3.7333E+04 0.0000E+00 0.0000E+00 -2.0000E+04 7.4667E+04 4.0000E+03
F6 -4.0000E+03 0.0000E+00 0.0000E+00 -9.7778E+03 4.0000E+03 5.2444E+04
F7 2.1333E+04 0.0000E+00 0.0000E+00 -4.0000E+03 -5.8667E+04 2.0000E+04
F8 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F9 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F10 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F11 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F12 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F13 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F14 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 161

F15 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00

C7 C8 C9 C10 C11 C12


F1 2.1333E+04 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F2 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F3 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F4 -4.0000E+03 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F5 -5.8667E+04 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F6 2.0000E+04 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F7 7.4667E+04 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F8 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F9 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F10 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F11 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F12 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F13 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F14 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00
F15 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00 0.0000E+00

C13 C14 C15


F1 0.0000E+00 0.0000E+00 0.0000E+00
F2 0.0000E+00 0.0000E+00 0.0000E+00
F3 0.0000E+00 0.0000E+00 0.0000E+00
F4 0.0000E+00 0.0000E+00 0.0000E+00
F5 0.0000E+00 0.0000E+00 0.0000E+00
F6 0.0000E+00 0.0000E+00 0.0000E+00
F7 0.0000E+00 0.0000E+00 0.0000E+00
F8 0.0000E+00 0.0000E+00 0.0000E+00
F9 0.0000E+00 0.0000E+00 0.0000E+00
F10 0.0000E+00 0.0000E+00 0.0000E+00
F11 0.0000E+00 0.0000E+00 0.0000E+00
F12 0.0000E+00 0.0000E+00 0.0000E+00
F13 0.0000E+00 0.0000E+00 0.0000E+00
F14 0.0000E+00 0.0000E+00 0.0000E+00
F15 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 nume-
racin de los valores nodales o grados de libertad del elemento adicionado, en otras pala-
bras, 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 Dada el vector de fuerzas de cuerpo del elemento finito nmero 1
como:

VEL() (8x1)
C1
F1 5.6250E+00
F2 3.7500E+00
F3 5.6250E+00
F4 3.7500E+00
F5 5.6250E+00
F6 3.7500E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


162 Captulo 15. Instrucciones para ensamblar y extraer matrices

F7 5.6250E+00
F8 3.7500E+00

y la matriz de incidencias del problema,

INC() (4x8)
C1 C2 C3 C4 C5 C6 C7 C8
F1 000 000 004 005 006 007 000 001
F2 000 001 006 007 008 009 002 003
F3 004 005 010 011 012 013 006 007
F4 006 007 012 013 014 015 008 009

ensamblar el vector de fuerzas del elemento 1 en el vector de fuerzas de la estruc-


tura 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() (15x1)
C1
F1 3.7500E+00
F2 0.0000E+00
F3 0.0000E+00
F4 5.6250E+00
F5 3.7500E+00
F6 5.6250E+00
F7 3.7500E+00
F8 0.0000E+00
F9 0.0000E+00
F10 0.0000E+00
F11 0.0000E+00
F12 0.0000E+00
F13 0.0000E+00
F14 0.0000E+00
F15 0.0000E+00

ENSAMV VG(), VE(), INC(), IELE

Argumento Tipo de variable Descripcin


Como parmetro de entrada corresponde al vector del
VG() Double (real)
sistema antes de ensamblar el vector elemental VE().
Como parmetro de salida corresponde al vector del
VG() Double (real) sistema despus de ensamblar al vector elemental
VE().
VE() Double (real) Vector elemental existente que se desea ensamblar.
INC() Integer (entero) Matriz de incidencias (Seccin 3.4).
Nmero del elemento finito cuyo vector se desea
IELE Integer (entero)
ensamblar.
Tabla 15.2. Sintaxis de la instruccin ENSAMV.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 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 argumen-
tos se presentan a continuacin.

ENBAND KBA(), KE(), INC(), IELE

Argumento Tipo de variable Descripcin


Como parmetro de entrada corresponde a la matriz banda
KBA() Double (real)
del sistema antes de ensamblar la matriz elemental KE().
Como parmetro de salida corresponde a la matriz banda
KBA() Double (real) del sistema despus de ensamblar la matriz elemental
KE().
Matriz elemental simtrica existente que se desea ensam-
KE() Double (real)
blar.
INC() Integer (entero) Matriz de incidencias (Seccin 3.4).
Nmero del elemento finito cuya matriz se desea ensam-
IELE Integer (entero)
blar.
Tabla 15.3. Sintaxis de la instruccin ENBAND.

La instruccin requiere la existencia de la matriz banda KBA(), cuyo nmero de filas co-
rresponde 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() (8x8)
C1 C2 C3 C4 C5 C6
F1 5.2444E+04 2.0000E+04 -1.6444E+04 -4.0000E+03 -2.6222E+04 -2.0000E+04
F2 2.0000E+04 7.4667E+04 4.0000E+03 2.1333E+04 -2.0000E+04 -3.7333E+04
F3 -1.6444E+04 4.0000E+03 5.2444E+04 -2.0000E+04 -9.7778E+03 -4.0000E+03
F4 -4.0000E+03 2.1333E+04 -2.0000E+04 7.4667E+04 4.0000E+03 -5.8667E+04
F5 -2.6222E+04 -2.0000E+04 -9.7778E+03 4.0000E+03 5.2444E+04 2.0000E+04
F6 -2.0000E+04 -3.7333E+04 -4.0000E+03 -5.8667E+04 2.0000E+04 7.4667E+04
F7 -9.7778E+03 -4.0000E+03 -2.6222E+04 2.0000E+04 -1.6444E+04 4.0000E+03

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


164 Captulo 15. Instrucciones para ensamblar y extraer matrices

F8 4.0000E+03 -5.8667E+04 2.0000E+04 -3.7333E+04 -4.0000E+03 2.1333E+04

C7 C8
F1 -9.7778E+03 4.0000E+03
F2 -4.0000E+03 -5.8667E+04
F3 -2.6222E+04 2.0000E+04
F4 2.0000E+04 -3.7333E+04
F5 -1.6444E+04 -4.0000E+03
F6 4.0000E+03 2.1333E+04
F7 5.2444E+04 -2.0000E+04
F8 -2.0000E+04 7.4667E+04

y la matriz de incidencias del problema,

INC() (4x8)
C1 C2 C3 C4 C5 C6 C7 C8
F1 000 000 004 005 006 007 000 001
F2 000 001 006 007 008 009 002 003
F3 004 005 010 011 012 013 006 007
F4 006 007 012 013 014 015 008 009

ensamblar el trmino KEL(1,2) de la matriz de rigidez del elemento 1 en un vector


de la estructura mediante la siguiente instruccin:

ENSAMX VGL(), KEL(), 1, 2,INC(), 1

Suponiendo que todos los coeficientes de VGL() son iguales a cero antes de ejecutar
la instruccin, se tiene como resultado que:

VGL() (15x1)
C1
F1 2.0000E+04
F2 0.0000E+00
F3 0.0000E+00
F4 2.0000E+04
F5 2.0000E+04
F6 2.0000E+04
F7 2.0000E+04
F8 0.0000E+00
F9 0.0000E+00
F10 0.0000E+00
F11 0.0000E+00
F12 0.0000E+00
F13 0.0000E+00
F14 0.0000E+00
F15 0.0000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 165

ENSAMX VG(), KE(), IFIL, ICOL, INC(), IELE

Argumento Tipo de variable Descripcin


Como parmetro de entrada corresponde al vector del
VG() Double (real) sistema antes de ensamblar el trmino de la matriz
elemental KE().
Como parmetro de salida corresponde a la matriz del
VG() Double (real) sistema despus de ensamblar la matriz elemental
KE().
KE() Double (real) Matriz elemental existente.
Nmero de fila del trmino KE(IFIL,ICOL).de la
IFIL Integer (entero)
matriz elemental que se desea ensamblar.
Nmero de fila del trmino KE(IFIL,ICOL).de la
ICOL Integer (entero)
matriz elemental que se desea ensamblar.
INC() Integer (entero) Matriz de incidencias (Seccin 3.4).
Nmero del elemento finito cuya matriz se desea
IELE Integer (entero)
ensamblar.
Tabla 15.4. Sintaxis de la instruccin ENSAMX.

15.5. EXTRAV
Extrae un vector elemental conformado por los coeficientes de un vector del sistema defi-
nidos de acuerdo con la numeracin de los valores nodales o grados de libertad del elemen-
to. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presen-
tan a continuacin.

EXTRAV VG(), VE(), INC(), IELE, NGLE

Argumento Tipo de variable Descripcin


VG() Double (real) Vector existente del sistema.
VE() Double (real) Vector elemental que se desea crear.
INC() Integer (entero) Matriz de incidencias (Seccin 3.4).
Nmero del elemento finito cuyo vector se desea
IELE Integer (entero)
extraer.
Nmero de grados de libertad asociados al elemento.
Optional Integer
Debe ser menor o igual a el nmero de columnas de la
NGLE (argumento opcional
matriz de incidencias. Por defecto es igual al nmero
tipo entero)
de columnas de la matriz de incidencias.
Tabla 15.5. Sintaxis de la instruccin EXTRAV.

Si el nmero del grado de libertad indicado en la matriz de incidencias es igual a cero


(000), la instruccin considera un valor de cero (0.0000E+00) en el coeficiente del vector ele-
mental creado.
Cuando se define un valor de n para el parmetro NGLE, la instruccin extrae los prime-
ros n grados de libertad asociados al elemento que se indican en la matriz de incidencias.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


166 Captulo 15. Instrucciones para ensamblar y extraer matrices

Ejemplo 15.4 Dada el vector de desplazamientos de la estructura ordenado segn


la numeracin de los grados de libertad, de la forma:

DGT() (26x1)
C1
F1 3.3141E-05
F2 -1.6683E-05
F3 5.3922E-05
F4 -2.7864E-05
F5 7.0790E-05
F6 -3.4794E-05
F7 8.6501E-05
F8 -3.7790E-05
F9 1.0246E-04
F10 -3.8817E-05
F11 1.1949E-04
F12 -3.8941E-05
F13 9.7604E-06
F14 -6.7274E-05
F15 3.5833E-05
F16 -6.5668E-05
F17 5.5388E-05
F18 -6.6101E-05
F19 7.1419E-05
F20 -6.7600E-05
F21 8.6328E-05
F22 -6.8235E-05
F23 1.0171E-04
F24 -6.8530E-05
F25 1.1872E-04
F26 -6.8421E-05

y su respectiva matriz de incidencias,

INC() (6x8)
C1 C2 C3 C4 C5 C6 C7 C8
F1 000 000 013 014 015 016 001 002
F2 001 002 015 016 017 018 003 004
F3 003 004 017 018 019 020 005 006
F4 005 006 019 020 021 022 007 008
F5 007 008 021 022 023 024 009 010
F6 009 010 023 024 025 026 011 012

se extrae el vector de desplazamientos del elemento nmero 1 ejecutando la siguien-


te instruccin:

EXTRAV DGT(), DEL(), INC(), 1

Al omitir el ltimo argumento de la instruccin, el vector resultante DEL() tendr 8


filas, lo cual corresponde con el nmero de columnas de la matriz de incidencias,
como se indica a continuacin.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 167

DEL() #1 (8x1)
C1
F1 0.0000E+00
F2 0.0000E+00
F3 9.7604E-06
F4 -6.7274E-05
F5 3.5833E-05
F6 -6.5668E-05
F7 3.3141E-05
F8 -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 (6x1)
C1
F1 5.3922E-05
F2 -2.7864E-05
F3 5.5388E-05
F4 -6.6101E-05
F5 7.1419E-05
F6 -6.7600E-05

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 noda-
les 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 inde-
pendientes 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 pro-
blema 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 ordena-
dos 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. Instrucciones de organizacin de matrices

ORFUGL VGL(), VFU(), MGL()

Argumento Tipo de variable Descripcin


Vector creado de valores nodales ordenado de acuer-
do con la numeracin de los grados de libertad. El
nmero de filas de este vector es igual al nmero de
VGL() Double (real) nmero de nudos multiplicado por el nmero de gra-
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 elas-
VFU() Double (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
MGL() Integer (entero)
nudo (Seccin 3.4).
Tabla 16.1. Sintaxis de la instruccin ORFUGL.

12 14 16
# nudo u v
11 13 15
201 1 2
206 207 208
105 202 3 4
102
203 5 6
8 10
204 7 8
7 9 104
204 205 205 9 10

206 11 12
101
2 4 103 6 207 13 14
1 3 5 208 15 16
201 202 203
tabla de valores nodales
ordenados por nudos
1
Notacin
2
v 3
# grado de libertad
4
u 5
# nudo 6
7
8
# elemento 9
10
11
12
13 vector de valores nodales
14 ordenados de acuerdo con la
15 numeracin de los grados de
16 libertad
Figura 16.1. Ordenamiento de los valores nodales para un problema de elasticidad bidimen-
sional.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 171

Si un coeficiente de la matriz de grados de libertad por nudo MGL() es igual a cero, se


desconoce la posicin del coeficiente correspondiente de la matriz VFU() en el vector VGL(),
y por lo tanto no se considera tal trmino.

Ejemplo 16.1 Dada la matriz de fuerzas nodales ordenada de acuerdo con la nu-
meracin de los nudos FFU() y la matriz de la numeracin de los grados de libertad
por cada nudo MGL() indicadas en la Figura 4.1, se obtiene el vector de fuerzas
nodales ordenadas de acuerdo con la numeracin de los grados de libertad FGL()
mediante la siguiente lnea de comando:

ORFUGL FGL(), FFU(), MGL()

grado de libertad que


representa la fuerza o
el desplazamiento grado de fuerza
fuerza nodal
libertad nodal
nudo en x en y nudo en x en y

Matriz o tabla de fuerzas ordenada Matriz de la numeracin de los


de acuerdo con la numeracin de grados de libertad por nudo
los nudos (existente) (existente)
F(01) F(03)=4.8 F(11)=2.4 F(17)=1.2
F(00) F(02)=1.5 F(10)=2.3 F(16)=-1.6
notacin
02 03 07 10 # grado de magnitud de
libertad la fuerza
F(13) F(15) F(19) F(21)
F(12) F(18) F(11)=2.4
F(14) F(20)
F(10)=2.3 Vector de fuerzas
08 09 11 12
07 # nudo ordenadas segn la
F(00) F(05) F(07) F(09)
numeracin de los
F(00) F(04) F(06) F(08) malla de grados de libertad
elementos finitos (creado)
01 04 05 06

Figura 16.2. Ejemplo de la instruccin ORFUGL.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


172 Captulo 16. Instrucciones de organizacin de matrices

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 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 elastici-
dad bidimensional, corresponde a la magnitud de las
VFU() 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
VGL() Double (real)
acuerdo con la numeracin de los grados de libertad.
Matriz de numeracin de los grados de libertad por
MGL() 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 nu-
meracin de los grados de libertad FGL() y la matriz de la numeracin de los gra-
dos de libertad por cada nudo MGL() indicadas en la Figura 16.3, se obtiene la ma-
triz de fuerzas nodales ordenada de acuerdo con la numeracin de los nudos FFU()
mediante la siguiente lnea de comando:

ORGLFU FFU(), FGL(), MGL()

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 173

grado de libertad que


representa la fuerza o
grado de fuerza el desplazamiento fuerza nodal
libertad nodal nudo en x en y nudo en x en y

mximo
coeficiente
de MGL()

Matriz de numeracin de los Matriz o tabla de fuerzas


grados de libertad por nudo ordenada de acuerdo con la
(existente) numeracin de los nudos
(creada)
F(01) F(03)=4.8 F(11)=2.4 F(17)=1.2
F(00) F(02)=1.5 F(10)=2.3 F(16)=-1.6 notacin
02 03 07 10 # grado de magnitud de
libertad la fuerza
Vector de fuerzas F(13) F(15) F(19) F(21)
F(11)=2.4
ordenado segn la F(12) F(14) F(18) F(20)
F(10)=2.3
numeracin de los 08 09 11 12
grados de libertad 07 # nudo

(existente) F(00) F(05) F(07) F(09)


F(00) F(04) F(06) F(08) malla de
01 04 05 06 elementos finitos

Figura 16.3. Ejemplo de la instruccin ORGLFU.

16.3. ORSONO
Crea un vector de resultados nodales a partir de una matriz de resultados elementales calcu-
lados 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 for-
ma evaluada en el punto (x,y) del elemento e, y u (e ) corresponde el vector de desplaza-
miento 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


174 Captulo 16. Instrucciones de organizacin de matrices

La matriz de resultados elementales contiene en cada fila los valores calculados en luga-
res 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 con-
tiene la deformacin lineal en y evaluada en los nudos de cada elemento rectangular bili-
neal.

elem. nudo i nudo j nudo k nudo l


l k
(e ) (e )
x= x
x= x (e ) (e ) (e ) (e )
l k
e x= x i
x= x j
x= x k
x= x l
e
(e ) (e )
x= x i x= x j

i j (xe) ( e ) = B (xe) ( e ) u ( e ) [
(xe)( e ) = xx( e ) yy( e ) xy( e ) ]x
T
(e)

( e) ( e)
yy 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 interpo-
lados 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 en-
tre 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 compo-
nente de deformacin promedio en cada nudo.

nudo valor

3 6 r r
( 3) ( 6)
x= x r
x= x r

(1) r
x= x r ( 9)
x= x r
1 ne
1 9 r =
ne

(e )
(e )
x=x r ( e ) x r

1 (1)
4
x = x r + x(9=)x r + x(3=)x r + x(6=)x r
r = ( )
Figura 16.5. Matriz de resultados nodales: deformacin promedio en cada nudo de una malla de
un solo material.

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


PEFiCA Programa de elementos finitos a cdigo abierto 175

ORSONO MX(), MDT(), ELE(), NNUD

Argumento Tipo de variable Descripcin


Vector creado que contiene los valores promedio en
MX() Double (real)
los nudos (resultado nodal).
Matriz existente que contiene los valores en los nudos
de cada elemento (resultado elemental). Cada fila
MDT() 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
ELE() Integer (entero)
de conectividades (Seccin 3.4).
NNUD Integer (entero) Nmero de nudos del problema.
Tabla 16.3. Sintaxis de la instruccin ORSONO.

elemento nudo i nudo j nudo k

elementos finitos que


matriz de conectividades
comparten el nudo 86
elemento nudo i nudo j nudo k

esfuerzo
nudo promedio

calcular
promedio vector de esfuerzos
promedio en los nudos
(resultado nodal)
matriz de esfuerzos en los elementos
(resultado elemental)
Figura 16.6. Ejemplo de la instruccin ORSONO. Clculo del esfuerzo xx promedio en el
nudo 86 (resultado nodal).

Ejemplo 16.3 Construir el vector de esfuerzos promedio en los nudos NXX() a par-
tir 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. Instrucciones de organizacin de matrices

ORSONO NXX(), SXX(), ELE(), NNUD

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 ele-
mentales calculados en los nudos de cada elemento. Cada columna de la matriz de resulta-
dos nodales contiene el promedio entre los valores calculados en el interior de los elemen-
tos 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.
MX() Double (real)
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
MDT() 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
ELE() Integer (entero)
de conectividades (Seccin 3.4).
Vector de tipo de material por elemento. Cada fila
MAT() Integer (entero) contiene un cdigo que indica el tipo de material
asociado a cada elemento.
NNUD Integer (entero) Nmero de nudos del problema.
NMAT Integer (entero) Nmero de materiales del problema.
Tabla 16.4. Sintaxis de la instruccin ORSONM.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 177

deformacin
nudo mat. 1 mat. 2
material 1 material 2

r rm =1 rm = 2
3 6
( 3) ( 6)
xx==x r
xx==x r
r 1 ne ( e )
(1)
=xr
xx= ( 9)
xx==xr
rm =
ne ( e )
( ) (
x=x r ( e) x r (e ) ( m) )
1 9
1
( )
rm =1 = x(1=)x r + x(3=)x r
2
1 ( 6)
2
rm =1 = (
x = x r + x(9=)x r )
Figura 16.7. Matriz de resultados nodales: deformacin promedio en cada nudo de una malla de
varios materiales.

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 conectivida-
des ELE() y la matriz de materiales MAT(). La lnea de comando utilizada es la si-
guiente:

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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


178 Captulo 16. Instrucciones de organizacin de matrices

elemento nudo i nudo j nudo k elemento material

material 1

653
661
313
16
5
39

material 2

elementos finitos que


comparten el nudo 313
matriz de conectividades matriz de materiales
en los elementos
esfuerzo promedio
elemento nudo i nudo j nudo k
nudo material 1 material 2

vector de esfuerzos
promedio en los nudos
calcular
(resultado nodal)
promedio

matriz de esfuerzos en los elementos


(resultado elemental)

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 siguien-
te:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 179

ORNUDE NLE(), ELE(), NNUD, 4

ORNUDE MX(), ELE(), NNUD, NMAE

Argumento Tipo de variable Descripcin


MX() Integer (entero) Matriz creada de elementos asociados a cada nudo.
Matriz existente de nudos asociados a cada elemento
ELE() Integer (entero)
o matriz de conectividades (Seccin 3.4).
NNUD Integer (entero) Nmero de nudos del problema.
Optional Integer
Cantidad mxima de elementos asociados a un mismo
NMAE (argumento opcional
nudo. Su valor por defecto es NMAE =10
tipo entero)
Tabla 16.5. Sintaxis de la instruccin ORNUDE.

elemento nudo i nudo j nudo k nudo l

matriz de nudos asociados a cada elemento o


matriz de conectividades

03 06 09 12
02 04 06

02 05 08 11
01 03 05

01 04 07 10
malla de elementos finitos
nudo elementos

matriz de elementos asociados a cada nudo


Figura 16.9. Ejemplo de la instruccin ORNUDE.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


180 Captulo 16. Instrucciones de organizacin de matrices

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
nudo lista de nudos
inicial de la lnea
matriz de coordenadas
en los nudos

lista de distancias entre el nudo


nudo inicial y cada nudo inicial
de la lnea

Figura 16.10. Ejemplo de la instruccin ORNLIN.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 181

ORNLIN MX(), DX(), XYZ(), NINI,NFIN, TOL

Argumento Tipo de variable Descripcin


Vector creado que contiene el listado de nudos que
MX() Integer (entero)
hacen parte de la lnea.
Vector creado que contiene el listado de distancias
DX() Double (real) entre el nudo inicial y cada uno de los nudos de la
lnea.
Matriz existente de coordenadas de los nudos (Sec-
XYZ() Double (real)
cin 3.4).
NINI Integer (entero) Nmero del nudo inicial de la lnea
NFIN Integer (entero) Nmero del nudo final de la lnea
Optional Double
Tolerancia medida como un factor de la longitud del
TOL (argumento opcional
segmento de lnea. Por defecto TOL=0.00.
tipo real)
Tabla 16.6. Sintaxis de la instruccin ORNLIN.

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 Descripcin


Vector creado que contiene el listado de nudos que
MX() Integer (entero)
hacen parte de la lnea.
Vector creado que contiene el listado de distancias
DX() Double (real) entre el nudo inicial y cada uno de los nudos de la
lnea.
Matriz existente de coordenadas de los nudos de la
XYZ() Double (real)
malla (Seccin 3.4).
Matriz existente de coordenadas de los extremos del
segmento de lnea. La primera fila contiene las coor-
XLN() Double (real)
denadas 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
TOL (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. Instrucciones de organizacin de matrices

(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

matriz de coordenadas en los


extremos del segmento de lnea

lista de distancias entre el punto inicial


nudo inicial y cada nudo (0.00,0.50)
de la lnea

Figura 16.11. Ejemplo de la instruccin ORNLIX.

La lnea de comando utilizada es:

ORNLIX LNU(), DNU(), XYZ(), XLN()

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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 183

ORELIN MX(), DNU(), XYZ(), ELE(), NINI, NFIN, TOL, TP

Argumento Tipo de variable Descripcin


Matriz creada que contiene en la primera columna el
listado de los elementos que hacen parte de la lnea.
MX() Integer (entero)
El contenido de la segunda columna depende del
parmetro TP.
Vector de distancias desde el nudo inicial del segmen-
DNU() Double (real) to hasta el nudo especificado en la segunda columna
de MX()
Matriz existente de coordenadas de los nudos (Sec-
XYZ() Double (real)
cin 3.4).
Matriz existente de nudos asociados a cada elemento
ELE() Integer (entero)
o matriz de conectividades (Seccin 3.4).
NINI Integer (entero) Nmero del nudo inicial de la lnea
NFIN Integer (entero) Nmero del nudo final de la lnea
Optional Double
Tolerancia medida como un factor de la longitud del
TOL (argumento opcional
segmento de lnea. Por defecto TOL=0.00.
tipo real)
Tipo de formato de salida:
Optional Integer Si TP=0, la columna 2 de la matriz MX() indica el
TP (argumento opcional nmero del lado del elemento que pertenece a la lnea.
tipo entero) Si TP=1. la columna 2 de la matriz MX() indican el
nudo que pertenece a la lnea y al elemento.
Tabla 16.8. Sintaxis de la instruccin ORELIN.

Ejemplo 16.8 Dada la matriz de coordenadas XYZ(), crear el listado de los ele-
mentos 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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


184 Captulo 16. Instrucciones de organizacin de matrices

nudo coord. x coord. y elemento nudo i nudo j nudo k

nudo
final

matriz de conectividades
nudo
nudo final
inicial
matriz de coordenadas
en los nudos

elemento nudo distancia

lnea

lista de nudos lista de distancias


entre el nudo inicial y nudo
de la lnea inicial
cada nudo de la lnea

Figura 16.12. Ejemplo de la instruccin ORELIN.

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:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 185

nudo coord. x coord. y elemento nudo i nudo j nudo k

matriz de conectividades
punto final
(0.00,4.00)

matriz de coordenadas
en los nudos nudo k

lado 3
lado 2
elemento
matriz de coordenadas en los
extremos del segmento de lnea
nudo i
(inicial) lado 1
nudo j
indicador del
elemento lado nudo inicial i

lnea

lista de nudos punto inicial


de la lnea (0.00,0.50)

Figura 16.13. Ejemplo de la instruccin ORELIN.

La lnea de comando correspondiente es:

ORELIX LNU(), XYZ(), ELE(), XLN()

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


186 Captulo 16. Instrucciones de organizacin de matrices

ORELIX MX(), XYZ(), ELE(), XLN(), TOL

Argumento Tipo de variable Descripcin


Matriz creada que contiene el listado de los elementos
y su lado respectivo que hacen parte de un segmento
MX() Integer (entero)
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 (Sec-
XYZ() Double (real)
cin 3.4).
Matriz existente de nudos asociados a cada elemento
ELE() Integer (entero)
o matriz de conectividades (Seccin 3.4).
Matriz existente de coordenadas de los extremos del
segmento de lnea. La primera fila contiene las coor-
XLN() Double (real)
denadas 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
TOL (argumento opcional
segmento de lnea. Por defecto TOL=0.00.
tipo real)
Tabla 16.9. Sintaxis de la instruccin ORELIX.

16.10. ORXYNU
Extrae de la matriz de coordenadas o de cualquier matriz de resultados nodales, los respec-
tivos 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 Tipo de variable Descripcin


Matriz creada que contiene las coordenadas o los
MX() Double (real) resultados nodales en los nudos que hacen parte de la
lista LNU()
Matriz existente de coordenadas de los nudos o de
XYZ() Double (real)
valores nodales (Seccin 3.4).
LNU() 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().

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 187

nudo valor nodal nmero del nudo nudo valor nodal

lista de nudos
matriz de resultados
nodales en los nudos
relacionados en la lista
de nudos

matriz de resultados
nodales
Figura 16.14. Ejemplo de la instruccin ORXYNU.

La lnea de comando utilizada es la siguiente:

ORXYNU NAB(), NXX(), LNU()

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


Captulo 17
Instrucciones para importar y exportar
matrices
Este captulo describe las instrucciones que permiten importar y exportar matrices a un ar-
chivo plano cuyo formato es el siguiente:

La primera lnea indica el nmero de filas y el nmero de columnas de la matriz al-


macenada separados por coma.

La segunda lnea contiene los coeficientes de la fila nmero 1 de la matriz almacena-


da separados entre s por comas.

Las lneas siguientes contienen los coeficientes de las filas sucesivas de la matriz.

Cada uno de los coeficientes se escribe en notacin cientfica con un formato de la


forma +0.00000000E+00 si se trata de una matriz de reales y en formato 0000 si se
trata de una matriz de enteros.

La Figura 17.1(b) presenta, en el Bloc de notas, el archivo plano que contiene los coefi-
cientes 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. Instrucciones para importar y exportar matrices

nombre del
archivo
nmero de columnas
columna #1 columna #2
nmero de filas, nmero
nmero de columnas columna #1 columna #2 de filas

nombre de fila #1
la matriz
fila #1

fila #23

(b) Archivo plano visualizado desde el Bloc de


notas de Microsoft Windows
fila #23

(a) Hoja de clculo visualizada desde


Microsoft Excel

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.

IOEXPR MX(), FILE

Argumento Tipo de variable Descripcin


MX() Double (real) Matriz real existente.
Nombre del archivo sin extensin que contendr a la
matriz MX(). Este archivo estar ubicado en la carpeta
FILE String (caracteres) del libro de Excel desde donde se ejecute la instruc-
cin. La extensin del archivo ser asignada autom-
ticamente como .txt.
Tabla 17.1. Sintaxis de la instruccin IOEXPR.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 191

Ejemplo 17.1 Dada la matriz de coordenadas de los nudos XYZ() la instruccin


indicada a continuacin construye el archivo XYZ.txt que contiene los coeficientes
de la matriz existente. La Figura 17.1 muestra la matriz existente y el archivo
creado en este ejemplo.

IOEXPR XYZ(),"XYZ"

17.2. IOEXPI
Esta instruccin permite exportar una matriz entera existente a un archivo plano en el for-
mato 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

Argumento Tipo de variable Descripcin


MX() Integer (entera) Matriz entera existente.
Nombre del archivo sin extensin que contendr a la matriz
String (caracte- MX(). Este archivo estar ubicado en la carpeta del libro de
FILE
res) Excel desde donde se ejecute la instruccin. La extensin del
archivo ser asignada automticamente como .txt.
Tabla 17.2. Sintaxis de la instruccin IOEXPI.

Ejemplo 17.2 Dada la matriz de conectividades de los elementos ELE(), la ins-


truccin indicada a continuacin construye el archivo ELE.txt que contiene los co-
eficientes de la matriz existente.

IOEXPI ELE(),"ELE"

La Figura 17.2 muestra la matriz existente y el archivo creado en este ejemplo.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


192 Captulo 17. Instrucciones para importar y exportar matrices

(b) Archivo plano visualizado


desde el Bloc de notas de
Microsoft Windows

(a) Hoja de clculo visualizada desde Microsoft Excel

Figura 17.2. Ejemplo de la instruccin IOEXPI.

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 almace-


na un coeficiente por lnea.

Los coeficientes son cantidades enteras las cuales se escriben sin un formato especfi-
co.

Se omite el nmero de filas del vector.

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

IOEXPD MX(), FILE

Argumento Tipo de variable Descripcin


MX() Integer(entera) Vector existente.
Nombre del archivo sin extensin que contendr a la
matriz MX(). Este archivo estar ubicado en la carpeta
FILE String (caracteres) del libro de Excel desde donde se ejecute la instruc-
cin. La extensin del archivo ser asignada autom-
ticamente como .txt.
Tabla 17.3. Sintaxis de la instruccin IOEXPD.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 193

Ejemplo 17.3 Dado el vector de parmetros grficos GRA(), la instruccin indica-


da a continuacin construye el archivo GRA.txt que contiene los coeficientes del
vector existente.

IOEXPD GRA(),"GRA"

La Figura 17.3 muestra la matriz existente y el archivo creado en este ejemplo.

(b) Archivo plano


visualizado desde el
Bloc de notas de
Microsoft Windows

(a) Hoja de clculo visualizada


desde Microsoft Excel

Figura 17.3. Ejemplo de la instruccin IOEXPD.

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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


194 Captulo 17. Instrucciones para importar y exportar matrices

IOELDR MX(), FILE, ILD

Argumento Tipo de variable Descripcin


MX() Double (real) Matriz real existente.
Nombre del archivo sin extensin que contendr a la
matriz MX(). Este archivo estar ubicado en la carpeta
FILE String (caracteres) del libro de Excel desde donde se ejecute la instruccin.
El nombre del archivo se completa con el nmero del
paso ILD en formato 000 seguido de la extensin .txt.
ILD Integer (entera) Nmero del paso de carga (o de pseudo-tiempo).
Tabla 17.4. Sintaxis de la instruccin IOELDR.

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 pre-
sentan a continuacin.

IOEXPT TITU, FILE

Argumento Tipo de variable Descripcin


TITU String (caracteres) Cadena de caracteres existente.
Nombre del archivo sin extensin que contendr la
cadena de caracteres TITU. Este archivo estar ubica-
FILE String (caracteres) do en la carpeta del libro de Excel desde donde se
ejecute la instruccin. El nombre del archivo se com-
pleta automticamente con la extensin .txt.
Tabla 17.5. Sintaxis de la instruccin IOEXPT.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 defi-
nidas. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se pre-
sentan a continuacin.

PBDEMR MX(), NF, NC

Argumento Tipo de variable Descripcin


Parmetro de entrada que corresponde a la matriz real
MX() Double (real)
existente de dimensiones definidas M.
Parmetro de salida que indica el nmero de filas de
NF Integer (entero)
la matriz M.
Parmetro de salida que indica el nmero de colum-
NC Integer (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. Instrucciones internas de uso comn

PBDEMI MX(), NF, NC

Argumento Tipo de variable Descripcin


Parmetro de entrada que corresponde a la matriz
MX() Integer (entero)
entera existente de dimensiones definidas M.
Parmetro de salida que indica el nmero de filas de
NF Integer (entero)
la matriz M.
Parmetro de salida que indica el nmero de colum-
NC Integer (entero)
nas de la matriz M.
Tabla 18.2. Sintaxis de la instruccin PBDEMI.

[variable]= PBATRI(X(), Y())

Argumento Tipo de variable Descripcin


Vector que contiene las coordenadas x de los extre-
X() Double (real)
mos del triangulo: X(1), X(2), X(3).
Vector que contiene las coordenadas y de los extre-
Y() Double (real)
mos del triangulo: Y(1), Y(2), Y(3).
PBATRI Double (real) rea del triangulo definido por las coordenadas X(),
Y()
Tabla 18.3. Sintaxis de la instruccin PBATRI.

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) Matriz o tabla de coordenadas en los nudos.
NI Integer (entero) Nmero del nudo inicial que define el segmento.
NJ Integer (entero) Nmero del nudo final que define el segmento.
Longitud del segmento recto definido entre los nudos
PBDIST Double (real)
NI y NJ.
Tabla 18.4. Sintaxis de la instruccin 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 197

[variable]= PBCOSD(XYZ(), NI, NJ, TP)

Argumento Tipo de variable Descripcin


XYZ() Double (real) Matriz o tabla de coordenadas en los nudos.
NI Integer (entero) Nmero del nudo inicial que define el segmento.
NJ Integer (entero) Nmero del nudo final que define el segmento.
Si TP=0, PBCOSD contiene la componente en
direccin x del vector unitario nx = cos( ) .
TP Integer (entero)
Si TP=1, PBCOSD contiene la componente en
direccin y del vector unitario n y = sin( ) .
Una de las componentes del vector unitario n cuya
PBCOSD Double (real) direccin est determinada por el segmento recto
entre los nudos NI y NJ.
Tabla 18.5. Sintaxis de la instruccin PBCOSD.

18.6. PBDIAG
Llena los coeficientes de la diagonal inferior de una matriz cuadrada a partir de los coefi-
cientes 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 Tipo de variable Descripcin


Como parmetro de entrada corresponde a la matriz
MX() Double (real) cuadrada existente con coeficientes definidos en la
diagonal superior.
Como parmetro de salida corresponde a la matriz
MX() Double (real) simtrica la cual se construye llenando los coeficien-
tes de la diagonal inferior.
Parmetro de entrada que indica el nmero de filas de
NF 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 defor-
maciones 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:
(1 ) 1 1
E1 = , E2 = , E3 = , E 4 = (1 + ) (18.1)
(1 2 ) (1 2 ) 2
donde corresponde a la relacin de Poisson del material. En cambio, en condicin
plana de deformaciones los factores son iguales a:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


198 Captulo 18. Instrucciones internas de uso comn

(1 )
E1 = 1 , E 2 = , E3 = , E 4 = (1 2 ) (18.2)
2
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

PBCOEL TP, NU, E1, E2, E3, E4

Argumento Tipo de variable Descripcin


Si TP=0, calcula los factores para una condicin
plana de esfuerzos.
TP Integer (entero)
Si TP=1, calcula los factores para una condicin
plana de deformaciones.
NU Double (real) Relacin de Poisson
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


V Double (real) Escalar que se desea redondear
N Integer (entero) Nmero cifras significativas consideradas.
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.

[variable]= PBDINU(XYZ(), NINI, NFIN, NCAL)

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 199

Argumento Tipo de variable Descripcin


XYZ() Double (real) Matriz o tabla de coordenadas en los nudos.
NINI Integer (entero) Nmero del nudo inicial que define el segmento.
NFIN Integer (entero) Nmero del nudo final que define el segmento.
Nmero del nudo desde donde se mide la distancia al
NCAL Integer (entero)
segmento.
Distancia entre el nudo NCAL y el segmento recto
PBDINU Double (real)
definido entre NINI y NFIN.
Tabla 18.9. Sintaxis de la instruccin PBDINU.

18.10. PBPGAU
Construye una tabla que contiene las constantes de ponderacin en el mtodo de integra-
cin 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 Tipo de variable Descripcin


Nmero de puntos de Gauss sobre una direccin. La
NPUN Integer (entero)
instruccin considera 3 puntos como mximo.
Nmero de dimensiones del problema. La instruccin
NDIM Integer (entero)
considera 2 dimensiones como mximo.
Tabla de constantes de ponderacin en la integracin
MX() Double (real)
numrica de la cuadratura de Gauss.
Tabla 18.10. Sintaxis de la instruccin PBPGAU.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 len-
guaje 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 Contenido GRAGEO GRAFIF GRAFIE GRAFIM GRAMAT


Matriz de coordena-
XYZ.txt
das de los nudos.
    
Matriz de conectivi-
ELE.txt
dades.
    
Vector de tipo de
MAT.txt
material.  
Vector de resultados
FIF.txt
nodales.
 
Vector de resultados
FIE.txt
elementales.

Matriz de parme-
GRA.txt
tros grficos.
    
Tabla 19.1. Archivos de entrada de datos para el programa PEFI-Graf 1.0 y
su utilizacin en las rutinas del programa PEFiCA 1.0.

En el interior de las subrutinas presentadas en este captulo se ejecuta una aplicacin es-
pecial 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
archivo de texto que contienen la matriz de
coordenadas de los nudos

formato de salida de datos de la matriz de


coordenadas de los nudos
Figura 19.1. Estructura de un archivo de texto que contiene la matriz de coordenadas de los
nudos.

En la primera lnea se indica el nmero de filas y el nmero de columnas separados


por una coma.

La segunda lnea contiene los coeficientes de la primera fila de la matriz separados


por coma.

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 parme-
tros.
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 utili-
za 16 colores presentados como nmeros enteros entre 0 y 15.
Estas subrutinas tienen el prefijo GRA y estn contenidas en el mdulo MdGRA para facili-
tar su ubicacin en el cdigo como lo indica la Tabla 2.20.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 203

Posicin en
Coeficiente Valor por
el archivo Descripcin
de la matriz defecto
(# lnea)
GRA(1,1) 1 2Identificador del tipo de grfico (Tabla 19.3).
GRA(2,1) 2 0
Color del fondo de la ventana grfica (Tabla
19.4).
GRA(3,1) 3 15
Color de las etiquetas de numeracin de nudos
y elementos (Tabla 19.4).
GRA(4,1) 4 12 Color de los nudos de la malla (Tabla 19.4).
GRA(5,1) 5 14
Color de las lneas de delimitan a los elemen-
tos de la malla (Tabla 19.4).
GRA(6,1) 6 2 Tipo de puntero.
Estado de la ventana.
Si GRA(7,1)=0 ventana normal.
GRA(7,1) 7 2
Si GRA(7,1)=1 ventana minimizada.
Si GRA(7,1)=2 ventana maximizada.
GRA(8,1) 8 40
Nmero de iso lneas dibujadas (mltiplo de
4).
GRA(9,1) 9 20
Nmero de etiquetas de las iso-lneas dibuja-
das (mltiplo de 4).
Nmero del primer nudo numerado.
GRA(10,1) 10 -1
Si GRA(10,1)=-1 se numeran todos los nudos.
GRA(11,1) 11 -1 Nmero del ltimo nudo numerado.
Nmero del primer elemento numerado.
GRA(12,1) 12 -1 Si GRA(12,1)=-1 se numeran todos los ele-
mentos.
Nmero del ltimo elemento numerado.
Si GRA(13,1)=-1 se numeran todos los
GRA(13,1) 13 -1
elementos.
Si GRA(13,1)=-2 se numeran todos los
elementos e indica la direccin del nudo
inicial.
Indicador del tipo de gama de tonos para los
resultados.
GRA(14,1) 14 0
Si GRA(14,1)=0 se utiliza la escala rojo-
amarillo-verde-cian-azul.
Si GRA(14,1)=1 se utiliza la escala de
grises (blanco-negro).
Tabla 19.2. Parmetros grficos de la matriz GRA() para el programa PEFiCA 1.0 o del
archivo GRA.txt para el programa PEFiCAGraf 1.0.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


204 Captulo 19. Instrucciones grficas

GRA(1,1) Tipo de grfico


1 Nudos.
2 Nudos y elementos.
3
Resultado nodal de una funcin de aproximacin con iso-
lneas.
4
Resultado elemental constante de una funcin de aproxima-
cin con iso-lneas.
6
Resultado nodal de una funcin de aproximacin con regio-
nes llenas.
7
Resultado elemental de la derivada de una funcin de
aproximacin con regiones llenas.
8
Resultado nodal por material de una funcin de aproxima-
cin con iso-lneas.
9
Resultado nodal por material de una funcin de aproxima-
cin con regiones llenas.
Tabla 19.3. Identificador del tipo de grfico.

Color Nmero Color Nmero


Negro 0 Gris 8
Azul 1 Azul claro 9
Verde 2 Verde claro 10
Aguamarina 3 Aguamarina claro 11
Rojo 4 Rojo claro 12
Fucsia 5 Fucsia claro 13
Amarillo 6 Amarillo claro 14
Blanco 7 Blanco brillante 15
Tabla 19.4. Formato de color de Microsoft Basic.

19.1. GRAFDE
Crea la matriz de parmetros grficos con los valores por defecto de cada uno de los coefi-
cientes 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 Tipo de variable Descripcin


Matriz de parmetros grficos creada con los valores
GRA() 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
PEFiCA Programa de elementos finitos a cdigo abierto 205

La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan


a continuacin.

GRAFIL GRA()

Argumento Tipo de variable Descripcin


GRA() Integer (entero) Matriz existente que contiene los parmetros grficos.
Tabla 19.6. Sintaxis de la instruccin GRAFIL.

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) Matriz de coordenadas de los nudos.
ELE() Integer (entero) Matriz de conectividades.
GRA() Integer (entero) Matriz de parmetros grficos (Tabla 19.2).
Identificador del tipo de grfico.
Optional Integer (ar- Si TG=1 dibuja los nudos de la malla.
TG gumento opcional tipo Si TG=2 dibuja los nudos y los elementos de la
entero) malla (por defecto).
En la rutina se asigna a GRA(1,1)=TG
Optional String (ar- Ttulo de la ventana del grfico. Si se omite este pa-
TITU gumento opcional tipo rmetro la ventana tendr un ttulo por defecto rela-
cadena de caracteres) cionado con la grfica presentada.
Tabla 19.7. Sintaxis de la instruccin GRAGEO.

Ejemplo 19.1 Dada la matriz de coordenadas de los nudos XYZ() y la matriz de


conectividades ELE(), dibujar y numerar: a) los nudos de la malla de elementos fini-
tos, b) los nudos y los elementos de la malla, indicando el nudo inicial de cada ele-
mento. Los coeficientes de la matriz de parmetros grficos son:

GRA() (16x1)
C1
Tipo de grfico (ser asignado en la instruccin GRAGEO de
F1 003
acuerdo con el valor de TG).
F2 015 Color del fondo de la ventana grfica = blanco brillante.
F3 000 Color de las etiquetas de numeracin = negro.
F4 012 Color de los nudos de la malla = rojo claro.
F5 000 Color de las lneas de delimitan a los elementos = negro.
F6 000 Tipo de puntero.
F7 000 Estado de la ventana = normal

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


206 Captulo 19. Instrucciones grficas

F8 040 Nmero de iso-lneas dibujadas (no aplica)


F9 020 Nmero de etiquetas de las iso-lneas dibujadas (no aplica)
F10 -001
Nmero del primer nudo numerado = se numeran todos los
nudos.
F11 -001
Nmero del ltimo nudo numerado = se numeran todos los
nudos.
F12 -001
Nmero del primer elemento numerado = se numeran todos
los elementos.
F13 -002
Nmero del ltimo elemento numerado = se numeran todos
los elementos e indica la direccin del nudo inicial.
F14 000
Indicador del tipo de gama de tonos para los resultados (no
aplica)

(a) Ventana grfica de la geometra del problema: nudos de la malla

(b) Ventana grfica de la geometra del problema: nudos y elementos de la malla

Figura 19.2. Ejemplo de la instruccin GRAGEO.

Si se ejecuta la instruccin:

GRAGEO XYZ(), ELE(), GRA(), 1

el coeficiente GRA(1,1) toma un valor de 1 y se activa la ventana grfica con los


nudos de la malla como lo indica la Figura 4.1(a). En cambio, si se ejecuta la ins-
truccin:

GRAGEO XYZ(), ELE(), GRA(), 2

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 207

el coeficiente GRA(1,1) toma un valor de 2 y se activa la ventana grfica con los


nudos y los elementos de la malla como lo indica la Figura 4.1(b).

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) Matriz de coordenadas de los nudos.
ELE() Integer (entero) Matriz de conectividades.
Matriz de tipo de material por elemento u otra varia-
MAT() Integer (entero)
ble entera definida por cada elemento.
GRA() Integer (entero) Matriz de parmetros grficos (Tabla 19.2).
Tabla de colores por cada valor entero de MAT() for-
COL() Integer (entero)
mato RGB.
Optional String (ar- Ttulo de la ventana del grfico. Si se omite este pa-
TITU gumento opcional tipo rmetro la ventana tendr un ttulo por defecto rela-
cadena de caracteres) cionado con la grfica presentada.
Tabla 19.8. Sintaxis de la instruccin GRAMAT.

Ejemplo 19.2 Dada la matriz de coordenadas de los nudos XYZ(), la matriz de


conectividades ELE(), y la matriz de tipo de material MAT(), dibujar la malla de ele-
mentos diferenciados por su tipo de material. Los coeficientes de la matriz de pa-
rmetros grficos son:

GRA() (16x1)
C1
Tipo de grfico (ser asignado en la instruccin GRAMAT de
F1 003
acuerdo con el valor de TG).
F2 015 Color del fondo de la ventana grfica = blanco brillante.
F3 000 Color de las etiquetas de numeracin = negro.
F4 000 Color de los nudos de la malla = negro.
F5 000 Color de las lneas de delimitan a los elementos = negro.
F6 000 Tipo de puntero.
F7 000 Estado de la ventana = normal
F8 040 No aplica
F9 020 No aplica
F10 000
Nmero del primer nudo numerado = no se numeran los
nudos.
F11 000
Nmero del ltimo nudo numerado = no se numeran los
nudos.
F12 000
Nmero del primer elemento numerado = no se numeran los
elementos.
F13 000 Nmero del ltimo elemento numerado = no se numeran los

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


208 Captulo 19. Instrucciones grficas

elementos.
F14 000 No aplica

Si se ejecuta la instruccin:

GRAMAT XYZ(), ELE(), MAT(), GRA(), COL()

el coeficiente GRA(1,1) toma un valor de 5 y se activa la ventana grfica indicada


en la Figura 19.3 .

material rojo verde azul

material 1
material 2

Figura 19.3. Ejemplo de la instruccin GRAMAT.

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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 209

GRAFIF XYZ(), ELE(), FIF(), GRA(), TG, TITU

Argumento Tipo de variable Descripcin


XYZ() Double (real) Matriz de coordenadas de los nudos.
ELE() Integer (entero) Matriz de conectividades.
Vector de valores nodales. Indica la cantidad de inte-
FIF() Double (real)
rs en cada nudo que se desea dibujar.
GRA() Integer (entero) Matriz de parmetros grficos (Tabla 19.2).
Identificador del tipo de grfico.
Si TG=3 dibuja los resultados nodales con iso-
Optional Integer (ar-
lneas (por defecto).
TG gumento opcional tipo
entero) Si TG=6 dibuja los resultados nodales con regio-
nes llenas.
En la rutina se asigna a GRA(1,1)=TG
Optional String (ar- Ttulo de la ventana del grfico. Si se omite este pa-
TITU gumento opcional tipo rmetro la ventana tendr un ttulo por defecto rela-
cadena de caracteres) cionado con la grfica presentada.
Tabla 19.9. Sintaxis de la instruccin GRAFIF.

Ejemplo 19.3 Dada la matriz de coordenadas de los nudos XYZ() y la matriz de


conectividades ELE() de una viga, dibujar los resultados nodales en la malla defini-
dos por el vector de la componente xx esfuerzos promedio en los nudos NXX(), pre-
sentado de dos formas distintas: a) mediante iso-lneas , b) mediante regiones lle-
nas. Los coeficientes de la matriz de parmetros grficos GRA() son:

GRA() (16x1)
C1
Tipo de grfico (ser asignado en la instruccin GRAFIF de acuerdo con el
F1 003
valor de TG).
F2 015 Color del fondo de la ventana grfica = blanco brillante.
F3 000 Color de las etiquetas de numeracin = negro.
F4 012 Color de los nudos de la malla = rojo claro.
F5 000 Color de las lneas de delimitan a los elementos = negro.
F6 000 Tipo de puntero.
F7 000 Estado de la ventana = normal
F8 040 Nmero de iso-lneas dibujadas
F9 020 Nmero de etiquetas de las iso-lneas dibujadas
F10 -001 Nmero del primer nudo numerado = se numeran todos los nudos.
F11 -001 Nmero del ltimo nudo numerado = se numeran todos los nudos.
F12 -001 Nmero del primer elemento numerado = se numeran todos los elementos.
F13 -002
Nmero del ltimo elemento numerado = se numeran todos los elementos,
sin embargo para GRAFIF no se indica la direccin del nudo inicial.
F14 000
Indicador del tipo de gama de tonos para los resultados = escala rojo-
amarillo-verde-cian-azul.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


210 Captulo 19. Instrucciones grficas

(a) Ventana grfica de resultados nodales dibujados con iso-lneas

(b) Ventana grfica de resultados nodales dibujados con regiones llenas

Figura 19.4. Ejemplo de la instruccin GRAFIF.

Si se ejecuta la instruccin:

GRAFIF XYZ(), ELE(), NXX(), GRA(), 3

el coeficiente GRA(1,1) toma un valor de 3 y se activa la ventana grfica indicada


en la Figura 19.4(a). En cambio, si se ejecuta la instruccin:

GRAFIF XYZ(), ELE(), NXX(), GRA(), 6

el coeficiente GRA(1,1) toma un valor de 6 y se activa la ventana grfica indicada


en la Figura 19.4(b).

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


PEFiCA Programa de elementos finitos a cdigo abierto 211

mismo material. A diferencia de la instruccin GRAFIF, esta subrutina presenta los resulta-
dos 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) Matriz de coordenadas de los nudos.
ELE() Integer (entero) Matriz de conectividades.
MAT() Integer (entero) Vector de tipo material por elemento.
Matriz de resultados nodales por material. Cada
FIF() Double (real) columna contiene los resultados nodales para un ma-
terial especfico.
GRA() Integer (entero) Matriz de parmetros grficos (Tabla 19.2).
Identificador del tipo de grfico.
Si TG=8 dibuja los resultados nodales con iso-
Optional Integer (ar-
lneas (por defecto).
TG gumento opcional tipo
entero) Si TG=9 dibuja los resultados nodales con regio-
nes llenas.
En la rutina se asigna a GRA(1,1)=TG
Optional String (ar- Ttulo de la ventana del grfico. Si se omite este pa-
TITU gumento opcional tipo rmetro la ventana tendr un ttulo por defecto rela-
cadena de caracteres) cionado con la grfica presentada.
Tabla 19.10. Sintaxis de la instruccin GRAFIM

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 co-
nectividades 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 dis-
tintas: a) mediante iso-lneas , b) mediante regiones llenas. Los coeficientes de la
matriz de parmetros grficos GRA() son:

GRA() (16x1)
C1
Tipo de grfico (ser asignado en la instruccin GRAFIM de
F1 003
acuerdo con el valor de TG).
F2 015 Color del fondo de la ventana grfica = blanco brillante.
F3 000 Color de las etiquetas de numeracin = negro.
F4 000 Color de los nudos de la malla = negro.
F5 000 Color de las lneas de delimitan a los elementos = negro.
F6 000 Tipo de puntero.
F7 000 Estado de la ventana = normal
F8 040 Nmero de iso-lneas dibujadas
F9 020 Nmero de etiquetas de las iso-lneas dibujadas
F10 000 Nmero del primer nudo numerado = no se numeran los

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


212 Captulo 19. Instrucciones grficas

nudos.
F11 000
Nmero del ltimo nudo numerado = no se numeran los
nudos.
F12 000
Nmero del primer elemento numerado = no se numeran los
elementos.
F13 000
Nmero del ltimo elemento numerado = no se numeran los
elementos.
F14 000
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

el coeficiente GRA(1,1) toma un valor de 8 y se activa la ventana grfica indicada


en la Figura 19.5(b). En cambio, si se ejecuta la instruccin:

GRAFIM XYZ(), ELE(), MAT(), TAS(), GRA(), 9

el coeficiente GRA(1,1) toma un valor de 9 y se activa la ventana grfica indicada


en la Figura 19.5(c).

En un problema como este donde hay dos o ms materiales diferentes, los resultados
nodales corresponden al promedio de la cantidad de inters en los elementos del mismo
material. Si en la evaluacin del promedio no se considera la diferencia entre los materia-
les, los resultados nodales presentados sern diferentes, como se muestra en la Figura 19.6.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 213

(a) malla de elementos material 1 (b) resultado nodal por material dibujado
finitos material 2 con iso-lneas

(c) resultado nodal por material dibujado con


regiones llenas
Figura 19.5. Ejemplo de la instruccin GRAFIM.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


214 Captulo 19. Instrucciones grficas

(a) malla de elementos material 1 (b) resultado nodal por material


finitos material 2

material 1
material 2

(d) detalle de la
malla de
elementos finitos

(e) detalle del (f) detalle del


resultado nodal resultado nodal
(c) resultado nodal considerando un solo
por material considerando
material
un solo material
Figura 19.6. Comparacin entre las instrucciones GRAFIM y GRAFIF.

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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 215

GRAFIE XYZ(), ELE(), FIE(), GRA(), TG, TITU

Argumento Tipo de variable Descripcin


XYZ() Double (real) Matriz de coordenadas de los nudos.
ELE() Integer (entero) Matriz de conectividades.
Matriz de valores elementales. Indica la cantidad de
FIE() Double (real)
inters que se desea dibujar en cada elemento.
GRA() Integer (entero) Matriz de parmetros grficos (Tabla 19.2).
Identificador del tipo de grfico.
Si TG=4 considera un valor constante de la canti-
dad de inters dentro del elemento. Tal valor se
toma de la primera columna de la matriz de valo-
res elementales FIE() (por defecto).
Si TG=7 considera una variacin de la cantidad de
Optional Integer inters dentro del elemento, definida por la inter-
TG (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 triangula-
res 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 (ar- Ttulo de la ventana del grfico. Si se omite este pa-
TITU gumento opcional tipo rmetro la ventana tendr un ttulo por defecto rela-
cadena de caracteres) cionado con la grfica presentada.
Tabla 19.11. Sintaxis de la instruccin GRAFIE.

Ejemplo 19.5 Dada la matriz de coordenadas de los nudos XYZ() y la matriz de


conectividades ELE(), dibujar los resultados elementales en la malla definidos por
la matriz de la componente xx esfuerzos en los elementos SXX(), presentado de dos
formas distintas: a) considerando un valor constante de xx en el elemento definido
por la primera columna de la matriz SXX(), b) considerando la variacin de xx en
el interior del elemento obtenida de la interpolacin de los valores calculados en los
nudos . Los coeficientes de la matriz de parmetros grficos GRA() son:

GRA() (16x1)
C1
Tipo de grfico (ser asignado en la instruccin GRAFIE de
F1 003
acuerdo con el valor de TG).
F2 015 Color del fondo de la ventana grfica = blanco brillante.
F3 000 Color de las etiquetas de numeracin = negro.
F4 012 Color de los nudos de la malla = rojo claro.
F5 000 Color de las lneas de delimitan a los elementos = negro.
F6 000 Tipo de puntero.
F7 000 Estado de la ventana = normal
F8 040 Nmero de iso-lneas dibujadas (no aplica)
F9 020 Nmero de etiquetas de las iso-lneas dibujadas (no aplica)
F10 -001 Nmero del primer nudo numerado = se numeran todos los

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


216 Captulo 19. Instrucciones grficas

nudos.
F11 -001
Nmero del ltimo nudo numerado = se numeran todos los
nudos.
F12 -001
Nmero del primer elemento numerado = se numeran todos
los elementos.
F13 -001
Nmero del ltimo elemento numerado = se numeran todos
los elementos.
F14 000
Indicador del tipo de gama de tonos para los resultados =
escala rojo-amarillo-verde-cian-azul.

Si se ejecuta la instruccin: GRAFIE XYZ(), ELE(), SXX(), GRA(), 4

el coeficiente GRA(1,1) toma un valor de 4 y se activa la ventana grfica indicada


en la Figura 19.7(a). En cambio, si se ejecuta la instruccin: GRAFIE XYZ(),
ELE(), SXX(), GRA(), 7 el coeficiente GRA(1,1) toma un valor de 7 y se activa
la ventana grfica indicada en la Figura 19.7(b).

(a) Ventana grfica de resultados elementales considerando un valor constante en


el interior de cada elemento

(a) Ventana grfica de resultados elementales considerando la variacin en el


interior de cada elemento determinada por las funciones de forma.

Figura 19.7. Ejemplo de la instruccin GRAFIE.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 217

19.8. GRATDE
Dibuja la malla de elementos finitos deformada de acuerdo con el vector de desplazamien-
tos 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) Matriz de parmetros grficos (Tabla 19.2).
NULD Integer (entero) Nmero de pasos de carga.
Tabla 19.12. Sintaxis de la instruccin GRATDE.

Ejemplo 19.6 Una viga simplemente apoyada es cargada progresivamente en


NULD=5 pasos. A continuacin se indica la parte del cdigo de la rutina principal
PEFiCA() donde se calcula la matriz de coordenadas de los nudos de la geometra
deformada exagerada XYZ() por cada paso de carga.

Public Sub PEFiCA()


:
:
For ILD = 1 To NULD 'inicio de ciclo del paso de carga
:
:
'multiplicar vector de fuerzas por factor de amplificacin
FLDE = FLD(ILD, 1)
MTPORE FGL(), FLDE, FGS()
'desplazamientos nodales en la estructura
SOCHLK KGL(), FGS(), DGL() 'solucionar sistema de ecuaciones simul.
MTCONS DGC(), 0, NGLC, 1
MTADJU DGT(), DGL(), DGC()
ORGLFU DXY(), DGT(), MGL() 'organizar vector de desplazamientos en x,y
MTPORE DXY(), 1000#, TM1() 'multiplicar desplazamientos por fac. exager
MTSUMA XYZ(), TM1(), TM2() 'y sumarlo a las coordenadas originales
'crear un archivo plano con la deformada de este paso
IOELDR TM2(), "XYZ", ILD
Next ILD 'fin de ciclo del paso de carga
GRATDE ELE(), GRA(), NULD 'grfica de la deformada en NULD pasos
End Sub
Figura 19.8. Parte del cdigo en VBA de la rutina principal PEFiCA contenida en el mdulo
Md.

Los coeficientes de la matriz de parmetros grficos GRA() son:

GRA() (16x1)

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


218 Captulo 19. Instrucciones grficas

C1
Tipo de grfico (ser asignado igual a 50 por la instruccin
F1 050
GRATDE).
F2 015 Color del fondo de la ventana grfica = blanco brillante.
F3 000 Color de las etiquetas de numeracin = negro.
F4 012 Color de los nudos de la malla = rojo claro.
F5 000 Color de las lneas de delimitan a los elementos = negro.
F6 000 Tipo de puntero.
F7 000 Estado de la ventana = normal
F8 040 Nmero de iso-lneas dibujadas (no aplica)
F9 020 Nmero de etiquetas de las iso-lneas dibujadas (no aplica)
F10 -001
Nmero del primer nudo numerado = se numeran todos los
nudos.
F11 -001
Nmero del ltimo nudo numerado = se numeran todos los
nudos.
F12 -001
Nmero del primer elemento numerado = se numeran todos
los elementos.
F13 -001
Nmero del ltimo elemento numerado = se numeran todos
los elementos.
F14 000
Indicador del tipo de gama de tonos para los resultados =
escala rojo-amarillo-verde-cian-azul.
F15 005 Nmero de pasos de carga NULD
F16 010
Tiempo de retraso entre pasos de carga en dcimas de se-
gundo.

Si se ejecuta la instruccin: GRATDE ELE(), GRA(), NULD se activa una ventana gr-
fica 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 gene-
ral). Previamente debe existir un archivo que contenga el vector de valores nodales por

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 219

cada paso de carga. Los nombres de los archivos para los pasos de carga tendrn el si-
guiente formato: FIF001.txt, FIF002.txt, FIF003.txt , La instruccin IOELDR faci-
lita 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) Matriz de parmetros grficos (Tabla 19.2).
NULD Integer (entero) Nmero de pasos de carga.
Identificador del tipo de grfico.
Si TG=51 grfico de iso lineas, considerando el
rango de valores de cada paso (por defecto).
Si TG=52 grfico de iso lneas, considerando el
rango de valores comn para todos los pasos de
Optional Integer
carga.
TG (argumento opcional
tipo entero) Si TG=53 grfico de regiones llenas, considerando
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.

Ejemplo 19.7 Una viga simplemente apoyada es cargada progresivamente en


NULD=5 pasos. A continuacin se indica la parte del cdigo de la rutina principal
PEFiCA() donde se crea un archivo que contiene los valores nodales de la compo-
nente de esfuerzo xx en cada paso de carga .

Public Sub PEFiCA()


:
:
For ILD = 1 To NULD 'inicio de ciclo del paso de carga
:
:
'crear un archivo plano con una componente de esfuerzo en este paso
IOELDR NXX(), "FIF", ILD
Next ILD 'fin de ciclo del paso de carga
GRATFI ELE(), GRA(), NULD, 54 'componente de esfuerzo resultado nodal
End Sub
Figura 19.10. Parte del cdigo en VBA de la rutina principal PEFiCA contenida en el mdulo
Md.

Los coeficientes de la matriz de parmetros grficos GRA() son:

GRA() (16x1)
C1
Tipo de grfico (ser asignado en la instruccin GRATFI de
F1 051
acuerdo con el valor de TG).
F2 015 Color del fondo de la ventana grfica = blanco brillante.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


220 Captulo 19. Instrucciones grficas

F3 000 Color de las etiquetas de numeracin = negro.


F4 012 Color de los nudos de la malla = rojo claro.
F5 000 Color de las lneas de delimitan a los elementos = negro.
F6 000 Tipo de puntero.
F7 000 Estado de la ventana = normal
F8 040 Nmero de iso-lneas dibujadas.
F9 020 Nmero de etiquetas de las iso-lneas dibujadas.
F10 -001
Nmero del primer nudo numerado = se numeran todos los
nudos.
F11 -001
Nmero del ltimo nudo numerado = se numeran todos los
nudos.
F12 -001
Nmero del primer elemento numerado = se numeran todos
los elementos.
F13 -001
Nmero del ltimo elemento numerado = se numeran todos
los elementos.
F14 000
Indicador del tipo de gama de tonos para los resultados =
escala rojo-amarillo-verde-cian-azul.
F15 005 Nmero de pasos de carga NULD
F16 010
Tiempo de retraso entre pasos de carga en dcimas de se-
gundo.

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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 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 elementa-
les 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) Matriz de parmetros grficos (Tabla 19.2).
NULD Integer (entero) Nmero de pasos de carga.
Identificador del tipo de grfico.
Si TG=55 grfico de regiones llenas, considerando
Optional Integer el rango de valores de cada paso (por defecto).
TG (argumento opcional Si TG=56 grfico de regiones llenas, considerando
tipo entero) el rango de valores comn para todos los pasos de
carga
En la rutina se asigna a GRA(1,1)=TG
Tabla 19.14. Sintaxis de la instruccin GRATFE.

Ejemplo 19.8 Una viga simplemente apoyada es cargada progresivamente en


NULD=5 pasos. A continuacin se indica la parte del cdigo de la rutina principal
PEFiCA() donde se crea un archivo que contiene los valores elementales de la com-
ponente de esfuerzo xx en cada paso de carga .

Public Sub PEFiCA()


:
:
For ILD = 1 To NULD 'inicio de ciclo del paso de carga
:
:
'crear un archivo plano con una componente de esfuerzo en este paso
IOELDR SXX(), "FIE", ILD
Next ILD 'fin de ciclo del paso de carga
GRATFE ELE(), GRA(), NULD, 56 'componente de esfuerzo resultado elemental
End Sub
Figura 19.12. Parte del cdigo en VBA de la rutina principal PEFiCA contenida en el mdulo
Md.

Los coeficientes de la matriz de parmetros grficos GRA() son:

GRA() (16x1)
C1
Tipo de grfico (ser asignado en la instruccin GRATFE de
F1 051
acuerdo con el valor de TG).

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


222 Captulo 19. Instrucciones grficas

F2 015 Color del fondo de la ventana grfica = blanco brillante.


F3 000 Color de las etiquetas de numeracin = negro.
F4 012 Color de los nudos de la malla = rojo claro.
F5 000 Color de las lneas de delimitan a los elementos = negro.
F6 000 Tipo de puntero.
F7 000 Estado de la ventana = normal
F8 040 Nmero de iso-lneas dibujadas (no aplica)
F9 020 Nmero de etiquetas de las iso-lneas dibujadas (no aplica)
F10 -001
Nmero del primer nudo numerado = se numeran todos los
nudos.
F11 -001
Nmero del ltimo nudo numerado = se numeran todos los
nudos.
F12 -001
Nmero del primer elemento numerado = se numeran todos
los elementos.
F13 -001
Nmero del ltimo elemento numerado = se numeran todos
los elementos.
F14 000
Indicador del tipo de gama de tonos para los resultados =
escala rojo-amarillo-verde-cian-azul.
F15 005 Nmero de pasos de carga NULD
F16 010
Tiempo de retraso entre pasos de carga en dcimas de se-
gundo.

Si se ejecuta la instruccin:

GRATFE ELE(), GRA(), NULD, 56

se activa una ventana grfica que muestra una animacin del esfuerzo xx en el in-
terior 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


Captulo 20
Instrucciones de generacin de malla
Este captulo describe las instrucciones que generan de forma automtica la malla de ele-
mentos 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 Tipo de variable Descripcin


Matriz que contiene los parmetros de generacin de
GEM() Double (real) la malla indicados en la Tabla 20.1 (argumento de
entrada).
Matriz de coordenadas de los nudos de la malla (ar-
XYZ() Double (real)
gumento de salida).
Matriz de conectividades de los elementos de la malla
ELE() Integer (entero)
(argumento de salida).
NNUD Integer (entero) Nmero de nudos de la malla (argumento de salida).
Nmero de elementos finitos de la malla (argumento
NELE Integer (entero)
de salida).
Nmero de nudos asociados a un elemento finito
NNUE Integer (entero)
(argumento de salida).
Nmero de dimensiones del problema (argumento de
NDIM Integer (entero)
salida).
Tabla 20.1. Sintaxis de la instruccin GEMARE.

Los parmetros de generacin de la malla descritos en la siguiente tabla corresponden a


los coeficientes de una matriz de 6 filas y 1 columna presentada como el primer argumento
de la instruccin.
224 Captulo 20. Instrucciones de generacin de malla

Coeficiente
Descripcin
de la matriz
GEM(1,1)
Coordenada x del extremo inferior izquierdo de la regin
rectangular que se desea enmallar.
GEM(2,1)
Coordenada y del extremo inferior izquierdo de la regin
rectangular que se desea enmallar.
GEM(3,1)
Coordenada x del extremo superior derecho de la regin
rectangular que se desea enmallar.
GEM(4,1)
Coordenada y del extremo superior derecho de la regin
rectangular que se desea enmallar.
GEM(5,1)
Nmero de elementos finitos en que se divide la regin
rectangular en direccin x.
GEM(6,1)
Nmero de elementos finitos en que se divide la regin
rectangular en direccin y.
Tabla 20.2. Parmetros de generacin de malla contenidos en la matriz
GEM().

Ejemplo 20.1 Una superficie rectangular de 9m por 6m se divide en elementos fi-


nitos 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 ge-
neracin de malla GEM() son:

GEM() (16x1)
C1

F1 0.0000E+00
Coordenada x del extremo inferior izquierdo de la regin
rectangular que se desea enmallar.
F2 0.0000E+00
Coordenada y del extremo inferior izquierdo de la regin
rectangular que se desea enmallar.
F3 9.0000E+00
Coordenada x del extremo superior derecho de la regin
rectangular que se desea enmallar.
F4 6.0000E+00
Coordenada y del extremo superior derecho de la regin
rectangular que se desea enmallar.
F5 3.0000E+00
Nmero de elementos finitos en que se divide la regin
rectangular en direccin x.
F6 2.0000E+00
Nmero de elementos finitos en que se divide la regin
rectangular en direccin y.

Ejecutando la instruccin indicada a continuacin se general la malla estructurada


de 12 nudos (NNUD=12) y 6 elementos finitos rectangulares (NELE=6, NNUE=4,
NDIM=2) mostrada en la Figura 20.1.

GEMARE GEM(),XYZ(), ELE(), NNUD, NELE, NNUE, NDIM

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 225

(x,y)=GEM(3,1),GEM(4,1)

03 06 09 12

02 04 06

GEM(6,1)
02 05 08 11
GEM(5,1) 01 03 05

y y
01 04 07 10
(x,y)=GEM(1,1),GEM(2,1)
x x
superficie rectangular malla de elementos finitos
Figura 20.1. Ejemplo de la instruccin GEMARE.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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 indi-
ca la Tabla 2.18. La matriz columna i (e ) depende de la geometra y la funcin de aproxi-
macin 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)

siendo el vector de valores nodales de la funcin ( x, y ) de la ecuacin diferencial


en el sistema, K la matriz de rigidez o de conductancia del sistema, f el vector de fuerza o
de trminos independientes del sistema e i el vector de contribucin interelemental del sis-
tema. A excepcin de , las dems matrices de la ecuacin anterior son el resultado del
ensamblaje de las respectivas matrices elementales K ( e ) , f ( e ) , i ( e ) , de la forma:
m
K = A K (e) (21.2)
( e )=1

m
f = A f (e) (21.3)
( e ) =1

m
i = A i (e) (21.4)
( e )=1
Las contribuciones interelementales son valores de derivada direccional de la funcin
( x, y ) en el contorno del problema, lo cual corresponde al producto entre el gradiente de
y el vector n = n x i + n y j , es decir:
228 Captulo 21. Instrucciones para crear el vector de contribucin interelemental


n = = nx + ny ( x, y ) (21.5)
n x x
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)

)T
S ( e ) dL (21.6)

donde S (e ) es la derivada direccional n evaluada en el lado del elemento finito. Si el


lado es perpendicular con el eje coordenado x el valor de S (e ) es x , en cambio si el
lado del elemento es normal al eje y, S ( e ) = y .

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 expresa-
da en la Ecuacin (10.5).
Sustituyendo la matriz de funciones de forma del elemento N (e ) presentada en las Ecua-
ciones (8.14) a (8.16), en la Ecuacin (21.6) se obtiene el vector de contribucin interele-
mental sobre los tres lados de un elemento triangular lineal de nudos ijk de la forma:
1 0 1
(e) Sij( e ) L(ije ) S (jke ) L(jke ) (e) (e )
1 + Sik Lik 0
i = 1 + (21.7)
2 2 2
0 1 1

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:
Sij( e ) L(ije )
Si c = 1 i (e)
= [1 1 0]
T

2
(e) (e)
S L
Si c = 2 i ( e ) = jk jk
[0 1 1]
T
(21.8)
2
(e) (e)
S L
Si c = 3 i ( e ) = ik ik [1 0 1]
T

2
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


PEFiCA Programa de elementos finitos a cdigo abierto 229

ITRIAN MX(), XYZ(), ELE(), IELE, S, LADO

Argumento Tipo de variable Descripcin


Vector (creado) de trminos independientes del ele-
MX() Double (real)
mento i (e ) .
Matriz (existente) de coordenadas de los nudos de la
XYZ() Double (real)
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
ELE() Integer (entero)
descrita en el Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Valor de la derivada direccional S (e ) en el lado c co-
S Double (real)
mo lo indica la Ecuacin (21.8).
Indicador del lado que el elemento finito comparte
con el contorno del problema donde existe contribu-
cin interelemental.
LADO Integer (entero)
Si LADO=1 corresponde al lado ij.
Si LADO=2 corresponde al lado jk.
Si LADO=3 corresponde al lado ik.
Tabla 21.1. Sintaxis de la instruccin ITRIAN.

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 condi-
cin 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 tie-
ne que L(ike ) = 2.0 . Por lo tanto, los coeficientes del vector de contribucin interele-
mental son los siguientes:

IEL() (3x1)
C1
F1 -5.2000E+00
F2 0.0000E+00
F3 -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 Ecua-
ciones (8.19) y (8.20), en la Ecuacin (21.6) se obtiene el vector de contribucin interele-
mental sobre los cuatro lados de un elemento rectangular bilineal de nudos ijkm de la for-
ma:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


230 Captulo 21. Instrucciones para crear el vector de contribucin interelemental

1 0 0 1
(e)
S L (e) 1 S ( e ) L( e ) 1 (e ) (e) 0 (e ) (e) 0
i (e) =
ij ij + jk jk + S km Lkm + S im Lim (21.9)
2 0 2 1 2 1 2 0

0 0 1 1
donde Sij(e ) es la derivada direccional con respecto a la normal al lado ij de longitud L(eij ) ,
S es la derivada direccional con respecto a la normal al lado jk de longitud L(ejk) , S km
(e )
jk
(e )
es la
derivada direccional con respecto a la normal al lado km de longitud L(ekm) y Sim(e ) es la deri-
vada direccional con respecto a la normal al lado im de longitud L(eim) . Sin embargo, la ins-
truccin IRECTA calcula el vector de contribucin interelemental por cada lado c del ele-
mento indicado en la Figura 11.3 de la forma:
Sij( e ) L(ije )
Si c = 1 i (e)
= [1 1 0 0]
T

2
(e) (e)
S L
Si c = 2 i ( e ) = jk jk
[0 1 1 0]
T

2 (21.10)
(e) (e)
S L
Si c = 3 i ( e ) = [0 0 1 1]T
km km
2
(e) (e)
S L
Si c = 4 i ( e ) = im im [1 0 0 1]
T

2
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

IRECTA MX(), XYZ(), ELE(), IELE, S, LADO

Argumento Tipo de variable Descripcin


MX() Double (real) Vector (creado) de trminos independientes del elemento i (e ) .
Matriz (existente) de coordenadas de los nudos de la malla des-
XYZ() Double (real)
crita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades descrita en el
ELE() Integer (entero)
Apartado 3.4.
IELE Integer (entero) Nmero del elemento finito.
Valor de la derivada direccional S (e ) en el lado c como lo indica
S Double (real)
la Ecuacin (21.8).
Indicador del lado que el elemento finito comparte con el contor-
no del problema donde existe contribucin interelemental.
Si LADO=1 corresponde al lado ij.
LADO 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.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


PEFiCA Programa de elementos finitos a cdigo abierto 231

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 inter-
elemental son los siguientes:

IEL() (3x1)
C1
F1 0.0000E+00
F2 0.0000E+00
F3 -5.2000E+00
F3 -5.2000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010


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: 347-
356, 383-387.
Argyris, J. (1955). "Energy theorems ans structural analysis." Aircraft Engineering 27: 42-
58, 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 Ther-
mal 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 someti-
do 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, Sprin-
ger-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

Microsoft (2001). Visual Basic for Application. Reference Manual.


Microsoft (2003). Microsoft Office Excel. Reference Manual.
Oate, E. & Zrate, F. (2000). Introduccin al mtodo de los elementos finitos. Barcelona,
Centro Internacional de Mtodos Numricos en Ingeniera.
Parra, R. (2009). Optimizacin topolgica aplicada a problemas de elasticidad bidimensio-
nal usando elementos finitos. Tesis de Maestra en Estructuras (en curso), Universi-
dad Nacional de Colombia, Bogot.
Popov, E. (1998). Engineering mechanics of solids, Prentice-Hall.
Puerto, S. (2008). Automatizacin del proceso de generacin de mallas en el mtodo de los
elementos finitos para el clculo de esfuerzos en tneles y su validacin mediante el
mtodo de las capas mltiples. Tesis de pregrado en Ingeniera Civil, Universidad
Nacional de Colombia, Bogot.
Reddy, J. N. (2004). An introduction to nonlinear finite element analysis, Oxford Univer-
sity Press.
Roman, S. (2002). Writing Excel macros with VBA, O'Reilly.
Simon, J. (2002). Excel Programming, Hungry Minds.
Taylor, R. (2008). FEAP - A Finite Element Analysis Program. Theory manual. Berkeley,
Department of Civil and Environmental Engineering
University of California.
Uribe, J. (1995). Microcomputadores en Ingeniera Estructural. Bogot, Universidad Na-
cional de Colombia y ECOE ediciones.
Walkenbach, J. (2004). Microsoft Office Excel 2003 Power programming with VBA, Wiley
Publishing.
Weaver, J. & Johnson, C. (1984). Finite elements for structural analysis. New Jersey, Pren-
tice Hall.
Zienkiewicz, O. (1980). El mtodo de los elementos finitos. Barcelona, Editorial Revert.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010