Está en la página 1de 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

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

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

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 permitido representar el comportamiento de estructuras, suelos, rocas y lquidos ante diferentes
acciones, con geometras irregulares, con varios materiales y con condiciones de borde particulares.
En las primeras aplicaciones del mtodo de los elementos finitos se obtena la distribucin de esfuerzos en un slido de comportamiento lineal elstico bidimensional, sustituyendo el medio continuo por barras elsticas simples (Argyris 1954; Argyris 1955; Clough
1960). Actualmente, el desarrollo de la mecnica computacional y la capacidad de clculo
de los computadores, permiten la simulacin de problemas no-lineales en slidos y fluidos
considerando materiales inelsticos, grandes deformaciones, condiciones especiales de contacto y acciones estticas o dinmicas, entre otras (Crisfield 1991a; Crisfield 1991b;
Felippa 1991; Bonet & Wood 1997; Belytschko, Liu et al. 2000; Holzapfel 2000; Reddy
2004; Kojic & Bathe 2005).
La potencia y funcionalidad del mtodo de los elementos finitos lo ha convertido en una
herramienta importante para la investigacin terica y experimental en aplicaciones de la
Mecnica de Slidos y de Fluidos. De igual forma, el mtodo participa cada vez ms en la
ingeniera de diseo y construccin en las reas de Geotecnia, Hidrulica y principalmente
en la Ingeniera Estructural.
En algunas universidades se ha considerado que la simulacin numrica del comportamiento mecnico de slidos y fluidos debe hacer parte de la formacin de un Ingeniero Civil. En particular en la Universidad Nacional de Colombia sede Bogot, la asignatura Taller III del programa curricular de Ingeniera Civil dedica 3 horas por semana a dicho tema,
desde la reforma acadmica de 1993.
En la dcada de los 70s, las Maestras en Geotecnia y en Estructuras introducen en sus
programas curriculares la simulacin numrica de slidos, ofreciendo como electivas las
asignaturas Mtodos Numricos en Geotecnia y Anlisis Estructural por Elementos Finitos,
respectivamente.
La intervencin del computador como medio para la aplicacin del mtodo de los elementos finitos en la simulacin de problemas con muchos grados de libertad, exige que el
estudiante, adems de comprender el mtodo, programe y automatice el procedimiento de
clculo.
La investigacin en el tema busca desarrollar nuevos modelos numricos que describan
el comportamiento de slidos y fluidos con mayor precisin y eficiencia. Para cumplir este

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 desarrollos.
Los planteamientos expresados en los prrafos anteriores justificaron y motivaron la
creacin de PEFiCA, acrnimo que significa Programa de Elementos Finitos a Cdigo
Abierto.
Este documento est dividido en tres partes. La primera parte o Captulo 1 presenta los
antecedentes, el objetivo y el alcance del programa. La segunda parte, conformada por los
captulos 2 y 3, describe la estructura y el manejo del programa, as como los tipos y formatos de los datos de entrada y de salida. En la tercera parte presentada entre los captulos 4
y 21, se detallan las instrucciones o subrutinas disponibles para construir el proceso principal de clculo, donde cada captulo agrupa las instrucciones con un fin comn.

1.1. Antecedentes
En los aos 60s despus de establecidos los conceptos bsicos del anlisis matricial, comienza el desarrollo de programas aislados de simulacin numrica con propsito especfico. Mediante un proyecto de cooperacin de la NASA surge en 1968, uno de los primeros
programas de elementos finitos de uso general denominado NASTRAN (Nasa STRuctural
ANalysis) (MacNeal 1972). Desde entonces se han desarrollado muchos programas de
computador con objetivos similares. En la actualidad se encuentran algunos programas
comerciales como el ABACUS, ALGOR, ANSYS, COSMOS y ADINA, entre otros, que permiten la simulacin numrica de problemas multifsicos con gran eficiencia y comodidad
para el usuario. En este tipo de herramientas un programa previamente compilado realiza
el proceso de clculo y otro programa denominado post proceso, presenta los resultados,
actuando en conjunto como una caja negra para el usuario.
Por otro lado, los centros de investigacin en el rea han desarrollado programas a cdigo abierto, es decir, grupos de rutinas observables y modificables, que despus de ser compiladas en conjunto generan un programa ejecutable de elementos finitos. Entre los ms
populares se encuentran los programas escritos en lenguaje FORTRAN como el FEAP
(Taylor 2008) y el COMET (Cervera, Agelet et al. 2001), y las herramientas ejecutables en
el programa MATLAB como el FEMLAB (COMSOL 2007) y CALFEM (LundUniversity
1999).
En la Universidad Nacional de Colombia se desarroll el Programa Didctico de Elementos Finitos - Euler (Linero 1999), el cual proporcionaba al usuario un grupo de instrucciones fijas con las cuales se podran resolver algunos problemas de campo y de elasticidad
unidimensional y bidimensional. Durante 3 aos ste programa fue incorporado en las
asignaturas correspondientes en los programas curriculares de Ingeniera Civil y de Maestra en Ingeniera Estructuras. La respuesta de los estudiantes revel las fortalezas y debilidades de la herramienta, dando paso a la creacin del nuevo programa denominado PEFiCA.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

PEFiCA Programa de elementos finitos a cdigo abierto

1.2. Objetivos
El programa PEFiCA tiene como objetivo principal motivar, estimular y facilitar el aprendizaje del Mtodo de los Elementos Finitos (MEF) en el campo de la Ingeniera Civil, a
travs del uso de subrutinas preestablecidas para resolver un problema especfico. El estudiante debe programar el procedimiento principal a partir de las subrutinas proporcionadas
por el programa o mediante nuevas rutinas creadas por l mismo. Con lo anterior el programa busca que el usuario participe activamente del proceso de aprendizaje en el tema,
observando, entendiendo y desarrollando progresivamente cada una de las etapas de clculo.
El programa pone al estudiante en un estadio intermedio entre la programacin de todos
y cada uno de los procedimientos de clculo y el proceso automatizado entrada de datos y
presentacin de resultados. El programa evita que el usuario ocupe mucho tiempo en los
procedimientos bsicos como la solucin de un sistema de ecuaciones simultaneas o el ensamblaje de una matriz, sin embargo permite que observe y modifique cualquiera de las
subrutinas. Esta transparencia y flexibilidad del programa le permitan al usuario analizar
cada procedimiento y desarrollar nuevos procesos de clculo.

1.3. Alcance
Las rutinas definidas en la primera versin programa permiten resolver algunos problemas
particulares en Ingeniera y especficamente en mecnica de slidos, mediante el mtodo de
los elementos finitos.
Por un lado, PEFiCA soluciona de forma dbil la ecuacin diferencial de campo unidimensional presentada en la Expresin (10.1), la cual gobierna problemas como deflexin de
vigas, alargamiento de barras sometidas a fuerza axial distribuida y transferencia de calor
unidimensional. De igual manera, se puede resolver la ecuacin diferencial parcial de
campo bidimensional denominada ecuacin de Poisson (Oate & Zrate 2000) expresada
en la Ecuacin (10.5), que define varios fenmenos en Ingeniera, tales como: distribucin
de esfuerzos cortantes en barras de seccin transversal arbitraria sometidas a torsin pura,
lneas de potencial y de corriente en flujo irrotacional, infiltracin del agua en suelos permeables y transferencia de calor bidimensional, entre otros.
Asimismo, el programa permite obtener el campo de los desplazamientos, deformaciones y esfuerzos de un slido sometido a fuerzas estticas en condicin plana de esfuerzos o
de deformaciones, considerando que las deformaciones son infinitesimales y que el material
es elstico lineal istropo.
Para dar solucin a estos tipos de problemas el programa cuenta con subrutinas capaces
de construir la matriz de funciones de forma, la matriz de operadores diferenciales actuando
sobre funciones de forma, el vector de fuerzas y la matriz de rigidez de los elementos finitos unidimensional lineal y cuadrtico, triangular lineal y rectangular bilineal de campo,
triangular lineal y rectangular bilineal de elasticidad. Otro grupo de subrutinas permite,
entre otras operaciones matriciales, calcular el vector solucin de un sistema de ecuaciones
simultneas linealmente independiente y los valores y vectores propios de un sistema de

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

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 grises. 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 objetivos 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 Visual 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 posibilidad 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 programa PEFiCA, permite visualizar cmodamente las cantidades de inters en el dominio del
problema, como por ejemplo: funciones de campo, desplazamientos, deformaciones y esfuerzos.
Eficiencia. Debido a sus fines didcticos, el programa guarda en la memoria RAM algunas matrices caractersticas de las etapas intermedias del procedimiento, sin embargo, los
usuarios avanzados podrn evitar que dichas matrices sean guardadas. El tiempo de ejecucin 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 subrutinas que permitan la solucin de otros problemas mediante el mtodo de los elementos finitos.
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

sistema operativo Microsoft Windows y con el programa Microsoft Excel, lo cual es comn
en el medio.
Documentacin. El manual del usuario est dividido en dos volmenes: el presente
documento o volumen 1, el cual contiene la descripcin y manejo del programa, y el volumen 2 que presenta los ejemplos de aplicacin y los algoritmos de clculo ms representativos. Adicionalmente, se incluyen los archivos de ms de 20 ejemplos resueltos con el
programa.

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 computacional de anlisis de problemas fsicos por medio del mtodo de los elementos finitos,
cuyas rutinas son visibles, modificables y ejecutables.
El programa est conformado por un libro de Microsoft Office Excel que contiene los
datos y las rutinas del proceso denominado PEFiCA.xls y por otro programa ejecutable
llamado PEFiCAGraf.exe el cual genera las grficas resultantes del anlisis.
La documentacin incluida en el archivo PEFiCA.pdf presenta la descripcin, estructura
y manejo del programa y de las rutinas que lo conforman, como tambin muestra algunos
ejemplos de aplicacin. Adicionalmente, la carpeta \ejemplos\ tiene los libros de Microsoft Office Excel con los ejemplos de aplicacin indicados en la documentacin.
El libro PEFiCA.xls contiene un grupo de hojas de clculo que almacena los datos de
entrada y de salida asociados al proceso de clculo escrito y compilado en los mdulos de
Visual Basic for Applications (VBA). Las partes que conforman el archivo PEFiCA.xls se
presentan en los siguientes apartados.
Se recomienda al usuario del programa consultar permanente de libros y manuales de
referencia de programacin en lenguaje VBA aplicado a Microsoft Excel (Microsoft 2001;
Roman 2002; Simon 2002; Microsoft 2003; Walkenbach 2004).

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 informacin 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 elementos finitos. En cada una de ellas se almacena parte de la informacin del problema,
como las coordenadas de los nudos, las conectividades del los elementos, las fuerzas
aplicadas, entre otras. La Tabla 2.1 describe el contenido sugerido en cada una de las
hojas de entrada de datos incluidas en el libro de Excel, sin embargo, el usuario puede
modificar la organizacin presentada de las hojas de clculo siempre y cuando contenga la informacin completa del problema.

12

Captulo 2. Estructura y manejo del programa

Hoja de
clculo
TB_GEN

TB_XYZ

TB_ELE

TB_RES

TB_FUN

TB_FUE

Descripcin
Contiene los parmetros generales del problema como el ttulo, la cantidad de nudos y
de elementos de la malla, el nmero de grados de libertad por nudo, las variables de
dibujo de los resultados, etc.
Contiene las coordenadas de los nudos de la malla de elementos finitos, ordenados de
forma secuencial. A partir de esta tabla se construye la matriz especial de coordenadas
de los nudos descrita en la Seccin 3.4.1.
Contiene los nudos asociados a cada elemento de la malla, ordenados de forma secuencial. A partir de esta tabla se construye la matriz especial de elementos descrita en la
Seccin 3.4.1.
Establece las condiciones de borde naturales, indicando los grados de libertad conocidos por cada nudo. A partir de esta tabla se construye la matriz especial de condiciones
de borde descrita en la Seccin 3.4.1.
Contiene las componentes de las fuerzas puntuales aplicadas a cada uno de los nudos
para los problemas de elasticidad. A partir de esta tabla se construye la matriz especial
de fuerzas organizadas por nudos descrita en la Seccin 3.4.2
Contiene las componentes de las fuerzas distribuidas por unidad de superficie y por
unidad de volumen aplicadas sobre los elementos para los problemas de elasticidad. A
partir de esta tabla se construye la matriz especial de fuerzas distribuidas descrita en la
Seccin 3.4.2
Tabla 2.1. Hojas de entrada de datos

La hoja de salida de datos se utiliza para presentar los resultados del problema a travs de las matrices escogidas por el usuario. Las instrucciones EDIMEI, EDIMER,
EDIMPI y EDIMPR permiten escribir en una hoja de clculo: matrices y escalares, enteras y reales, con un formato de salida particular. Se recomienda utilizar la hoja
TB_OUT para presentar los datos de salida, sin embargo el usuario puede escribir los
resultados en las celdas de cualquier hoja de clculo. El Apartado 3.3 indica como
presentar los resultados en la hoja de clculo TB_OUT de manera secuencial, lo cual
evita que se sobrescriban las matrices resultantes.

2.2. Estructura del proceso: mdulos y rutinas en VBA


Los mdulos de VBA contienen las subrutinas del proceso de clculo clasificadas de acuerdo 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

13

PEFiCA Programa de elementos finitos a cdigo abierto

Mdulo

Prefijo de
las rutinas

Md
MdED

ED

MdMT

MT

MdSO

SO

MdVP

VP

MdN

N

MdB

B

MdK

K

MdF

F

MdCE

CE

MdTR

TR

MdNGL

NGL

MdEN

EN

MdEX

EX

MdOR

OR

MdIO

IO

MdPB

PB

MdGRA

GRA

MdGE

GE

MdI

I

objetivo
Contiene solamente la subrutina principal del programa PEFiCA().
Contiene las subrutinas que construyen una matriz a partir de los valores de un
grupo de celdas de una hoja de clculo y que escriben o presentan los coeficientes
de una matriz en una hoja de clculo (Captulo 4).
Contiene las subrutinas que realizan las operaciones bsicas entre matrices. Estas
instrucciones se describen en el Captulo 5.
Contiene las subrutinas que solucionan sistemas de ecuaciones simultneas linealmente independientes mediante diferentes mtodos. Estas instrucciones se describen en el Captulo 6.
Contiene las subrutinas que calculan los valores y vectores propios en sistemas
homogneos de ecuaciones simultneas (Captulo 7).
Contiene las subrutinas que crean la matriz o el vector de funciones de forma de un
tipo de elemento finito de la librera del programa (Captulo 8).
Contiene las subrutinas que crean la matriz de operadores diferenciales actuando
sobre las funciones de forma de un tipo de elemento finito (Captulo 9).
Contiene las subrutinas que crean la matriz de rigidez de los elementos finitos que
constituyen la librera del programa (Captulo 10).
Contiene las subrutinas que el vector de fuerzas equivalentes o vector de trminos
independientes de los elementos finitos que constituyen la librera del programa.
Estas instrucciones se describen en el Captulo 11.
Contiene las subrutinas que generan la matriz de constantes elsticas D en materiales cuya relacin constitutiva indicada en la Ecuacin (12.1). Estas instrucciones se
describen en el Captulo 12.
Contiene las subrutinas de cambio de base coordenada de variables fsicas como
fuerzas, desplazamientos, esfuerzos y deformaciones. En algunas rutinas se construye la matriz de transformacin T, y en otros casos la instruccin transforma
directamente a la variable fsica. Estas instrucciones se describen en el Captulo 13.
Contiene las subrutinas que generan matrices o tablas de los identificadores de los
grados de libertad o valores nodales asociados a cada uno de los nudos o cada uno
de los elementos de la malla. Estas instrucciones se describen en el Captulo 14.
Contiene las subrutinas que construyen la matriz o vector del sistema a partir del
ensamblaje de las matrices o vectores elementales (Captulo 15).
Contiene las subrutinas que extraen una matriz o vector elemental conformada por
algunos coeficientes de una matriz o vector del sistema (Captulo 15).
Contiene las subrutinas dedicadas a ordenar los coeficientes de una matriz de
acuerdo con la numeracin de los grados de libertad, de los nudos o de los elementos del problema. Estas instrucciones se describen en el Captulo 16.
Contiene las subrutinas que permiten importar y exportar matrices a un archivo
plano. Estas instrucciones se describen en el Captulo 17.
Contiene las subrutinas miscelneas del programa, generalmente utilizadas por las
dems instrucciones. Estas instrucciones se describen en el Captulo 18.
Contiene las subrutinas dedicadas a la generacin de grficas de cantidades de
inters sobre la malla de elementos finitos (Captulo 19).
Contiene las subrutinas dedicadas a la generacin de la malla a partir de una regin
especfica. Estas instrucciones se describen en el Captulo 20.
Contiene las subrutinas dedicadas a la generacin de vectores de constribucin
interelemental. Estas instrucciones se describen en el Captulo 21.
Tabla 2.2. Mdulos del programa

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

14

rutina
MTCONS
MTCONI
MTSUBM
MTADJU
MTADMR
MTADMI
MTTRAN
MTMULT
MTMUL3
MTSUMA

Captulo 2. Estructura y manejo del programa

objetivo
Crea una matriz M de nf filas por nc columnas, cuyos coeficientes corresponden a un nmero
real c.
Crea una matriz M de nf filas por nc columnas, cuyos coeficientes corresponden a un nmero
entero c.
Extrae una submatriz S de la matriz existente M.
Crea un vector columna x conformado por dos subvectores columna existentes s y t.
Crea una matriz real X conformada por dos submatrices reales existentes S y T, adjuntando T
despus de la ltima fila o de la ltima columna de S.
Crea una matriz de trminos enteros X conformada por dos submatrices enteras existentes S y
T, adjuntando T despus de la ltima fila o de la ltima columna de S.
Calcula la matriz transpuesta de la matriz existente M, creando la matriz T.
Multiplica la matriz A por la matriz B obteniendo la matriz C.
Multiplica la primera matriz transpuesta AT por la segunda matriz B y el resultado lo multiplica a la primera matriz A.
Calcula la matriz C como la suma entre las matrices A y B.

MTDIVI

Calcula la matriz C como la resta de la matriz A menos la matriz B.


Multiplica trmino a trmino los coeficientes de las matrices A y B, almacenando el resultado
en la matriz C.
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

MTDETE

Encuentra el coeficiente mximo o mnimo de una matriz real A.


Establece el ancho de semi banda de una matriz simtrica llena A y crea la matriz banda B
correspondiente.
Factoriza una matriz cuadrada M.
Factoriza la matriz M en el producto entre una matriz triangular inferior L y una matriz triangular superior U.
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

MTREST
MTPROD

MTBAND
MTFUDU
MTFCLU

rutina

objetivo
Resuelve
un
sistema
de
ecuaciones
simultaneas
linealmente independiente mediante el mtodo
SOGAUS
de eliminacin de Gauss.
Resuelve un sistema simtrico de ecuaciones simultaneas linealmente independiente mediante
SOCHLK
el mtodo de Cholesky modificado.
Resuelve un sistema de ecuaciones simultaneas linealmente independiente mediante el mtodo
SOBAND
de Cholesky modificado, en el cual la matriz simtrica se lee como una matriz banda.
Tabla 2.4. Instrucciones de solucin de ecuaciones simultneas indicadas en el mdulo MdSO

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

15

PEFiCA Programa de elementos finitos a cdigo abierto

rutina
EDLECI
EDLECR
EDLECE

EDTABI

EDTABR

EDIMEI
EDIMER
EDIMPI
EDIMPR
EDLIMH

objetivo
Crea la matriz entera M para la cual cada coeficiente corresponde a una celda de la hoja de
clculo.
Crea la matriz real M para la cual cada coeficiente corresponde a una celda de la hoja de clculo
Captura el valor de una celda especfica de una hoja de clculo y lo guarda en una variable
escalar.
Construye una matriz entera a partir de un bloque de celdas de una hoja de clculo especfica.
En esta subrutina un ndice establece en que fila de la matriz creada se guardarn los valores
de las celdas
Construye una matriz real a partir de un bloque de celdas de una hoja de clculo especfica. En
esta subrutina un ndice establece en que fila de la matriz creada se guardarn los valores de
las celdas.
Escribe una variable escalar entera en una hoja de clculo en el formato de salida para variables enteras.
Escribe una variable escalar real en una hoja de clculo en el formato de salida para variables
reales.
Escribe una matriz entera en una hoja de clculo en el formato de salida para variables enteras.
Escribe una matriz real en una hoja de clculo en el formato de salida para variables reales.
Borra el contenido de todas las celdas de la hoja de clculo especificada.
Tabla 2.5. Instrucciones de edicin de matrices indicadas en el mdulo MdED

rutina

objetivo
Obtiene el primer vector propio y el primer valor propio mediante el mtodo de la iteracin
VPITER
inversa.
Obtiene los vectores propios y los valores propios mediante el mtodo de Jacobi de un sistema
VPJACK
de ecuaciones homogneo sin matriz de masas.
Obtiene los vectores propios y los valores propios mediante el mtodo de Jacobi de un sistema
VPJACO
de ecuaciones homogneo con matriz simtrica de masas.
Tabla 2.6. Instrucciones de clculo de vectores y valores propios, indicadas en el mdulo MdVP
rutina
NUNID2

objetivo
Crea la matriz de funciones de forma de un elemento unidimensional lineal.

Crea la matriz de funciones de forma de un elemento unidimensional cuadrtico.


Crea la matriz de funciones de forma de un elemento triangular lineal con un grado de libertad
NTRIAN
por nudo.
Crea la matriz de funciones de forma de un elemento rectangular bilineal con un grado de
NRECTA
libertad por nudo.
Crea la matriz de funciones de forma de un elemento triangular lineal para elasticidad bidiNTRIEL
mensional u otro problema con dos grados de libertad por nudo.
Crea la matriz de funciones de forma de un elemento rectangular bilineal para elasticidad
NRECEL
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
NUIND3

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

16

Captulo 2. Estructura y manejo del programa

rutina

objetivo
Crea
la
matriz
de
operadores
diferenciales
actuando
sobre funciones de forma de un elemento
BUNID2
unidimensional lineal en un problema de campo unidimensional.
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
BUNID3
unidimensional cuadrtico en un problema de campo unidimensional.
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
BTRIAN
triangular lineal con un grado de libertad por nudo.
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
BRECTA
rectangular bilineal con un grado de libertad por nudo.
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
BTRIEL
triangular lineal para elasticidad bidimensional u otro problema con dos grados de libertad por
nudo.
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento
BRECEL
rectangular bilineal para elasticidad bidimensional u otro problema con dos grados de libertad
por nudo.
Tabla 2.8. Instrucciones para crear la matriz de derivadas de funciones de forma de un elemento, indicadas
en el mdulo MdB
rutina

objetivo
Crea
la
matriz
de
rigidez
de
un
elemento
finito
unidimensional lineal preparado para resolver
KUNID2
una ecuacin diferencial de campo unidimensional.
Crea la matriz de rigidez de un elemento finito unidimensional cuadrtico preparado para
KUNID3
resolver una ecuacin diferencial de campo unidimensional..
Crea la matriz de rigidez de un elemento finito triangular lineal preparado para resolver la
KTRIAN
ecuacin diferencial de campo bidimensional de Poisson.
Crea la matriz de rigidez de un elemento finito rectangular bilineal preparado para resolver la
KRECTA
ecuacin diferencial de campo bidimensional de Poisson.
Crea la matriz de rigidez de un elemento finito triangular lineal de elasticidad para un material
KTRIEL
istropo en condicin plana de esfuerzos o de deformaciones.
Crea la matriz de rigidez de un elemento finito rectangular bilineal de elasticidad para un maKRECEL
terial istropo en condicin plana de esfuerzos o de deformaciones.
Tabla 2.9. Instrucciones para crear la matriz rigidez de un elemento, indicadas en el mdulo MdK

rutina

objetivo
Crea
la
matriz
de
constantes
elsticas
para
un
material de comportamiento lineal elstico isCELAPL
tropo en condicin plana de esfuerzos y en condicin plana deformaciones.
Tabla 2.10. Instrucciones para crear matrices de constantes elsticas, indicadas en el mdulo MdCE

rutina
TRVECO
TRESP2

TRPRIN

TRVMIS

objetivo
Crea la matriz de transformacin de un vector definido en el plano. Se utiliza para realizar
cambios de base del vector de fuerza o de desplazamiento en un espacio bidimensional.
Crea la matriz de transformacin de las componentes de esfuerzo o deformacin contenidas en
el plano xy.
Calcula los esfuerzos (o deformaciones) principales y las respectivas direcciones principales a
partir de las componentes de esfuerzo (o de deformaciones) en la base original en un espacio
bidimensional.
Calcula el esfuerzo de von Misses asociado al criterio de fluencia de la energa de distorsin a
partir de las componentes de esfuerzo en la base original en un espacio bidimensional.
Tabla 2.11. Instrucciones de cambio de base, indicadas en el mdulo MdTR

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 prepaFUNID2
rado para resolver una ecuacin diferencial de campo unidimensional donde el parmetro
independiente es constante.
Crea el vector de trminos independientes de un elemento finito unidimensional lineal prepaFUN2QL
rado para resolver una ecuacin diferencial de campo unidimensional donde el parmetro
independiente tiene variacin lineal.
Crea el vector de trminos independientes de un elemento finito unidimensional cuadrtico
FUNID3
preparado para resolver una ecuacin diferencial de campo unidimensional donde el parmetro
independiente es constante.
Crea el vector de trminos independientes de un elemento finito unidimensional cuadrtico
FUN3QL
preparado para resolver una ecuacin diferencial de campo unidimensional donde el parmetro
independiente tiene variacin lineal.
Crea el vector de trminos independientes de un elemento finito triangular lineal preparado
FTRIAN
para resolver la ecuacin diferencial de campo bidimensional de Poisson.
Crea el vector de trminos independientes de un elemento finito rectangular bilineal preparado
FRECTA
para resolver la ecuacin diferencial de campo bidimensional de Poisson.
Crea el vector de fuerzas en los nudos equivalentes a la aplicacin de una fuerza de superficie
FTRIES
o presin constante sobre uno de los lados de un elemento finito triangular lineal de elasticidad.
Crea
el vector de fuerzas en los nudos equivalentes a la accin de una fuerza msica constante
FTRIEC
o fuerza distribuida por unidad de volumen del elemento finito triangular lineal de elasticidad.
Crea el vector de fuerzas en los nudos equivalentes a la aplicacin de una fuerza de superficie
FRECES
o presin constante sobre uno de los lados de un elemento finito rectangular bilineal de elasticidad.
Crea el vector de fuerzas en los nudos equivalentes a la accin de una fuerza msica constante
FRECEC
o fuerza distribuida por unidad de volumen del elemento finito rectangular bilineal de elasticidad.
Tabla 2.12. Instrucciones para crear el vector de fuerzas de un elemento, indicadas en el mdulo MdF
rutina
NGLNUD
NGLELE
NGLBAN

objetivo
Crea la matriz de grados de libertad por nudo a partir de la matriz indicadora de condiciones
de borde del problema.
Crea la matriz de incidencias o tabla de grados de libertad por elemento a partir de la matriz
de grados de libertad por nudo y la matriz de conectividades del problema.
Calcula el ancho de la semi-banda de la matriz de rigidez y el nmero de grados de libertad del
sistema a partir de la matriz de incidencias.
Tabla 2.13. Instrucciones numerar grados de libertad, indicadas en el mdulo MdNGL

rutina

objetivo
Suma
la
contribucin
de
una
matriz
elemental
a la matriz del sistema de acuerdo con la numeENSAMK
racin de los valores nodales o grados de libertad del elemento adicionado.
Suma la contribucin de un vector elemental al vector del sistema de acuerdo con la numeraENSAMV
cin de los valores nodales o grados de libertad del elemento adicionado.
Suma
la contribucin de una matriz elemental simtrica a la matriz del sistema en formato de
ENBAND
matriz banda de acuerdo con la numeracin de los grados de libertad del elemento.
Suma un coeficiente especificado de una matriz elemental a los coeficientes de un vector del
ENSAMX
sistema de acuerdo con la numeracin de los grados de libertad del elemento.
Extrae un vector elemental conformado por los coeficientes de un vector del sistema definidos
EXTRAV
de acuerdo con la numeracin de los valores nodales o grados de libertad del elemento.
Tabla 2.14. Instrucciones para ensamblar y extraer matrices, indicadas en los mdulos MdEN y MdEX

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

18

rutina
ORFUGL
ORGLFU
ORSONO
ORSONM
ORNUDE
ORNLIN
ORNLIX
ORELIN
ORELIX
ORXYNU

rutina

Captulo 2. Estructura y manejo del programa

objetivo
Crea el vector de valores nodales de la estructura ordenado de acuerdo con la numeracin de
los grados de libertad a partir de la tabla de valores nodales ordenada por nudo.
Crea la tabla de valores nodales ordenada por nudo a partir del vector de valores nodales de la
estructura ordenado de acuerdo con la numeracin de los grados de libertad.
Crea un vector de resultados nodales a partir de una matriz de resultados elementales calculados en los nudos de cada elemento.
Crea una matriz de resultados nodales por material a partir de una matriz de resultados elementales calculados en los nudos de cada elemento.
Crea una matriz o tabla que contiene en cada fila los elementos asociados a cada nudo.
Construye una listado de los nudos que hacen parte de un segmento recto entre dos nudos
extremos definidos en la tabla de coordenadas.
Construye una listado de los nudos que hacen parte de un segmento recto definido entre dos
puntos cuya posicin puede o no coincidir con los nudos de la malla.
Construye una listado de los elementos cuyos lados hacen parte de un segmento definido por
dos nudos.
Construye una listado de los elementos cuyos lados hacen parte de segmento recto definido
entre dos puntos cuya posicin puede o no coincidir con los nudos de la malla.
Extrae de la matriz de coordenadas o de cualquier matriz de resultados nodales, los respectivos
valores para los nudos relacionados en un vector o lista predefinida.
Tabla 2.15. Instrucciones de organizacin de matrices, indicadas en el mdulo MdOR
objetivo

IOEXPR

Permite exportar una matriz real existente a un archivo plano.

IOEXPI

Permite exportar una matriz entera existente a un archivo plano.

Permite exportar un vector de datos enteros a un archivo plano en un formato definido.


Permite exportar una matriz real existente a un archivo plano en el formato indicado en la para
IOELDR
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
IOEXPD

rutina
GEMARE

objetivo
Genera una malla de elementos finitos rectangulares en una regin en forma de rectangular.
Tabla 2.17. Instrucciones de generacin de malla, indicadas en el mdulo MdGE

rutina

objetivo
Crea
el
vector
de
contribucin
interelemental
de un elemento finito triangular lineal preparado
ITRIAN
para resolver una ecuacin diferencial de campo bidimensional de Poisson.
Crea el vector de contribucin interelemental de un elemento finito rectangular bilineal prepaIRECTA
rado para resolver una ecuacin diferencial de campo bidimensional de Poisson.
Tabla 2.18. Instrucciones para crear el vector de contribuciones interelementales, indicadas en el mdulo
MdI

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

19

PEFiCA Programa de elementos finitos a cdigo abierto

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.


Calcula la distancia entre dos nudos en el espacio bidimensional a partir de la matriz o tabla de
coordenadas en los nudos.
Calcula los cosenos directores que describen la direccin de un segmento recto definido entre
dos nudos a partir de las coordenadas de los mismos.
Llena los coeficientes de la diagonal inferior de una matriz cuadrada a partir de los coeficientes de la diagonal superior convirtindola en una matriz simtrica.
Calcula cuatro factores de elasticidad para condicin plana de esfuerzos y plana de deformaciones tiles en el clculo de la matriz de rigidez de los elementos de elasticidad plana.
Redondea un escalar real segn el nmero de cifras significativas establecido.

PBDIST
PBCOSD
PBDIAG
PBCOEL
PBREDO
PBDINU
PBPGAU

rutina
GRAFDE
GRAFIL
GRAGEO
GRAMAT

GRAFIF

GRAFIM

GRAFIE
GRATDE
GRATFI

GRATFE

Calcula la distancia entre un nudo y un segmento recto definido por dos nudos.
Construye una tabla que contiene las constantes de ponderacin en el mtodo de integracin
numrica de la cuadratura de Gauss.
Tabla 2.19. Instrucciones internas de uso comn, indicadas en el mdulo MdPB
objetivo
Crea la matriz de parmetros grficos con los valores por defecto de cada uno de los coeficientes.
Crea un archivo que contiene los parmetros grficos almacenados en un vector existente.
Dibuja la geometra de la malla de elementos finitos a partir de la matriz de coordenadas de
los nudos y la matriz de conectividades.
Dibuja la malla de elementos finitos y representa el valor de una cantidad entera definida en
cada elemento (como por ejemplo el tipo de material), con un color especificado.
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el vector de valores nodales, la cual es interpolada en el interior de cada elemento mediante sus
funciones de forma.
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el vector de valores nodales, la cual es interpolada en el interior de los elementos finitos del mismo
material.
Dibuja los resultados elementales de una cantidad o funcin de aproximacin definida por una
matriz de valores en el interior de cada elemento.
Dibuja la malla de elementos finitos deformada de acuerdo con el vector de desplazamientos
en los nudos para un problema de elasticidad bidimensional durante varios pasos de carga.
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el vector de valores en los nudos durante varios pasos de carga (o de pseudo-tiempo en general).
Dibuja los resultados elementales de una cantidad o funcin de aproximacin definida por el
vector de valores en los elementos durante varios pasos de carga (o de pseudo-tiempo en general).
Tabla 2.20. Instrucciones grficas indicadas en el mdulo MdGR

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 Excel permite visualizar y modificar las rutinas contenidas en los mdulos. Para activar el VBE en Excel 2000 o 2003 seleccione el men: Herramientas
Macro
Editor de Visual Basic. En cambio para activar el VBE en Excel 2007,
seleccione la ficha Programador de la cinta de opciones y haga clic en el icono de
Visual Basic. Si la ficha Programador no est disponible en la cinta de opciones,
haga clic en el botn de Office, haga clic en el botn Opciones de Excel, seleccione
la pestaa Ms frecuentes, seleccione la caja de verificacin Mostrar ficha del
Programador en la cinta de opciones y haga clic en le botn Aceptar.

2.3. Capacidad del programa PEFiCA


El programa PEFiCA requiere para su funcionamiento un sistema operativo Microsoft Windows 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 rigidez del sistema. En general las matrices son arreglos de dos ndices enteros tipo Integer, 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 aproximadamente.
La Tabla 2.21 muestra los valores mximos para algunos problemas tpicos resueltos
con el mtodo de los elementos finitos.
Mximo de
nudos
32,762

Mximo de
elementos
32,762

32,762

32,762

16,381

32,762

16,381

32,762

Anlisis estructural de prticos bidimensionales.

10,920

32,762

Anlisis estructural de armaduras tridimensionales.

10,920

32,762

5,460

32,762

10,920

32,762

Tipo de problema
Problema de campo unidimensional.
Problema de campo bidimensional: torsin pura en secciones
transversales, flujo potencial, infiltracin del agua en suelos,
transferencia de calor.
Anlisis mecnico bidimensional de slidos: estado plano de
esfuerzos y estado plano de deformaciones.
Anlisis estructural de armaduras bidimensionales.

Anlisis estructural de prticos tridimensionales.


Anlisis estructural de placas planas delgadas.

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 columnas de las hojas de clculo propio de la versin de Microsoft Excel que se est utilizando.
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

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 programa PEFiCA, para sistema operativo Windows XP y Microsoft Office Excel 2000 o 2003.

Seleccione el men Inicio


Panel 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 programa PEFiCAgraf.exe y otros programas de ingeniera utilizan el punto como separador 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 macros no seguras provenientes de otros archivos.

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

Abra el archivo PEFiCA.xls desde Microsoft Excel, 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 Herramientas


Macro
Editor de Visual Basic y despus seleccione Ver
Explorador de proyectos. Como lo indica la Figura 2.1, a la izquierda se presenta la ventana ProyectoVBAProyect 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 Inicio


Panel de control, haga doble clic sobre el icono de Opciones regionales y de idioma, en la pestaa de Formatos haga clic en el botn Personalice este formato, en la pestaa Nmero modifique el smbolo decimal escribiendo 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 como separador decimal.

Abra Microsoft Office Excel, haga clic en el botn de Office en el extremo superior
izquierdo de la ventana, haga clic en el botn Opciones de Excel, seleccione la pestaa Centro de confianza, haga clic en el botn Configuracin del centro de confianza, seleccione la pestaa Configuracin de macros, haga clic en las cajas de verificacin Deshabilitar todas las macros con notificacin y Confiar en el acceso al modelo de objetos de proyectos de VBA, finalmente haga clic en el botn Aceptar de la
ventana actual, y haga clic en el botn Aceptar de la ventana Centro de confianza.
Esto le permitir decidir si ejecuta o no las macros contenidas en un archivo de Excel;
en particular, podr ejecutar las macros de PEFiCA.xls e impedir la ejecucin de macros no seguras provenientes de otros archivos.

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

Abra el archivo PEFiCA.xls desde Microsoft Excel 2007, aparecer en la barra de tareas el mensaje Advertencia de seguridad las macros se han deshabilitado y el botn Opciones, haga clic sobre este botn, seleccione Habilitar este contenido y haga
clic en el botn Aceptar. De esta forma el archivo PEFiCA.xls dispondr de las rutinas que conforman el programa.

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 Excel, 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 cdigo de las rutinas de cada mdulo.

Despus de la instalacin, se puede ejecutar el programa desde el Editor de Visual Basic, el cual es comn para Excel 2003 y 2007. Los siguientes pasos conducen a la ejecucin de la rutina principal de clculo.

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 Ejecutar
Ejecutar Sub/UserForm. La compilacin y la depuracin 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 PEFiCA() 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 Applications, 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 tiempo 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 mdulo. 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 depuracin en el cdigo o comandos escritos directamente en la ventana. Se activa seleccionando el men Ver
Ventana inmediato. Puede utilizarse para visualizar la
evolucin del proceso de clculo mediante mensajes de texto.

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 Ver
Ventana 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 activa seleccionando el men Ver
Ventana propiedades. En extremo inferior izquierdo de la Figura 2.1.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

25

PEFiCA Programa de elementos finitos a cdigo abierto

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 funciones, ubicadas en la barra de herramientas de depuracin (Figura 2.3).

Interrumpir
ejecucin

Modo de diseo

Ejecutar rutina

Paso a paso por


procedimientos

Alternar punto
de interrupcin

Ventana de
locales

Paso a paso por


instrucciones

Reestablecer
proyecto

Ventana de
inspeccin
Pila de
llamadas

Ventana de
inmediato

Paso a paso
para salir

Inspeccin
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
Alternar punto de interrupcin u oprimiendo las
seleccionando el men Depuracin
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 instrucciones de la rutina actual. Permite correr una rutina completa ejecutando instruccin por instruccin. Si la instruccin es un llamado a otra subrutina entra a ella para
ejecutar su primera instruccin. Se activa seleccionando el men Depuracin
Paso a
paso por instrucciones u oprimiendo la tecla F8. La Figura 2.1 muestra en color
amarrillo la ejecucin de una instruccin.

Ejecutar paso a paso por procedimientos: ejecuta de forma secuencial una de las instrucciones de la rutina actual. A diferencia del procedimiento anterior, cuando la instruccin es un llamado a otra subrutina sin salirse de la rutina principal ejecuta todas
las instrucciones de la subrutina. Permite correr la rutina principal completa ejecutando instruccin por instruccin sin entrar a las subrutinas llamadas. Para comenzar
el proceso se selecciona el men Depuracin
Paso a paso por instrucciones o se
oprime la tecla F8, en adelante se ejecuta cada instruccin seleccionando el men Depuracin
Paso a paso por procedimientos u oprimiendo simultneamente las teclas
Mayus+F8.

Pila de llamadas: muestra en un cuadro de dilogo la lista de las rutinas que han llamado a una instruccin activa en tiempo de ejecucin. Por ejemplo, cuando se produce un error de compilacin, como lo indica la Figura 2.4, aparece en color amarillo
la lnea del cdigo dentro de la subrutina generadora del error EDIMER (paso 1); para
conocer las rutinas que llamaron a la subrutina EDIMER se hace clic en el icono de pila
de llamadas (paso 2), se selecciona del cuadro de dialogo la rutina principal PEFiCA,
y se hace clic en Mostrar (paso 3), finalmente, en la rutina PEFiCA aparece un triangulo verde a la izquierda de la lnea de cdigo que llam a la subrutina generadora del
error (paso 4).

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

27

PEFiCA Programa de elementos finitos a cdigo abierto




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 designadas para tal fin, describiendo la geometra de la malla de elementos finitos, las condiciones de borde, los parmetros mecnicos de los materiales, las acciones externas y
las dems caractersticas propias del problema, como lo ilustra la Figura 2.6(1).

Etapa de construccin del proceso: Escribir en la rutina principal PEFiCA() las lneas
de cdigo del anlisis con elementos finitos (Figura 2.5), apoyndose en las instrucciones preexistentes en el programa y las instrucciones propias del lenguaje de programacin, como lo ilustra la Figura 2.6(2). En esta etapa el usuario construye por si
mismo el proceso de clculo apropindose del conocimiento en el tema.

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 cdigo que presentan los resultados mediante matrices escritas en la hoja de salida habitualmente denominada TB_OUT (Figura 2.6(3)) y grficas creadas en ventanas nuevas
(Figura 2.6(4)).

'opciones generales
Option Explicit
'forzar la declaracin de todas las variables
Option Base 1
'declarar el lmite inferior predeterminado para subndices
'de matriz igual a 1
'--------------------------------------------------------------Public Sub PEFiCA()
'escriba aqu el procedimiento principal de clculo
End Sub

Figura 2.5. Rutina principal de clculo PEFiCA() donde el usuario escribir el procedimiento de
clculo

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

Observacin 2.4. Las dos primeras lneas del mdulo Md mostradas en la Figura
2.5, se utilizan para forzar declaraciones explcitas de todas las variables en dicho
mdulo y para establecer el lmite inferior del ndice de toda matriz como 1. En
consecuencia todas las variables utilizadas deben ser declaradas y el primer trmino de una matriz cualquiera A debe ser el A1,1 .

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

29

Captulo 3
Tipos de datos, formatos y matrices
En este captulo se describen los tipos de datos y los formatos de presentacin numrica,
como tambin las matrices especiales utilizadas por las instrucciones del programa.

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 precisin 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
datos

Descripcin

Tamao
almacenado

Intervalo

String

cadena de
caracteres

10 bytes +
longitud de
la cadena

Integer

entero

2 bytes

-32768 a 32767

8 bytes

para valores negativos:


-1.79769313486E+306 a -4.94065645841E-324
para valores positivos:
4.94065645841E-324 a 1.79769313486E308

Double

real de
doble precisin

desde 0 a 2E+09 de caracteres

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 ordenados 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 variable 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 matriz real de doble precisin MX() de 2 filas por 2 columnas, el trmino MX(1,1) puede contener 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
M(1, 2) = 0.9594
M(2, 1) = 0.1249
M(2, 2) = 0.8963

0.5758 0.9594
M=

0.1249 0.8963 2 2
Figura 3.1. Ejemplo de definicin de la matriz M.

Una matriz con un tamao especificado es una matriz de tamao fijo; por ejemplo, en la
primera lnea de cdigo de la Figura 3.2 se declara a una matriz de tamao fijo con 2 filas y
4 columnas como real de doble precisin (double). El primer argumento corresponde al
nmero de filas y el segundo al nmero de columnas.
Dim M(2, 4) As Double
:
:
Dim I() as Integer

' matriz de tamao fijo

' 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 ejecutando es una matriz dinmica. Al declarar la matriz se abre y cierra parntesis omitiendo
los indicadores de tamao, como se presenta en la ltima lnea de cdigo en la Figura 3.2.
Cuando se necesario establecer una dimensin especfica de la matriz se utiliza la instruccin ReDim, como se ilustra la Figura 3.1. Este tipo de matrices son las ms utilizadas
en el programa.
El tamao almacenado en memoria depende de las dimensiones de la matriz y del tipo
de datos. Cada elemento o trmino de la matriz tiene el tamao de una variable escalar del
mismo tipo, por lo tanto, una matriz de nf filas y nc columnas ocupar nf por nc por el tamao segn el tipo (Tabla 3.1).

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

33

PEFiCA Programa de elementos finitos a cdigo abierto

Tanto el sistema operativo, como la cantidad de memoria disponible determinan el tamao mximo de una matriz. Es ms lento utilizar una matriz que sobrepasa la cantidad de
memoria RAM disponible en el sistema ya que los datos tienen que ser ledos y escritos del
disco.

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 designa 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 numrica 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 mediante 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 caractersticas:

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

Formato numrico

Tipo de
datos
Entera
Real

positivos

cero

negativos

010

000

-010

1.52340E+01

0.0000E+00

-1.52340E+01

Tabla 3.2. Ejemplos de los formatos de salida

Tamao de matriz

Rtulos indicadores de
columnas de la matriz

Ttulo de matriz

Rtulos indicadores
de filas de la matriz
Coeficiente
entero cero

Coeficiente
entero positivo

Matriz de trminos enteros

Figura 3.4. Formato de salida de matrices con trminos enteros

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

35

PEFiCA Programa de elementos finitos a cdigo abierto

Tamao de matriz

Rtulos indicadores de
columnas de la matriz

Ttulo de matriz
Coeficiente
real positivo

Rtulos indicadores
de filas de la matriz

Coeficiente
real cero

Coeficiente
real negativo
Matriz de trminos reales

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 sobrescriban 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 salida. Por defecto el programa tiene la hoja TB_OUT.

La posicin de las matrices en la hoja de salida se define con las variables FILA y
COLM, las cuales solo deben ser utilizadas para tal fin.

Se limpia la hoja de salida con la instruccin EDLIMH, por ejemplo la lnea de cdigo
en Visual Basic for Applications EDLIMH "TB_OUT" borra el contenido de la hoja de
clculo TB_OUT.

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. Algunos parmetros de este tipo de instrucciones, como el nombre de la hoja de clculo
debe ser el mismo nombre asignado a la hoja de salida, (por ejemplo "TB_OUT").
Asimismo, la fila POSF y la columna POSC donde se escriben los resultados deben corresponder a las variables FILA y COLM.

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 corresponde 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 entre 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 matrices XYZ() y ELE() en la hoja TB_OUT. Despus de ejecutada la rutina PEFiCA, el contenido
del la hoja TB_OUT es el presentado en la Figura 3.7.
Public Sub PEFiCA()
'declaracin de variables escalares
'declaracin de variables que definen la posicin en la hoja de salida
Dim FILA As Integer, COLM As Integer
:
:
'declaracin de matrices
Dim ELE() As Integer, GRA() As Integer
Dim XYZ() As Double
:
:
'parmetros predefinidos
'posicin inicial en la hoja de salida
FILA = 2
COLM = 1
'limpiar hoja de salida
EDLIMH "TB_OUT" 'limpiar la hoja de salida
:
:
'escribir la matriz real XYZ() en la hoja de salida
EDIMPR "TB_OUT", "XYZ()", FILA, COLM, XYZ()
:
:
'escribir la matriz entera ELE() en la hoja de salida
EDIMPI "TB_OUT", "ELE()", FILA, COLM, ELE()
:
:
End Sub
Figura 3.6. Parte del Cdigo en VBA de la rutina principal PEFiCA, donde se indican las

l-

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 identificar 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 elementos finitos. En la Figura 3.8 se muestra una malla de 9 nudos, 4 elementos finitos rectangulares 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)
(03)

(09)
(08)

06

03

04

(02)
(01)

(07)
(06)

05

01

(12)
(11)

# grado de
libertad

04

vk
um

08

(16)=0
(05)

vm

magnitud de un
g.l. conocido

(11)=2.4
(10)

03

01
(17)=0
(18)=0

notacin

09

02

02

(14)
(13)

07

(15)=0
(10)

k
(e)

vi

vj

ui

# nudo

uj

07

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 conocidos del 15 al 18, de tal manera que el vector de valores nodales se puede dividir en
los subvectores y que contienen los grados de libertad desconocidos y conocidos
respectivamente.
= [

T
T

= [1 2 K 14 ]
= [15 16

(3.1)
T

17 18 ] = [0 0 0 0]

Como parte de la programacin del mtodo son esenciales las matrices o tablas que describan la geometra y las condiciones de borde de la malla de elementos finitos. A continuacin se indican dichas matrices:

Matriz o tabla de coordenadas de los nudos. Matriz real que contiene en cada fila la
coordenada de un nudo de la malla con respecto al origen de un sistema coordenado
cartesiano general. En la primera columna se ubica el valor de la coordenada x, en la
segunda la coordenada y, y en la tercera, si es el caso, la coordenada z. El nmero de
filas de esta matriz es igual al total de nudos de la malla y el nmero de columnas corresponde a la dimensin del problema. La Figura 3.9 indica la matriz de coordenadas de los 9 nudos del ejemplo bidimensional ilustrado en la Figura 3.8.

nudo

coordenada
en x
en y

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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

39

PEFiCA Programa de elementos finitos a cdigo abierto

Matriz de elementos o tabla de conectividades. Matriz entera que contiene los cdigos identificadores de los nudos asociados a cada elemento finito. Una fila de la matriz presenta la informacin de un elemento finito y cada columna contiene el identificador de un nudo, por lo tanto, el nmero de filas es igual a la cantidad de elementos
de la malla y el nmero de columnas corresponde con la cantidad de nudos que tenga
un elemento finito. El orden establecido para identificar los nudos de un elemento
finito corresponder con el orden de las columnas de la matriz de elementos, por
ejemplo, si los nudos de los elementos rectangulares bilineales de una malla estn
identificados en su orden como i, j, k y m (Figura 3.8), la primera columna de la matriz de elementos contendr el cdigo que identifica al nudo i, la segunda al nudo j, la
tercera al nudo k y la cuarta al nudo m como se indica en la Figura 3.10. Cuando la
malla tiene elementos finitos con diferente cantidad de nudos, el nmero de columnas
de la tabla de conectividades estar definido por el tipo de elemento finito con mayor
nmero de nudos. En este caso, se llenan con cero los coeficientes de la(s) ltima(s)
columna(s) de la tabla de conectividades que corresponde(n) a el(los) nudo(s) inexistente(s) de los elementos finitos con menor cantidad de nudos.

elem

Identificador del nudo del elemento


nudo k
nudo m
nudo i
nudo j

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 Dirichlet 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 cambio, si el coeficiente es igual a cero (000), establece que el grado de libertad es desconocido. Para el ejemplo presentado en esta seccin, la Figura 3.11 muestra la tabla
indicadora de las condiciones de borde.
nudo

en x

en y

g.l. conocido = 001


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 identificador de los valores nodales o grados de libertad de cada uno de los nudos de la malla. Cada fila contiene la informacin de un nudo y cada columna presenta el identificador de un grado de libertad o valor nodal, por lo tanto, el nmero de filas de la
matriz es igual a la cantidad de nudos de la malla y el nmero de columnas corresponde a la cantidad de valores nodales o de grados de libertad tenga un nudo. En
problemas donde hay dos o ms grados de libertad por nudo es necesario establecer el
orden en el cual se presentarn en la matriz de grados de libertad, por ejemplo, en
problemas de elasticidad bidimensional en un plano xy, la primera columna contiene
el identificador del desplazamiento nodal en direccin x, y la segunda columna almacena el identificador del desplazamiento nodal en direccin y. La Figura 3.12 indica
la matriz de grados de libertad por nudo para el ejemplo de esta seccin. Un coeficiente igual a 0 est indicando que no existe o que no se quiere considerar ese grado
de libertad. Esta matriz se puede obtener a partir de la tabla de condiciones de borde,
utilizando la instruccin NGLNUD.

nudo

Identificador del g.l.


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 elemento finito y en cada columna el identificador de un grado de libertad, como lo
muestra la Figura 3.13 para el ejemplo de esta seccin. Esta tabla es indispensable en
el proceso de ensamblaje de la matriz de rigidez y del vector de trminos independientes. A partir de la matriz de elementos y de la matriz de grados de libertad por
nudo, la instruccin NGLELE del programa puede generar la matriz de incidencias.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

41

PEFiCA Programa de elementos finitos a cdigo abierto

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 comunes:

Matriz o tabla de fuerzas organizadas por nudo. Tabla que contiene en cada fila la
magnitud de las componentes de fuerzas aplicadas sobre un nudo especfico, por tanto, su tamao ser el nmero nudos por el nmero de grados de libertad por nudo.
Un coeficiente igual a cero indica que la componente de la fuerza nodal es cero o que
es desconocida (fuerza reactiva en un apoyo), dicha diferencia estar definida por la
matriz indicadora de condiciones de borde. En el ejemplo de elasticidad plana presentado en la Figura 3.14, el coeficiente de la fila 3 y columna 2 de la matriz indica la
magnitud de la fuerza en direccin y aplicada en el nudo 3. Esta forma de organizar
las fuerzas en los nudos permite introducir la informacin cmodamente y presentar
de manera agradable de los resultados.

Vector o tabla de fuerzas organizadas por grados de libertad. Vector que contiene la
magnitud de las fuerzas nodales organizadas de acuerdo con la numeracin previamente asignada a los grados de libertad. Para el ejemplo anterior, la Figura 3.15
muestra que el coeficiente de la fila 10 de la matriz corresponde a la magnitud de la
fuerza nodal en el grado de libertad nmero 10. Esta forma de organizar las fuerzas
nodales es indispensable en el proceso de clculo, dado que el sistema de ecuaciones
del problema est planteado en trminos de los valores nodales o grados de libertad.
En el programa se puede cambiar el formato de la matriz de fuerzas con las instrucciones ORFUGL y ORGLFU descritas en el Captulo 16.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

42

Captulo 3. Tipos de datos, formatos y matrices

nudo

fuerza nodal
en x
en y

FY

FY=4.8
FX=1.5

FX

03

02
FY

09

FY

FX

04

01

notacin
magnitud de
la fuerza

componente
de la fuerza

Matriz o tabla de fuerzas nodales


ordenada de acuerdo con la
numeracin de los nudos

FX

12

11
FY

FY
FX

FY
FX

FX

08

FY=1.2
FX=-1.6

10

07
FY

FY
FX

FY=2.4
FX=2.3

FY
FX

FX

06

05

malla de
elementos
finitos

FY=2.4
FX=2.3

07

# nudo

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

Matriz o tabla de desplazamientos organizados por nudo. Tabla que contiene en cada fila la magnitud de las componentes de desplazamiento en un nudo especfico.
Esta matriz tiene las mismas caractersticas de la tabla de fuerzas organizadas por
nudo (Figura 3.14).

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 caractersticas 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 distribuidas en el volumen del elemento. Como se muestra en la Figura 3.16, la primera
columna contiene el nmero identificador del elemento, la segunda y la tercera contienen las componentes en las direcciones x y y respectivamente, de la fuerza por unidad de volumen o fuerza msica. La cuarta y quinta columna indican la magnitud de
la presin en direccin x y y aplicada sobre la cara del elemento identificada en la sexta columna. Las caras o lados de un elemento finito se numera de forma secuencial a
partir del nudo inicial y en sentido antihorario, como se muestra en la Figura 11.1 para
un elemento triangular lineal y la Figura 11.3 para un elemento rectangular bilineal.
Los datos contenidos en esta tabla proporcionan los argumentos necesarios para calcular el vector de fuerzas equivalentes a la accin de una fuerza msica mediante las
instrucciones FTRIEC y FRECEC, o para obtener el vector de fuerzas equivalentes a la
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

43

PEFiCA Programa de elementos finitos a cdigo abierto

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

fuerza
nodal
Vector de fuerzas
nodales ordenadas
segn la numeracin
de los grados de
libertad

notacin
magnitud de
la fuerza

# grado de
libertad

F(11)=2.4
F(10)=2.3

07
F(01)
F(00)

02
F(13)
F(12)

08
F(00)
F(00)

01

# nudo

F(11)=2.4
F(10)=2.3

F(03)=4.8
F(02)=1.5

03

10

07
F(19)
F(18)

F(15)
F(14)

09

F(07)
F(06)

04

F(21)
F(20)

12

11

F(05)
F(04)

F(17)=1.2
F(16)=-1.6

F(09)
F(08)

06

05

malla de
elementos finitos

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


elemento

fuerza msica
en x
en y

presin en un lado
en x
en y
lado

nudo 10
lado 3

elem. 20
nudo 87
(inicial)

lado 2
lado 1

nudo 1

p x = 10 k / pul 2
Figura 3.16. Tabla de fuerzas distribuidas en los elementos.

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 especfica. En otras palabras, crea la matriz entera M para la cual cada coeficiente corresponde a
una celda de la hoja de clculo.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
EDLECI HOJA, POSF, POSC, MX(), NF, NC

Argumento

POSF

Integer (entero)

POSC

Integer (entero)

MX()

Integer (entero)

Descripcin
Hoja de clculo que contiene las celdas que conformarn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
la celda correspondiente al coeficiente m11 de la matriz creada.
Nmero de la columna en la hoja de clculo donde se
ubica la celda correspondiente al coeficiente m11 de la
matriz creada.
Matriz creada M.

NF

Integer (entero)

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.

HOJA

Tipo de variable
String (cadena de
caracteres)

46

Captulo 4. Instrucciones de edicin de matrices

La designacin alfabtica de las columnas en la hoja de clculo se transforma en numrica para especificar la posicin de las celdas en el programa, como lo indica el argumento
POSC en la Tabla 4.1.
Ejemplo 4.1 Construir una matriz MI()de 2 filas por 4 columnas cuyos coeficientes estn en la hoja de clculo Hoja1; especficamente, el trmino (1,1) corresponde
a la celda A14 como lo indica la Figura 4.1.
columna 1 columna 2

columna 3

POSF = 14
POSC = 1

NC = 4

NF = 2

fila 13
fila 14
fila 15

HOJA = Hoja1

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

(2x4)
C1
000
004

C2
001
005

C3
002
006

C4
003
007

4.2. EDLECR
Construye una matriz real a partir de un bloque de celdas de una hoja de clculo especfica.
En otras palabras, crea la matriz real M para la cual cada coeficiente corresponde a una
celda de la hoja de clculo.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

47

PEFiCA Programa de elementos finitos a cdigo abierto

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

Argumento

Tipo de variable
String (cadena de
caracteres)

POSF

Integer (entero)

POSC

Integer (entero)

MX()

Double (real)

Descripcin
Hoja de clculo que contiene las celdas que conformarn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
la celda correspondiente al coeficiente m11 de la matriz creada.
Nmero de la columna en la hoja de clculo donde se
ubica la celda correspondiente al coeficiente m11 de la
matriz creada.
Matriz creada M.

NF

Integer (entero)

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.

HOJA

Como se puede observar, que esta instruccin tiene un objetivo similar al de la instruccin EDLECI con la nica diferencia en el tipo de variable de la matriz creada.
Ejemplo 4.2 Construir una matriz XY()de 6 filas por 2 columnas cuyos coeficientes estn en la hoja de clculo TB_XYZ; especficamente, el trmino (1,1) corresponde a la celda B5 como lo indica la Figura 4.2.
columna 2
columna 1

columna 3

POSF = 5
POSC = 2

NC = 2

fila 5
fila 6
fila 7

NF = 6

HOJA = TB_XYZ

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

(6x2)
C1
4.0000E+00

C2
0.0000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

48

Captulo 4. Instrucciones de edicin de matrices


F2
F3
F4
F5
F6

5.0000E-01
3.5000E+00
3.0000E+00
2.5000E+00
2.0000E+00

0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

4.3. EDLECE
Captura el valor de una celda especfica de una hoja de clculo y lo guarda en una variable
escalar.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
EDLECE HOJA, POSF, POSC, ESC

Argumento
HOJA

Tipo de variable
String (cadena de
caracteres)

POSF

Integer (entero)

POSC

Integer (entero)

ESC

Descripcin
Hoja de clculo que contiene la celda que se desea
capturar.
Nmero de la fila en la hoja de clculo que identifica
a la celda.
Nmero de la columna en la hoja de clculo que identifica a la celda.

Integer (entero) o
Variable escalar donde se guarda el valor de la celda.
Double (real)
Tabla 4.3. Sintaxis de la instruccin EDLECE.

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

49

PEFiCA Programa de elementos finitos a cdigo abierto

4.4. EDTABI
Construye una matriz entera a partir de un bloque de celdas de una hoja de clculo especfica. A diferencia de la instruccin EDLECI, en esta subrutina un ndice establece en que fila
de la matriz creada se guardarn los valores de las celdas. Los nmeros de filas no especificados por los ndices generan coeficientes iguales a cero en la matriz.
Esta instruccin permite construir una matriz indicando solamente las filas donde sus
coeficientes diferentes de cero. La tabla de condiciones de borde y de fuerzas en los nudos
son ejemplos de este tipo de matrices.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
EDTABI HOJA, POSF, POSC, MX(), NF, NC

Argumento

POSF

Integer (entero)

POSC

Integer (entero)

MX()

Integer (entero)

Descripcin
Hoja de clculo que contiene las celdas que conformarn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
la celda correspondiente al coeficiente mi1 de la matriz
creada.
Nmero de la columna en la hoja de clculo donde se
ubica la celda correspondiente al coeficiente mi1 de la
matriz creada. La columna POSC-1 debe contener el
ndice i correspondiente.
Matriz creada M.

NF

Integer (entero)

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.

HOJA

Tipo de variable
String (cadena de
caracteres)

Ejemplo 4.4 Construir una matriz MRE()de NNUD=10 filas por NGLN=2 columnas
cuyos coeficientes diferentes de cero estn ubicados en las filas 1 y 5, como se indica en la hoja de clculo TB_RES de la siguiente figura.

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

POSF = 5

coeficientes
de la matriz

fila 5 de
la matriz
HOJA = TB_RES

Figura 4.4. Parmetros de la instruccin EDTABI.

m51=000
m52=001

La lnea de comando utilizada es:


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

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


MRE()
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10

(10x2)
C1
001
000
000
000
000
000
000
000
000
000

C2
001
000
000
000
001
000
000
000
000
000

4.5. EDTABR
Construye una matriz real a partir de un bloque de celdas de una hoja de clculo especfica.
A diferencia de la instruccin EDLECR, en esta subrutina un ndice establece en que fila de la
matriz creada se guardarn los valores de las celdas. Los nmeros de filas no especificados por los ndices generan coeficientes iguales a cero en la matriz.
Esta instruccin permite construir una matriz indicando solamente las filas donde sus
coeficientes diferentes de cero. La tabla de condiciones de borde y de fuerzas en los nudos
son ejemplos de este tipo de matrices.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

51

PEFiCA Programa de elementos finitos a cdigo abierto

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

Argumento

POSF

Integer (entero)

POSC

Integer (entero)

MX()

Double (real)

Descripcin
Hoja de clculo que contiene las celdas que conformarn la matriz M.
Nmero de la fila en la hoja de clculo donde se ubica
la celda correspondiente al coeficiente mi1 de la matriz
creada.
Nmero de la columna en la hoja de clculo donde se
ubica la celda correspondiente al coeficiente mi1 de la
matriz creada. La columna POSC-1 debe contener el
ndice i correspondiente.
Matriz creada M.

NF

Integer (entero)

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.

HOJA

Tipo de variable
String (cadena de
caracteres)

Ejemplo 4.5 Construir una matriz MFN()de NNUD=12 filas por NGLN=2 columnas
cuyos coeficientes diferentes de cero estn ubicados en las filas 3, 7 y 10, como se
indica en la hoja de clculo TB_FUN de la siguiente figura.
POSC-1
nmero de la fila de los
coeficientes de la matriz

POSC = 2
coeficientes
de la matriz

fila 3 de
la matriz

m31=1.500
m32=4.800

POSF = 5

coeficientes
de la matriz

fila 7 de
la matriz

m71=2.300
m72=2.400

fila 10 de
la matriz

coeficientes
de la matriz

HOJA = TB_FUN

Figura 4.5. Parmetros de la instruccin EDTABR.

m10,1=-1.600
m10,2=1.200

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()
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12

(12x2)

C1
0.0000E+00
0.0000E+00
1.5000E+00
0.0000E+00
0.0000E+00
0.0000E+00
2.3000E+00
0.0000E+00
0.0000E+00
-1.6000E+00
0.0000E+00
0.0000E+00

C2
0.0000E+00
0.0000E+00
4.8000E+00
0.0000E+00
0.0000E+00
0.0000E+00
2.4000E+00
0.0000E+00
0.0000E+00
1.2000E+00
0.0000E+00
0.0000E+00

4.6. EDIMEI
Escribe una variable escalar entera en una hoja de clculo en el formato de salida para variables enteras indicado en el Captulo 3. La sintaxis de la instruccin y la descripcin de
sus respectivos argumentos se presentan a continuacin.
EDIMEI HOJA, MXLB, POSF, POSC, ESC

Argumento
HOJA
MXLB

POSF

POSC
ESC

Tipo de variable
String (cadena de
caracteres)
String (cadena de
caracteres)

Descripcin
Hoja de clculo donde se escribir la variable ESC.

Rotulo relacionado con la variable que ser escrito en


la fila superior a la celda que contiene la variable.
Como variable de entrada corresponde al nmero
de fila de la celda donde se desea ubicar la variaInteger (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
Integer (entero)
la variable 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

53

PEFiCA Programa de elementos finitos a cdigo abierto

POSC = 2
MXLB = BAND

tamao de la matriz
rotulo y tamao de matriz
ESC
lnea en blanco

POSF-1
POSF
POSF+1
POSF+3

HOJA = TB_OUT

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 variables reales indicado en el Captulo 3. La sintaxis de la instruccin y la descripcin de sus
respectivos argumentos se presentan a continuacin.
EDIMER HOJA, MXLB, POSF, POSC, ESC

Argumento
HOJA
MXLB

POSF

POSC
ESC

Tipo de variable
String (cadena de
caracteres)
String (cadena de
caracteres)

Descripcin
Hoja de clculo donde se escribir la variable ESC.

Rotulo relacionado con la variable que ser escrito en


la fila superior a la celda que contiene la variable.
Como variable de entrada corresponde al nmero
de fila de la celda donde se desea ubicar la variaInteger (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
Integer (entero)
la variable 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
POSF+1

ESC
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
HOJA
MXLB

Tipo de variable
String (cadena de
caracteres)
String (cadena de
caracteres)

POSF

Integer (entero)

POSC

Integer (entero)

MX()

Integer (entero)

TP

Optional Integer
(argumento opcional
tipo entero)

Descripcin
Hoja de clculo donde se escribir la variable ESC.
Rotulo relacionado con la variable que ser escrito en
la fila superior a la celda que contiene la variable.
Como variable de entrada corresponde al nmero
de fila de la celda donde se desea ubicar el trmino m1,1 de la matriz M. Este parmetro debe ser
mayor que 2.
Como variable de salida corresponde al parmetro
de entrada POSF ms el nmero de filas de la matriz M y ms 3.
Nmero de columna de la celda donde se desea ubicar
la variable ESC.
Matriz entera que se desea escribir M.

Si TP=0 presenta todas las columnas de una matriz


en el ancho de la hoja de clculo (por defecto).
Si TP=1 establece una presentacin de 6 columnas
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 clculo TB_OUT, mediante la instruccin:
EDIMPI "TB_OUT", "ELE()", FILA, COLM, ELE()
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

55

PEFiCA Programa de elementos finitos a cdigo abierto

POSC = 2

rotulo de la matriz
MXLB = ELE()

donde

FILA=977 y COLM=2.

tamao de la matriz

El

rotulo de columnas

POSF-1
POSF
POSF+1

rotulo de filas
POSF+NF+1
POSF+NF+3
resultado se
presenta en la
guiente figura:

si-

HOJA = TB_OUT

trminos de la matriz

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
HOJA
MXLB

Tipo de variable
String (cadena de
caracteres)
String (cadena de
caracteres)

POSF

Integer (entero)

POSC

Integer (entero)

MX()

Double(real)

TP

Optional Integer
(argumento opcional
tipo entero)

Descripcin
Hoja de clculo donde se escribir la variable ESC.
Rotulo relacionado con la variable que ser escrito en la fila
superior a la celda que contiene la variable.
Como variable de entrada corresponde al nmero de fila de
la celda donde se desea ubicar el trmino m1,1 de la matriz
M. Este parmetro debe ser mayor que 2.
Como variable de salida corresponde al parmetro de entrada POSF ms el nmero de filas de la matriz M y ms 3.
Nmero de columna de la celda donde se desea ubicar la variable ESC.
Matriz entera que se desea escribir.

Si TP=0 presenta todas las columnas de una matriz en el


ancho de la hoja de clculo (por defecto).
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 clculo 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
MXLB = XYZ()

POSC = 2
tamao de la matriz

POSF-1
POSF
POSF+1

rotulo de
columnas

rotulo de filas
trminos de
la matriz

POSF+NF+1
POSF+NF+3

HOJA = TB_OUT

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
HOJA

Tipo de variable
Descripcin
String (cadena de
Nombre de la hoja de clculo.
caracteres)
Tabla 4.10. Sintaxis de la instruccin EDLIMH.

Ejemplo 4.10 La siguiente lnea de cdigo borra el contenido de todas las celdas
de la hoja de clculo TB_OUT.
EDLIMH "TB_OUT"

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 nmero real c como se indica en la siguiente ecuacin:
1 1 L
1
M = c
M

1 1 L

1
1
M

1 n n
f
c

(5.1)

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.

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

(2x6)
C1
2.5000E+00
2.5000E+00

C2
2.5000E+00
2.5000E+00

C3
2.5000E+00
2.5000E+00

C4
2.5000E+00
2.5000E+00

C5
2.5000E+00
2.5000E+00

C6
2.5000E+00
2.5000E+00

5.2. MTCONI
Crea una matriz M de nf filas por nc columnas, cuyos coeficientes corresponden a un nmero entero c. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se
presentan a continuacin.
MTCONI MX(), C, NF, NC

Argumento

Tipo de variable

Descripcin

MX()

Integer (entero)

Matriz creada M.

Integer (entero)

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
c
f
c

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

L m p f + n f 1, p c + nc 1
n f nc
L

m p f , p c + n c 1
M

(5.2)

Por lo tanto, la posicin del primer coeficiente de la matriz M que conforma la submatriz s corresponde a la fila pf y la columna pc de la matriz M.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

59

PEFiCA Programa de elementos finitos a cdigo abierto

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

Argumento

Tipo de variable

Descripcin

MX()

Double (real)

Matriz existente M.

MS()

Double (real)

POSF

Integer (entero)

POSC

Integer (entero)

NF

Integer (entero)

Matriz creada S.
Fila de la matriz M que define la posicin del termino
s11 de la submatriz S.
Columna de la matriz M que define la posicin del
termino s11 de la submatriz S.
Nmero de filas de la submatriz S.

NC

Integer (entero)
Nmero de columnas de la submatriz S.
Tabla 5.3. Sintaxis de la instruccin MTSUBM.

Ejemplo 5.2 Extraer una submatriz MS() de 3 filas y 4 columnas desde el coeficiente MX(2,1) de la matriz existente MX() definida como:
MX()
F1
F2
F3
F4
F5
F6

(6x6)
C1
5.2267E+04
2.0000E+04
-1.2267E+04
-4.0000E+03
-2.6133E+04
-2.0000E+04

C2
2.0000E+04
8.0711E+04
4.0000E+03
2.5956E+04
-2.0000E+04
-4.0356E+04

C3
-1.2267E+04
4.0000E+03
5.2267E+04
-2.0000E+04
-1.3867E+04
-4.0000E+03

C4
-4.0000E+03
2.5956E+04
-2.0000E+04
8.0711E+04
4.0000E+03
-6.6311E+04

C5
-2.6133E+04
-2.0000E+04
-1.3867E+04
4.0000E+03
5.2267E+04
2.0000E+04

C6
-2.0000E+04
-4.0356E+04
-4.0000E+03
-6.6311E+04
2.0000E+04
8.0711E+04

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

(3x4)

F1
F2
F3

C1
2.0000E+04
-1.2267E+04
-4.0000E+03

C2
8.0711E+04
4.0000E+03
2.5956E+04

C3
4.0000E+03
5.2267E+04
-2.0000E+04

C4
2.5956E+04
-2.0000E+04
8.0711E+04

5.4. MTADJU
Crea un vector columna x conformado por dos subvectores columna existentes s y t expresados como:
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

60

Captulo 5. Instrucciones de operaciones matriciales bsicas

s11
t11


s= M
, t= M
s
t
n f 1 n f 1
n f n f 1

(5.3)

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

sn 1
s
x= x= f
t11
t
M

t n f
n f 1

(5.4)

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

F1
F2
F3

C1
-4.6505E-01
-7.9349E-03
2.7165E-01

F1
F2
F3

(3x1)
C1
-2.3153E-06
5.4164E-07
3.3956E-06

Escribiendo la lnea de comando:


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

se obtiene el vector MX() presentado a continuacin:

MX()

(6x1)

F1
F2
F3

C1
-4.6505E-01
-7.9349E-03
2.7165E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

61

PEFiCA Programa de elementos finitos a cdigo abierto


F4
F5
F6

-2.3153E-06
5.4164E-07
3.3956E-06

5.5. MTADMR
Crea una matriz real X conformada por dos submatrices reales existentes S y T, adjuntando
T despus de la ltima fila o de la ltima columna de S. Sean S y T matrices de trminos
reales de la forma:
s11 L s1, ncs
t11 L t1, nct

S= M
M , T= M
M
sn ,1 L sn , n
tn ,1 L t n , n
fs
cs
ft
ct
fs
ft

(5.5)

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
M

sn ,1
S
X = X = fs
T
t11
M

tn ft ,1

s1, ncs
M

L sn fs , ncs

L t1, nct
M

L tn ft , nct
L

(5.6)

Caso 2. Si se adjunta la matriz T despus de la ltima columna de la matriz S, se obtiene la matriz X de n fs = n ft filas y ncs + nct columnas de la forma:
s11 L s1, ncs

X = [S T] X = M
M
sn ,1 L sn , n
fs
cs
fs

t11
M
tn ft ,1

t1, nct

M
L t n ft , nct
L

(5.7)

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
fila de S.
gumento opcional tipo
entero)
Si TP=2 Caso 2: adjunta T despus de la ltima
columna de S.
Tabla 5.5. Sintaxis de la instruccin MTADMR.

TP

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

KGL()
F1
F2
F3
F4

(4x4)

C1
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00

MAS()

C3
0.0000E+00
-1.0000E+00
2.0000E+00
-1.0000E+00

C4
0.0000E+00
0.0000E+00
-1.0000E+00
1.0000E+00

C2
0.0000E+00
2.0000E+00
0.0000E+00
0.0000E+00

C3
0.0000E+00
0.0000E+00
8.0000E+00
0.0000E+00

C4
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00

(4x4)

C1
4.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

F1
F2
F3
F4

C2
-1.0000E+00
2.0000E+00
-1.0000E+00
0.0000E+00

Caso 1: escribiendo la lnea de comando:


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

se obtiene la matriz MX() presentada a continuacin:


MX()
F1
F2
F3
F4
F5
F6
F7
F8

(8x4)

C1
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00
4.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C2
-1.0000E+00
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00
2.0000E+00
0.0000E+00
0.0000E+00

C3
0.0000E+00
-1.0000E+00
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00
8.0000E+00
0.0000E+00

C4
0.0000E+00
0.0000E+00
-1.0000E+00
1.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

63

PEFiCA Programa de elementos finitos a cdigo abierto

Caso 2: escribiendo la lnea de comando:


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

se obtiene la matriz MX() presentada a continuacin:

MX()

(4x8)

F1
F2
F3
F4

C1
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00

C2
-1.0000E+00
2.0000E+00
-1.0000E+00
0.0000E+00

F1
F2
F3
F4

C7
0.0000E+00
0.0000E+00
8.0000E+00
0.0000E+00

C8
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00

C3
0.0000E+00
-1.0000E+00
2.0000E+00
-1.0000E+00

C4
0.0000E+00
0.0000E+00
-1.0000E+00
1.0000E+00

C5
4.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C6
0.0000E+00
2.0000E+00
0.0000E+00
0.0000E+00

5.6. MTADMI
Crea una matriz de trminos enteros X conformada por dos submatrices enteras existentes S
y T, adjuntando T despus de la ltima fila o de la ltima columna de S. La descripcin
general de esta rutina se puede estudiar en la instruccin MTADMR.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
MTADMI MX(), MS(), MT(), TP

Argumento

Tipo de variable

Descripcin

MX()

Integer (entero)

Matriz creada X.

MS()

Integer (entero)

Primera submatriz existente S.

MS()

Integer (entero)

TP

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.
gumento opcional tipo
Si TP=2 Caso 2: adjunta T despus de la ltima columna
entero)
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
c

M= M
M
T = MT = M
m
m
L mn f nc
n f 1
n f nc
1n f

mnc 1
M
L mnc n f

nc n f

(5.8)

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)

F1
F2
F3

C1
2.0000E+04
-1.2267E+04
-4.0000E+03

C2
8.0711E+04
4.0000E+03
2.5956E+04

C3
4.0000E+03
5.2267E+04
-2.0000E+04

C4
2.5956E+04
-2.0000E+04
8.0711E+04

su matriz transpuesta se calcula con la siguiente instruccin:


MTTRAN MX(), MT()

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


MT()
F1
F2
F3
F4

(4x3)
C1
2.0000E+04
8.0711E+04
4.0000E+03
2.5956E+04

C2
-1.2267E+04
4.0000E+03
5.2267E+04
-2.0000E+04

C3
-4.0000E+03
2.5956E+04
-2.0000E+04
8.0711E+04

5.8. MTMULT
Multiplica la matriz A por la matriz B obteniendo la matriz C. Se requiere que el nmero
de columnas del pre multiplicador A sea igual al nmero de filas del post multiplicador B.
Esta operacin matricial se define como:
nc

A B = C cij =

air brj

(5.9)

r =1

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

65

PEFiCA Programa de elementos finitos a cdigo abierto

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()
F1
F2
F3

(3x6)
C1
3.4406E+00
0.0000E+00
0.0000E+00

DEL()
F1
F2
F3
F4
F5
F6

C2
0.0000E+00
0.0000E+00
3.4406E+00

C3
-1.3721E+00
0.0000E+00
4.0000E+00

C4
0.0000E+00
4.0000E+00
-1.3721E+00

C5
-2.0685E+00
0.0000E+00
-4.0000E+00

C6
0.0000E+00
-4.0000E+00
-2.0685E+00

(6x1)
C1
3.1481E-04
-6.2890E-04
0.0000E+00
-6.8608E-04
0.0000E+00
-6.3553E-04

la multiplicacin entre estas matrices se obtiene ejecutando la instruccin:


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

donde la matriz EPE() es igual a :


EPE()
F1
F2
F3

(3x1)
C1
1.0831E-03
-2.0220E-04
9.2166E-05

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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

66

Captulo 5. Instrucciones de operaciones matriciales bsicas

nf

A Tnc n f

B nf nc A n f nc = C nc nc

tij =

ari brj

nf

cij =

r =1

tir arj

(5.10)

r =1

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 elemento finito de elasticidad K a partir de las constantes elsticas D y del operador diferencial 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:
(5.12)

K = RT K L R

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()
F1
F2
F3
F4
F5
F6

C1
8.6603E-01
-5.0000E-01
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

KEL()
F1
F2
F3
F4
F5
F6

(6x6)
C2
5.0000E-01
8.6603E-01
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C3
0.0000E+00
0.0000E+00
1.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C4
0.0000E+00
0.0000E+00
0.0000E+00
8.6603E-01
-5.0000E-01
0.0000E+00

C5
0.0000E+00
0.0000E+00
0.0000E+00
5.0000E-01
8.6603E-01
0.0000E+00

C6
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00

C2
0.0000E+00
7.1111E+02
1.0667E+03
0.0000E+00
-7.1111E+02
1.0667E+03

C3
0.0000E+00
1.0667E+03
2.1333E+03
0.0000E+00
-1.0667E+03
1.0667E+03

C4
-6.0000E+04
0.0000E+00
0.0000E+00
6.0000E+04
0.0000E+00
0.0000E+00

C5
0.0000E+00
-7.1111E+02
-1.0667E+03
0.0000E+00
7.1111E+02
-1.0667E+03

C6
0.0000E+00
1.0667E+03
1.0667E+03
0.0000E+00
-1.0667E+03
2.1333E+03

(6x6)

C1
6.0000E+04
0.0000E+00
0.0000E+00
-6.0000E+04
0.0000E+00
0.0000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

67

PEFiCA Programa de elementos finitos a cdigo abierto

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


donde la matriz KEG() es igual a :

MTMUL3 REL(), KEL(), KEG()


KEG()
F1
F2
F3
F4
F5
F6

(6x6)

C1
4.5178E+04
2.5673E+04
-5.3333E+02
-4.5178E+04
-2.5673E+04
-5.3333E+02

C2
2.5673E+04
1.5533E+04
9.2376E+02
-2.5673E+04
-1.5533E+04
9.2376E+02

C3
-5.3333E+02
9.2376E+02
2.1333E+03
5.3333E+02
-9.2376E+02
1.0667E+03

C4
-4.5178E+04
-2.5673E+04
5.3333E+02
4.5178E+04
2.5673E+04
5.3333E+02

C5
-2.5673E+04
-1.5533E+04
-9.2376E+02
2.5673E+04
1.5533E+04
-9.2376E+02

C6
-5.3333E+02
9.2376E+02
1.0667E+03
5.3333E+02
-9.2376E+02
2.1333E+03

5.10. MTSUMA
Calcula la matriz C como la suma entre las matrices A y B. Esta operacin se define como:
A n f nc + B n f nc = C n f nc

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 presentan 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()
F1
F2
F3

C1
1.2500E+01
-8.5000E+00
6.3000E+00

MB()
F1
F2
F3

(3x4)
C2
4.3000E+00
1.5800E+01
-9.8000E+00

C3
0.0000E+00
1.4400E+01
7.5000E+00

C4
2.0000E+00
5.2000E+00
4.0000E+00

C2
-4.3000E+00
7.1000E+00
2.3000E+00

C3
-1.8000E+00
5.8000E+00
2.7000E+00

C4
-2.6000E+00
3.0000E+00
5.6000E+00

(3x4)
C1
1.0200E+01
9.6000E+00
6.7000E+00

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
2.2700E+01
1.1000E+00
1.3000E+01

F1
F2
F3

C2
0.0000E+00
2.2900E+01
-7.5000E+00

C3
-1.8000E+00
2.0200E+01
1.0200E+01

C4
-6.0000E-01
8.2000E+00
9.6000E+00

5.11. MTREST
Calcula la matriz C como la resta de la matriz A menos la matriz B. Tal operacin se define como:
A n f nc B n f nc = C n f n c

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 presentan 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 entre ellas se obtiene ejecutando la instruccin:
MTREST MA(), MB(), MC()

donde la matriz MC() es igual a :


MC()
F1
F2
F3

(3x4)

C1
2.3000E+00
-1.8100E+01
-4.0000E-01

C2
8.6000E+00
8.7000E+00
-1.2100E+01

C3
1.8000E+00
8.6000E+00
4.8000E+00

C4
4.6000E+00
2.2000E+00
-1.6000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

69

PEFiCA Programa de elementos finitos a cdigo abierto

5.12. MTPROD
Multiplica trmino a trmino los coeficientes de las matrices A y B, almacenando el resultado en la matriz C. Este tipo de operacin denominada producto de Hadamard (Horn &
Johnson 1994) se define como:
A n f nc B n f nc = C n f nc

(5.15)

cij = aij bij

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 presentan 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 producto de Hadamard entre ellas se obtiene ejecutando la instruccin:
MTPROD MA(), MB(), MC()

donde la matriz MC() es igual a :


MC()
F1
F2
F3

(3x4)

C1
1.2750E+02
-8.1600E+01
4.2210E+01

C2
-1.8490E+01
1.1218E+02
-2.2540E+01

C3
0.0000E+00
8.3520E+01
2.0250E+01

C4
-5.2000E+00
1.5600E+01
2.2400E+01

5.13. MTDIVI
Multiplica trmino a trmino los coeficientes de las matrices A y B. Obtiene el trmino cij
la matriz C de la divisin entre el trmino aij de la matriz A y el trmino bij de la matriz B,
es decir:
A n f nc / B n f n c = C n f nc

cij =

aij
bij

bij 0

(5.16)

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()
F1
F2
F3

(3x4)

C1
1.2255E+00
-8.8542E-01
9.4030E-01

C2
-1.0000E+00
2.2254E+00
-4.2609E+00

C3
0.0000E+00
2.4828E+00
2.7778E+00

C4
-7.6923E-01
1.7333E+00
7.1429E-01

5.14. MTPORE
Obtiene la matriz B como resultado de multiplicar el escalar c por la matriz A. En otras
palabras, realiza la operacin:
cA n f n c = B n f n c

(5.17)

bij = c aij

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

71

PEFiCA Programa de elementos finitos a cdigo abierto

MTPORE MA(), 4.5, MB()

donde la matriz resultantes MB() es igual a :


MB()
F1
F2
F3

(3x4)

C1
5.6250E+01
-3.8250E+01
2.8350E+01

C2
1.9350E+01
7.1100E+01
-4.4100E+01

C3
0.0000E+00
6.4800E+01
3.3750E+01

C4
9.0000E+00
2.3400E+01
1.8000E+01

5.15. MTSUCI
Suma los coeficientes de una matriz entera A, de la forma:
nc n f

asum =

aij

(5.18)

i =1 j =1

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 descripcin 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()
F1
F2

(2x4)
C1
000
004

C2
001
005

C3
002
006

Despus la ejecucin la variable SUMI = 28

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

C4
003
007

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 presentan a continuacin.
[variable]= MTSUCR(MA())

Argumento

Tipo de variable

Descripcin

MA()

Double (real)

Matriz existente A.

MTSUCR

Double (real)
Escalar igual a la sumatoria de los coeficientes de A.
Tabla 5.16. Sintaxis de la funcin MTSUCI.

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 SUMA=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 continuacin.
[variable]= MTMACI(MA(),TP)

Argumento

Tipo de variable

Descripcin

MA()

Integer (entero)

Matriz existente A.

TP

Optional Integer
(argumento opcional
tipo entero)

MTMACI

Si TP=0 la funcin calcula el mximo coeficiente


de A (por defecto).
Si TP=1 la funcin calcula el mnimo coeficiente
de A.
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

73

PEFiCA Programa de elementos finitos a cdigo abierto

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.

TP

Optional Integer
(argumento opcional
tipo entero)

MTMACR

Si TP=0 la funcin calcula el mximo coeficiente


de A (por defecto).
Si TP=1 la funcin calcula el mnimo coeficiente
de A.
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 descripcin 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()
F1
F2
F3
F4
F5
F6

(6x6)

C1
4.0000E+04
-2.0000E+04
1.0000E+04
0.0000E+00
0.0000E+00
0.0000E+00

C2
-2.0000E+04
9.0000E+04
-1.5000E+04
0.0000E+00
2.0000E+04
0.0000E+00

C3
1.0000E+04
-1.5000E+04
9.0000E+04
-1.2000E+04
6.0000E+04
0.0000E+00

C4
0.0000E+00
0.0000E+00
-1.2000E+04
8.0000E+04
4.5000E+04
-2.2000E+04

C5
0.0000E+00
2.0000E+04
6.0000E+04
4.5000E+04
7.0000E+04
1.4000E+04

C6
0.0000E+00
0.0000E+00
0.0000E+00
-2.2000E+04
1.4000E+04
4.0000E+04

y ejecutando la instruccin:
MTBAND KGL(), KBA(), BAND

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()
F1
F2
F3
F4
F5
F6

(6x4)
C1
4.0000E+04
9.0000E+04
9.0000E+04
8.0000E+04
7.0000E+04
4.0000E+04

C2
-2.0000E+04
-1.5000E+04
-1.2000E+04
4.5000E+04
1.4000E+04
0.0000E+00

C3
1.0000E+04
0.0000E+00
6.0000E+04
-2.2000E+04
0.0000E+00
0.0000E+00

C4
0.0000E+00
2.0000E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

5.20. MTFUDU
Factoriza una matriz cuadrada M de la forma (Uribe 1995):
M n n = UTn n D n n U n n
m11
M

mn1

L
L

m1n u11
M = M
mnn u1n

0
uii
L

0 d11
0 0
u nn 0

0
d ii
0

0 u11
0 0
d nn 0

L
uii
0

u1n
M
u nn

(5.20)

es decir, dada la matriz M la instruccin obtiene una matriz triangular superior U y una
matriz diagonal D que cumplen con la igualdad anterior. La sintaxis de la funcin y la descripcin de sus respectivos argumentos se presentan a continuacin.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

75

PEFiCA Programa de elementos finitos a cdigo abierto

MTFUDU MX(), MD()

Argumento
MX()

BAND

Tipo de variable

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

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


MX()

(4x4)
C1
7.0000E+00
1.2000E+01
5.0000E+00
0.0000E+00

F1
F2
F3
F4

C2
1.2000E+01
3.0000E+00
1.0000E+00
-2.0000E+00

C3
5.0000E+00
1.0000E+00
1.5000E+01
8.0000E+00

C4
0.0000E+00
-2.0000E+00
8.0000E+00
4.0000E+00

Al ejecutar la instruccin:
MTFUDU MX(), MD()

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


variable MX()con los siguientes trminos:
MX()
F1
F2
F3
F4

(4x4)

C1
1.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C2
1.7143E+00
1.0000E+00
0.0000E+00
0.0000E+00

C3
7.1429E-01
4.3089E-01
1.0000E+00
0.0000E+00

C4
0.0000E+00
1.1382E-01
6.0321E-01
1.0000E+00

y una matriz diagonal MD()de la forma:


MD()
F1
F2
F3
F4

(4x4)

C1
7.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C2
0.0000E+00
-1.7571E+01
0.0000E+00
0.0000E+00

C3
0.0000E+00
0.0000E+00
1.4691E+01
0.0000E+00

C4
0.0000E+00
0.0000E+00
0.0000E+00
-1.1179E+00

5.21. MTFCLU
Factoriza la matriz M en el producto entre una matriz triangular inferior L y una matriz
triangular superior U de la forma (Horn & Johnson 1994; Antia 2002):

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

76

Captulo 5. Instrucciones de operaciones matriciales bsicas

M n n = L n n U n n

m11
es decir, M
mn1

L
L

m1n l11
M = M
mnn l n1

0
0 u11
lii
0 0
L lnn 0

L
uii
0

u1n
M
u nn

(5.21)

Del procedimiento nmero de descomposicin matricial, se obtiene una matriz triangular inferior en la cual todos los trminos de la diagonal son iguales a 1.
La sintaxis de la funcin y la descripcin de sus respectivos argumentos se presentan a
continuacin.
MTFCLU MX(), ML(), MU()

Argumento

Tipo de variable

Descripcin

MX()

Double (real)

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 instruccin:


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

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


ML()
F1
F2
F3
F4

(4x4)
C1
1.0000E+00
1.7143E+00
7.1429E-01
0.0000E+00

C2
0.0000E+00
1.0000E+00
4.3089E-01
1.1382E-01

C3
0.0000E+00
0.0000E+00
1.0000E+00
6.0321E-01

C4
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00

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


MU()
F1
F2
F3
F4

(4x4)
C1
7.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C2
1.2000E+01
-1.7571E+01
0.0000E+00
0.0000E+00

C3
5.0000E+00
-7.5714E+00
1.4691E+01
0.0000E+00

C4
0.0000E+00
-2.0000E+00
8.8618E+00
-1.1179E+00

5.22. MTDETE
Calcula el determinante de una matriz cuadrada M. El procedimiento consiste en descomponer la matriz M en el producto entre una matriz triangular inferior L y una matriz triangular superior U, como se indica en la Ecuacin (5.21). El determinante de la matriz M
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

77

PEFiCA Programa de elementos finitos a cdigo abierto

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


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 calcula el determinante de M como el determinante de U.

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

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

Tipo de variable

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

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 manera que despus de ejecutada la instruccin los coeficientes de la matriz MX() son:
MX()
F1
F2
F3
F4

(4x4)

C1
-5.3465E-02
7.3267E-02
9.9010E-02
-1.6139E-01

C2
7.3267E-02
-6.3366E-02
4.9505E-02
-1.3069E-01

C3
9.9010E-02
4.9505E-02
-2.5743E-01
5.3960E-01

C4
-1.6139E-01
-1.3069E-01
5.3960E-01
-8.9455E-01

5.24. MTCOPI
Crea una copia de una matriz real determinada. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
MTCOPI MA(), MB()

Argumento

Tipo de variable

Descripcin

MA()

Double (real)

Matriz existente.

MB()

Double (real)
Copia de la matriz creada.
Tabla 5.24. Sintaxis de la instruccin MTCOPI.

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
M

(6.1)

M n1u1 + M n 2u2 + L + M nnun = f n


un sistema de n ecuaciones simultaneas que puede escribirse matricialmente de la forma:
M n nu n1 = f n1

(6.2)

donde M es una matriz cuadrada conformada por los coeficientes M ij y los vectores columna u y f contienen las variables dependientes del sistema u j y los trminos independientes f i , respectivamente (Antia 2002). La Tabla 2.4 indica el objetivo de las subrutinas
del mdulo MdSO.

6.1. SOGAUS
Resuelve un sistema de ecuaciones simultaneas linealmente independiente como lo indica
la Ecuacin (6.1), mediante el mtodo de eliminacin de Gauss (Antia 2002). Dada la matriz cuadrada M y el vector de trminos independientes f, calcula el vector de variables dependientes u. Cuando el sistema de ecuaciones es linealmente dependiente la instruccin
presenta en pantalla un mensaje de error y termina la subrutina.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

80

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)

F1
F2
F3
F4

C1
7.0000E+00
8.0000E+00
9.0000E+00
1.0000E+01

C2
1.2000E+01
3.0000E+00
4.0000E+00
5.0000E+00

C3
5.0000E+00
1.0000E+00
1.5000E+01
-1.0000E+00

C4
0.0000E+00
-2.0000E+00
8.0000E+00
4.0000E+00

y el vector de trminos independientes f igual a:


F()
F1
F2
F3
F4

(4x1)
C1
8.0000E+00
1.0000E+01
-2.0000E+00
1.0000E+00

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


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

Como resultado se obtiene,


U()
F1
F2
F3
F4

(4x1)
C1
7.5070E-01
1.0845E-01
2.8873E-01
-1.6901E+00

6.2. SOCHLK
Resuelve un sistema simtrico de ecuaciones simultaneas linealmente independiente mediante el mtodo de Cholesky modificado (Uribe 1995); en otras palabras, calcula el vector de variables dependientes u de la Ecuacin (6.1), dada la matriz simtrica M y el vector
de trminos independientes f. Cuando el sistema de ecuaciones es linealmente dependiente
la instruccin presenta en pantalla un mensaje de error y termina la subrutina.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

81

PEFiCA Programa de elementos finitos a cdigo abierto

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
coeficientes de la diagonal superior de la matriz.
Vector de trminos independientes existente f.

MS()

Double (real)

VS()

Double (real)

VR()

Double (real)
Vector solucin o vector de variables dependientes u.
Tabla 6.2. Sintaxis de la instruccin SOCHLK.

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


M()

(4x4)

F1
F2
F3
F4

C1
7.0000E+00
1.2000E+01
5.0000E+00
0.0000E+00

C2
1.2000E+01
3.0000E+00
1.0000E+00
-2.0000E+00

C3
5.0000E+00
1.0000E+00
1.5000E+01
8.0000E+00

C4
0.0000E+00
-2.0000E+00
8.0000E+00
4.0000E+00

y el vector de trminos independientes f igual a:


F()
F1
F2
F3
F4

(4x1)
C1
8.0000E+00
1.0000E+01
-2.0000E+00
1.0000E+00

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


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

Como resultado se obtiene,


U()
F1
F2
F3
F4

(4x1)
C1
-5.4455E-02
-2.7723E-01
2.3416E+00
-4.5718E+00

6.3. SOBAND
Resuelve un sistema de ecuaciones simultaneas linealmente independiente mediante el mtodo de Cholesky modificado, en el cual la matriz simtrica M de la Ecuacin (6.1) se lee
como una matriz banda (Gere & Weaver 1990; Uribe 1995).
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

82

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

MBA()

Double (real)

Descripcin

Matriz existente M en formato matriz banda.


como variable de entrada corresponde al vector de
Double (real)
trminos independientes existente f.
como variable de salida corresponde al vector soluDouble (real)
cin o vector de variables dependientes u.
Tabla 6.3. Sintaxis de la instruccin SOBAND.

VX()
VX()

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

(4x4)

F1
F2
F3
F4

C1
7.0000E+00
1.2000E+01
5.0000E+00
0.0000E+00

C2
1.2000E+01
3.0000E+00
1.0000E+00
-2.0000E+00

C3
5.0000E+00
1.0000E+00
1.5000E+01
8.0000E+00

C4
0.0000E+00
-2.0000E+00
8.0000E+00
4.0000E+00

se puede representar mediante una matriz banda MBA() de 4 filas por 3 columnas,
de la forma:
MBA()
F1
F2
F3
F4

(4x3)

C1
7.0000E+00
3.0000E+00
1.5000E+01
4.0000E+00

C2
1.2000E+01
1.0000E+00
8.0000E+00
0.0000E+00

C3
5.0000E+00
-2.0000E+00
0.0000E+00
0.0000E+00

Dado un vector de trminos independientes f igual a:


F()
F1
F2
F3
F4

(4x1)
C1
8.0000E+00
1.0000E+01
-2.0000E+00
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


VX()
F1
F2
F3
F4

(4x1)
C1
-5.4455E-02
-2.7723E-01
2.3416E+00
-4.5718E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

83

Captulo 7
Instrucciones de clculo de valores y vectores
propios
Las instrucciones del mdulo MdVP tienen como objetivo solucionar sistemas de ecuaciones
homogneos mediante diferentes mtodos, calculando los valores y vectores propios.
Sea:

A11 x1 + A12 x2 + L + A1n xn = 0


A21 x1 + A22 x2 + L + A2 n xn = 0
M
An1 x1 + An 2 x2 + L + Ann xn = 0

(7.1)

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

VAP

Double (real)

Primer valor propio calculado

NCIC

Integer (entero)

Nmero de iteraciones realizadas

TOLC

Double (real)
Tolerancia calculada
Optional Double
Tolerancia especificada para el valor propio calcula(argumento opcional
do. Por defecto TOL=0.01
tipo real)
Tabla 7.1. Sintaxis de la instruccin VPITER.

TOL

x1

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

(4x4)
C1
2.0000E+00
-1.0000E+00
0.0000E+00
0.0000E+00

F1
F2
F3
F4
MAS()

(4x4)

F1
F2
F3
F4

C1
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C2
-1.0000E+00
2.0000E+00
-1.0000E+00
0.0000E+00

C3
0.0000E+00
-1.0000E+00
2.0000E+00
-1.0000E+00

C4
0.0000E+00
0.0000E+00
-1.0000E+00
1.0000E+00

C2
0.0000E+00
2.0000E+00
0.0000E+00
0.0000E+00

C3
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C4
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00

calcular el primer vector propio VEP() y el primer valor propio VAP, mediante la
instruccin:
VPITER KGL(), MAS(), VEP(), VAP, NCIC, TOLC

Como resultado se obtiene,

VEP()
F1
F2
F3
F4
VAP

(4x1)
C1
2.5126E-01
5.0252E-01
6.0302E-01
7.0353E-01

(1x1)
1.4646E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

87

PEFiCA Programa de elementos finitos a cdigo abierto

NCIC

(1x1)
002

TOLC

(1x1)
4.0568E-03

7.2. VPJACK
Obtiene los vectores propios xi y los valores propios i mediante el mtodo de Jacobi
(Bathe 1996), en un sistema de ecuaciones homogneo de la forma:
(7.4)

K xi = i xi

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 ]
n1 = [1 2 L n ]

(7.5)

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)

VEP()

Double (real)

VAP

Double (real)

Matriz de rigidez simtrica existente K.


Matriz que contiene a los vectores propios calculados
X.
Vector que contiene a los valores propios calculados

NCIC

Integer (entero)
Nmero de iteraciones realizadas
Optional Double
Tolerancia especificada para el valor propio calcula(argumento opcional
do. Por defecto TOL=0.01
tipo real)
Tabla 7.2. Sintaxis de la instruccin VPJACK.

TOL

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


KGL()
F1
F2
F3
F4

(4x4)
C1
5.0000E+00
-4.0000E+00
1.0000E+00
0.0000E+00

C2
-4.0000E+00
6.0000E+00
-4.0000E+00
1.0000E+00

C3
1.0000E+00
-4.0000E+00
6.0000E+00
-4.0000E+00

C4
0.0000E+00
1.0000E+00
-4.0000E+00
5.0000E+00

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()
F1
F2
F3
F4
VVP()

(4x4)
C1
3.7175E-01
6.0150E-01
6.0150E-01
3.7175E-01

C2
-3.7175E-01
6.0150E-01
-6.0150E-01
3.7175E-01

C3
-6.0150E-01
3.7175E-01
3.7175E-01
-6.0150E-01

C4
-6.0150E-01
-3.7175E-01
3.7175E-01
6.0150E-01

(4x1)

F1
F2
F3
F4

C1
1.4590E-01
1.3090E+01
6.8541E+00
1.9098E+00

NCIC

(1x1)
004

7.3. VPJACO
Obtiene los vectores propios xi y los valores propios i mediante el mtodo de Jacobi
(Bathe 1996), en un sistema de ecuaciones homogneo de la forma:
(7.6)

K xi = i M xi

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 ]
n1 = [1 2 L n ]

(7.7)

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

89

PEFiCA Programa de elementos finitos a cdigo abierto

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

Argumento

Tipo de variable

Descripcin

KGL()

Double (real)

Matriz de rigidez simtrica existente K.

MAS()

Double (real)

VEP()

Double (real)

VAP

Double (real)

Matriz de masas simtrica existente M.


Matriz que contiene a los vectores propios calculados
X.
Vector que contiene a los valores propios calculados

NCIC

Integer (entero)
Nmero de iteraciones realizadas
Optional Double
Tolerancia especificada para el valor propio calcula(argumento opcional
do. Por defecto TOL=0.01
tipo real)
Tabla 7.3. Sintaxis de la instruccin VPJACO.

TOL

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

(4x4)
C1
5.0000E+00
-4.0000E+00
1.0000E+00
0.0000E+00

MAS()

(4x4)

F1
F2
F3
F4

C1
2.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C2
-4.0000E+00
6.0000E+00
-4.0000E+00
1.0000E+00

C3
1.0000E+00
-4.0000E+00
6.0000E+00
-4.0000E+00

C4
0.0000E+00
1.0000E+00
-4.0000E+00
5.0000E+00

C2
0.0000E+00
2.0000E+00
0.0000E+00
0.0000E+00

C3
0.0000E+00
0.0000E+00
1.0000E+00
0.0000E+00

C4
0.0000E+00
0.0000E+00
0.0000E+00
1.0000E+00

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)

F1
F2
F3
F4

C1
6.5094E-01
1.0317E+00
9.9759E-01
6.0339E-01

C2
-1.4092E+00
-3.9381E-01
1.5490E+00
1.8261E+00

C3
1.7190E-01
-4.0853E-01
1.1638E+00
-8.9810E-01

C4
6.8261E-01
-6.4848E-01
-3.6135E-02
8.0444E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

90

Captulo 6. Instrucciones de solucin de ecuaciones simultneas


VVP()

(4x1)

F1
F2
F3
F4

C1
9.6537E-02
1.3915E+00
1.0638E+01
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 funciones 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 vecT
tor ( e ) = [i( e ) , j( e ) ,L, n( e ) ] tiene los valores nodales asociados al elemento.

8.1. NUNID2
Crea la matriz de funciones de forma de un elemento unidimensional lineal. En el dominio
(e ) de este tipo de elemento se define una funcin de aproximacin lineal en un espacio
unidimensional de la forma:

( e ) ( x) = a1 + a 2 x x ( e )

(8.2)

El elemento de longitud L(e ) , tiene dos nudos ubicados en sus extremos y un grado de libertad o valor nodal por cada nudo (Figura 8.1(a)).
La funcin de aproximacin se puede escribir en trminos de las funciones de forma y
de los valores nodales como:

( e ) = N i( e)i( e ) + N (j e ) (j e )

(8.3)

92

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

(ej )

( e ) = a1 + a2 x

N i(e )

1.0

N (ej )

1.0

i(e )
0.0

L(e )

0.0

L(e )

x,

x,
(a)

(b)

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,
N i( e ) = 1

x
L( e )

; N (j e ) =

x
L( e )

(8.5)

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

Tipo de variable

Descripcin
Matriz creada de las funciones de forma del elemento
Double(real)
N (e ) .
Posicin donde se evala la funcin de forma en coDouble(real)
ordenadas naturales 0 1 .
Tabla 8.1. Sintaxis de la instruccin NUNID2.

Ejemplo 8.1 Las funciones de forma de un elemento unidimensional lineal evaluadas a 0.8 L( e ) desde el extremo izquierdo del elemento se obtiene de la siguiente expresin:
NUNID2 NEL(), 0.8

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


Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

93

PEFiCA Programa de elementos finitos a cdigo abierto


NEL()
F1

(1x2)

C1
2.0000E-01

C2
8.0000E-01

8.2. NUNID3
Crea la matriz de funciones de forma de un elemento unidimensional cuadrtico. En el
dominio (e ) de este tipo de elemento se define una funcin de aproximacin polinmica
de orden 2 en un espacio unidimensional de la forma:

( e ) ( x) = a1 + a 2 x + a3 x 2 x ( e)

(8.7)

El elemento de longitud L(e ) , tiene tres nudos ubicados en el centro y en sus extremos. En
cada nudo hay un grado de libertad o valor nodal como se indica en la .
(e )
i(e ) ( e ) = a1 + a2 x + a3 x 2 k

1.0

N i(e )

N k(e )

1.0

(ej )
N (ej )
0.0

j L(e ) 2

L(e ) 2
x,

(a)

0.0

(b)

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

siendo,

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

(8.9)

94

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

(e)
i

x
x
= 1 3 ( e ) + 2 ( e )
L L

x
x
= 4 ( e ) 4 ( e )
L L

(e)
j

x
x
= ( e ) + 2 ( e )
L L

(e)
j

(8.10)

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

Tipo de variable

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

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 siguiente expresin:
NUNID3 NEL(), 0.8

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


NEL()
F1

(1x3)

C1
-1.2000E-01

C2
6.4000E-01

C3
4.8000E-01

8.3. NTRIAN
Crea la matriz de funciones de forma de un elemento triangular lineal con un grado de libertad por nudo. En el dominio (e ) de este tipo de elemento se define una funcin de
aproximacin lineal en un espacio bidimensional de la forma:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

95

PEFiCA Programa de elementos finitos a cdigo abierto

( e ) ( x, y ) = a1 + a 2 x + a3 y ( x, y ) ( e )

(8.12)

El elemento de rea A, tiene tres nudos ubicados en sus extremos y un grado de libertad o
valor nodal por cada nudo como se ilustra en la Figura 8.3. En general en los elementos
bidimensionales se elige el nudo i y los dems se designan en sentido antihorario.
j (x j , y j )

( xk , y k ) k

i ( xi , yi )

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

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
(ai + bi x + ci y )
2A
1
N (j e ) ( x, y ) =
(a j + b j x + c j y )
2A
1
N k( e ) ( x, y ) =
(a k + bk x + c k y )
2A
N i( e ) ( x, y ) =

donde,

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

(8.15)

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

a k = xi y j x j y i

bk = y i y j

c k = x j xi

(8.16)

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

(a)

(b)

(c)

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
MX()
XYZ()
ELE()
IELE
XP
YP

Tipo de variable

Descripcin
Matriz creada de las funciones de forma del elemento
Double (real)
N (e ) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Integer (entero)
Nmero del elemento finito.
Coordenada x de un punto dentro del elemento donde
Double (real)
se evala la funcin de forma.
Coordenada y de un punto dentro del elemento donde
Double (real)
se evala la funcin de forma.
Tabla 8.3. Sintaxis de la instruccin NTRIAN.

Ejemplo 8.3 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE() mostrada en la Figura 8.6, las
funciones de forma en el centroide del elemento triangular lineal nmero 4, se obtiene de las siguientes instrucciones:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

97

PEFiCA Programa de elementos finitos a cdigo abierto


:
:
'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
02

02

06
05

04

09

05

08
03

01
01

04

yp

07

x
Matriz de coordenadas de los
nudos (existente)

xp
malla de elementos finitos

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)

F1

C1
3.3333E-01

C2
3.3333E-01

C3
3.3333E-01

8.4. NRECTA
Crea la matriz de funciones de forma de un elemento rectangular bilineal con un grado de
libertad por nudo. En el dominio (e ) de este tipo de elemento se define una funcin de
aproximacin lineal en un espacio bidimensional de la forma:

( e ) ( s, t ) = a1 + a 2 s + a3 t + a 4 st ( s, t ) ( e )

(8.17)

siendo s y t los ejes de un sistema coordenado local con origen en el nudo i como se indica
en la Figura 8.7. El elemento tiene cuatro nudos ubicados en sus extremos y un grado de

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

2a

s
i

2b

x
(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 m( e ) ]

(8.19)

1
(2b s ) (2a t )
4ab
s
N (j e ) ( s, t ) =
( 2a t )
4ab
st
N k( e ) ( s, t ) =
4ab
t
N m( e ) ( s, t ) =
(2b s )
4ab

(8.20)

N (j e )

N k( e )

siendo,
N i( e ) ( s, t ) =

La Figura 8.9 representa las funciones de forma del elemento mediante cuatro grficos
tridimensionales donde el eje vertical indica la funcin de forma y los otros dos ejes definen la geometra del elemento.
La instruccin evala a las funciones de forma en la posicin relativa 0 s 2b 1 en
direccin s y 0 t 2a 1 en direccin t, como lo indican las siguientes ecuaciones:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

99

PEFiCA Programa de elementos finitos a cdigo abierto

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

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

(8.21)

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


a continuacin.
NRECTA MX(),XYZ(), ELE(), IELE, SP, TP

Argumento
MX()
XYZ()
ELE()
IELE
SP

TP

Tipo de variable

Descripcin
Matriz creada de las funciones de forma del elemento
Double (real)
N (e ) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Integer (entero)
Nmero del elemento finito.
Posicin relativa 0 s 2b 1 de un punto dentro del
Double (real)
elemento en direccin s donde se evala la funcin de
forma
Posicin relativa 0 t 2a 1 de un punto dentro del
Double (real)
elemento en direccin t donde se evala la funcin de
forma.
Tabla 8.4. Sintaxis de la instruccin NRECTA.

Ejemplo 8.4 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE() mostrada en la Figura 8.8, las
funciones de forma en el centroide del elemento rectangular bilineal nmero 1, se
obtiene a partir de la siguientes instruccin:
NRECTA NEL(), XYZ(), ELE(), 1, 0.5, 0.5

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
02

2a=1.5

(t 2a )(1) = 0.5

02

04

09

05

08
03

y
01

06
05

01

04

07

(1)

( s 2b ) = 0.5
2b=1.5

Matriz de coordenadas de los


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

(1x4)

C1
2.5000E-01

C2
2.5000E-01

C3
2.5000E-01

C4
2.5000E-01

N (j e )

N i( e )

(a)

N k(e )

(b)

N m( e )

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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

101

PEFiCA Programa de elementos finitos a cdigo abierto

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

(x j , y j )

vk
uk

( xk , y k )

uj
j

v(x,y)
u(x,y)

vi

( xi , yi ) i

ui

x
Figura 8.10. Elemento triangular lineal de elasticidad bidimensional.

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 independiente 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 )
v ( e ) ( x, y ) = N i( e ) vi( e ) + N (j e ) v (je ) + N k( e ) v k( e )

(8.22)

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


Ecuacin (8.22) se expresa matricialmente como:
u ( x) ( e ) = N ( x ) ( e ) U ( e )

x ( e )

La

(8.23)

El vector de valores nodales del desplazamiento en el elemento es


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

(e)

N i( e )
=
0

0
N i( e )

N (j e )
0

0
N (j e )

N k( e )
0

N k( e )

(8.24)

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
MX()
XYZ()
ELE()
IELE
XP
YP

Tipo de variable

Descripcin
Matriz creada de las funciones de forma del elemento
Double (real)
N (e) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Nmero del elemento finito.
Integer (entero)
Coordenada x de un punto dentro del elemento donde
Double (real)
se evala la funcin de forma.
Coordenada y de un punto dentro del elemento donde
Double (real)
se evala la funcin de forma.
Tabla 8.5. Sintaxis de la instruccin NTRIEL.

Ejemplo 8.5 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE() mostrada en la Figura 8.6, las
funciones de forma en el centroide del elemento triangular lineal para elasticidad
bidimensional nmero 4, se obtiene de las siguientes instrucciones:
:
:
'coordenadas del centroide del elemento
XP = (XYZ(ELE(4, 1), 1) + XYZ(ELE(4, 2), 1) + XYZ(ELE(4, 3), 1)) / 3
YP = (XYZ(ELE(4, 1), 2) + XYZ(ELE(4, 2), 2) + XYZ(ELE(4, 3), 2)) / 3
'matriz de funciones de forma del elemento
NTRIEL NEL(), XYZ(), ELE(), 4, XP, YP
:
:
Figura 8.11. Parte del cdigo de la rutina principal PEFiCA donde se calcula la matriz

de

funciones de forma de un elemento triangular lineal de elasticidad bidimensional.

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


NEL()
F1
F2

(2x6)

C1
3.3333E-01
0.0000E+00

C2
0.0000E+00
3.3333E-01

C3
3.3333E-01
0.0000E+00

C4
0.0000E+00
3.3333E-01

C5
3.3333E-01
0.0000E+00

C6
0.0000E+00
3.3333E-01

8.6. NRECEL
Crea la matriz de funciones de forma de un elemento rectangular bilineal para elasticidad
bidimensional u otro problema con dos grados de libertad por nudo como lo indica la
Figura 8.12.
Como se indic en la seccin anterior, las componentes cartesianas del vector del desT
plazamiento en elasticidad bidimensional u = [u v ] corresponden a dos funciones de
aproximacin independientes del mismo tipo, definidas para todo punto (s,t) que pertenece
al dominio del elemento rectangular bilineal (e ) as:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

103

PEFiCA Programa de elementos finitos a cdigo abierto

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 establece que el vector de valores nodales del desplazamiento en el elemento es
T
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
corresponde a:
N (e)
N (e) = i
0

0
N i( e )

N (j e )
0

0
N (j e )

N k( e )
0

0
N k( e )

N m( e )
0

N m( e )

(8.26)

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


a continuacin.
NRECEL MX(),XYZ(), ELE(), IELE, SP, TP

Argumento
MX()
XYZ()
ELE()
IELE
SP

TP

Tipo de variable

Descripcin
Matriz creada de las funciones de forma del elemento
Double (real)
N (e) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Nmero del elemento finito.
Integer (entero)
Posicin relativa 0 s 2b 1 de un punto dentro del
Double (real)
elemento en direccin s donde se evala la funcin de
forma
Posicin relativa 0 t 2a 1 de un punto dentro del
Double (real)
elemento en direccin t donde se evala la funcin de
forma.
Tabla 8.6. Sintaxis de la instruccin NRECEL.

Ejemplo 8.6 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE() mostrada en la Figura 8.8, las
funciones de forma en el centroide del elemento rectangular bilineal nmero 1, se
obtiene a partir de la siguientes instruccin:
NRECEL NEL(), XYZ(), ELE(), 1, 0.5, 0.5

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

F1
F2

C1
2.5000E-01
0.0000E+00

C2
0.0000E+00
2.5000E-01

F1
F2

C7
2.5000E-01
0.0000E+00

C8
0.0000E+00
2.5000E-01

C3
2.5000E-01
0.0000E+00

C4
0.0000E+00
2.5000E-01

C5
2.5000E-01
0.0000E+00

C6
0.0000E+00
2.5000E-01

vk

vm

um
m

uk

v(s,t)
2a

u(s,t)

vj

vi
y

ui

2b

uj

x
Figura 8.12. Elemento rectangular bilineal de elasticidad bidimensional.

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 actuando sobre las funciones de forma de un tipo de elemento finito B ( e ) . Los coeficientes
de esta matriz son derivadas de las funciones de forma con respecto a las coordenadas del
dominio del problema. Estas subrutinas estn ubicadas en el mdulo MdB como lo indica la
Tabla 2.8.
Siendo N ( e ) la matriz de funciones de forma del elemento finito y el operador diferencial nabla de un problema especfico, la matriz B ( e ) es igual a:
B (e ) = N (e)

(9.1)

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 independientes de las coordenadas del problema.
T

9.1. BUNID2
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento unidimensional lineal en un problema de campo unidimensional.
La derivada con respecto a x de la funcin de aproximacin indicada en la Ecuacin
(8.3) en trminos de las funciones de forma de la Ecuacin (8.5), es igual a:
(e)
( e ) N i( e ) ( e ) N j ( e)
=
i +
j
x
x
x

donde,

(9.3)

106

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

N i( e)
1
= (e)
x
L

N i( e )
1
;
= ( e)
x
L

(9.4)

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 unidimensional lineal es igual a:
N ( e )
B ( e) = N (e ) = i
x

N (j e )
1
= ( e ) [ 1
x L

1]

(9.5)

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 actuando sobre funciones de forma del elemento B ( e ) .

MX()

Double(real)

LELE

Double(real)
Longitud del elemento finito L(e)
Tabla 9.1. Sintaxis de la instruccin BUNID2.

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 siguiente expresin:
BUNID2 NEL(), 2.5

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


BEL()
F1

(1x2)

C1
-4.0000E-01

C2
4.0000E-01

9.2. BUNID3
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento unidimensional cuadrtico en un problema de campo unidimensional.
La derivada con respecto a x de la funcin de aproximacin indicada en la Ecuacin
(8.8) en trminos de las funciones de forma de la Ecuacin (8.10), es igual a:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

107

PEFiCA Programa de elementos finitos a cdigo abierto

(e)
( e ) N i( e ) ( e ) N j ( e) N k( e) ( e)
=
i +
j +
k
x
x
x
x

(9.6)

donde,

N i( e)
1
= (e)
x
L
( e)
N j
1
= (e)
x
L
( e)
N k
1
= (e)
x
L

3 + 4x

L( e)

4 8x

L( e )

(9.7)

1 + 4x

L( e )

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:
B

(e)

B (e)

= N

( e)

N ( e )
= i
x

N (j e )
x

N k( e)

(9.8)

1
= ( e) [(3 + 4 ) (4 8 ) (1 + 4 )]
L

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 actuando sobre funciones de forma del elemento B (e ) .
Posicin donde se evala la matriz B (e ) en coordenadas naturales 0 1 .

MX()

Double(real)

XCN

Double(real)

LELE

Double(real)
Longitud del elemento finito L(e)
Tabla 9.2. Sintaxis de la instruccin BUNID3.

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

(1x3)

C1
8.0000E-02

C2
-9.6000E-01

C3
8.8000E-01

9.3. BTRIAN
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento triangular lineal con un grado de libertad por nudo (Figura 8.3). En problemas de
T
campo bidimensional donde el operador diferencial nabla = [ x y ] , el gradiente
de la funcin de aproximacin ( e) definido en la Ecuacin (9.2) corresponde a un vector
de la forma:
( e)

x x N
=

(e)
y y N

(e)
i
(e)
i

xN
yN

( e)
j
(e)
j

xN
yN

(e)
k
(e)
k

i( e )
(e)
j
( e )
k

(9.9)

En general las derivadas parciales de una funcin () en trminos de x y de y se escriben de la forma x () () x y y () () y . Derivando las funciones de forma
dadas en la Ecuacin (8.15) se obtiene,
bj
bi
b
; x N (j e) =
; x N k( e) = k
2A
2A
2A
cj
c
c
= i ; y N (j e ) =
; yN k( e ) = k
2A
2A
2A

x N i( e) =
yN

(e)
i

(9.10)

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:
B ( e) =

1 bi
2 A ci

bj
cj

bk
c k

(9.11)

donde,
ai = x j y k xk y j

bi = y j y k

ci = x k x j

a j = x k y i xi y k

b j = yk yi

c j = xi x k

a k = xi y j x j y i

bk = yi y j

c k = x j xi

(9.12)

La Ecuacin (9.11) muestra que la matriz B ( e ) es la misma para todo punto (x,y) en el
interior de un elemento triangular lineal. La sintaxis de la instruccin se indica en la Tabla
9.3.
Ejemplo 9.3 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE()mostrada en la Figura 8.6, la
matriz B ( e ) del elemento triangular lineal nmero 4 se obtiene de la siguiente instruccin:
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

109

PEFiCA Programa de elementos finitos a cdigo abierto

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

Los coeficientes de la matriz de operadores diferenciales actuando sobre funciones


de forma son los siguientes:
BEL()
F1
F2

(2x3)
C1
-6.6667E-01
0.0000E+00

C2
6.6667E-01
-1.0000E+00

C3
0.0000E+00
1.0000E+00

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

Argumento
MX()
XYZ()
ELE()
IELE

Tipo de variable

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

9.4. BRECTA
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento rectangular bilineal con un grado de libertad por nudo como se indica en la Figura
8.7(a).
En problemas de campo bidimensional donde el operador diferencial nabla
T
= [ x y ] , el gradiente de la funcin de aproximacin ( e ) definido en la Ecuacin (9.2) corresponde a un vector de la forma:
x ( e) x N i( e )
=

(e)
(e)
y y N i

x N (j e )
y N (j e)

x N k( e)
y N k( e)

i( e)
x N m( e) (j e)

y N m( e ) k( e)
( e)
m

(9.13)

En general las derivadas parciales de una funcin () en trminos de x y de y se escriben de la forma x () () x y y () () y .


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)
N i
N i ( s, t ) s N i ( s, t ) t
=
+

y
s
y
t
y

(9.14)

Dado que el sistema coordenado local (s,t) con origen en ( xi , y i ) se relaciona con el sistema coordenado global (x,y) con las expresiones s = x xi y t = y yi , las derivadas en Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

110

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 (j e ) (2a t )
N i( e )
( 2a t )
N k( e )
t
=
;
=
;
=
x
x
4ab
4ab
x
4ab
( e)
(e)
(e)
N j
N m
N i
t
(2b s )
s
=
;
=
;
=
x
4ab
y
4ab
y
4ab

(9.15)

N k( e )
N m( e ) (2b s )
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:
B (e) =

1 ( 2a t )
4ab (2b s )

( 2a t )

(2b s )

(9.16)

Expresando la ecuacin anterior en trminos de la posicin relativa 0 s 2b 1 en direccin s y 0 t 2a 1 en direccin t, se tiene:


(1 2b )(1 t 2a )
B (e) =
(1 2a )(1 s 2b )

(1 2b )(1 t 2a )
(1 2a )( s 2b )

(1 2b )(t 2a )
(1 2a )( s 2b )

(1 2b )(t 2a )
(1 2a )(1 s 2b )

(9.17)

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


a continuacin.
BRECTA MX(),XYZ(), ELE(), IELE, SP, TP

Argumento
MX()
XYZ()
ELE()
IELE
SP

TP

Tipo de variable

Descripcin
Matriz creada de los operadores diferenciales actuanDouble (real)
do sobre funciones de forma del elemento B (e ) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Integer (entero)
Nmero del elemento finito.
Posicin relativa 0 s 2b 1 de un punto dentro del
Double (real)
elemento en direccin s donde se evala la matriz
B (e ) .
Posicin relativa 0 t 2a 1 de un punto dentro del
Double (real)
elemento en direccin t donde se evala la matriz
B (e ) .
Tabla 9.4. Sintaxis de la instruccin BRECTA.

Ejemplo 9.4 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE()mostrada en la Figura 8.8, la
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

111

PEFiCA Programa de elementos finitos a cdigo abierto

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

(2x4)

C1
-3.3333E-01
-5.0000E-01

C2
3.3333E-01
-5.0000E-01

C3
3.3333E-01
5.0000E-01

C4
-3.3333E-01
5.0000E-01

9.5. BTRIEL
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento triangular lineal para elasticidad bidimensional u otro problema con dos grados de
libertad por nudo (Figura 8.10).
En elasticidad bidimensional en el plano xy, las componentes de la deformacin en un
T
punto material se puede representar mediante el vector = [ xx yy xy ] . Para una
condicin plana de deformaciones las componentes de deformacin zz = xz = yz = 0 ; en
cambio, para una condicin plana de esfuerzos zz = ( (1 )) ( xx + yy ) y
xz = yz = 0 , sin embargo no se incluye la componente zz al vector porque depende de
las otras componentes.
T
La deformacin se define como = u , donde u = [u v] es el vector de desplazamiento y el operador diferencial para elasticidad bidimensional es igual a:

x
=0

(9.18)

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 nodaT


les U ( e ) = [u i( e ) vi( e ) u (je ) v (je ) u k( e ) v k( e ) ] , y la matriz de operadores diferenciales actuando 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

(e)

=B

(e)

x N i( e)

= 0
y N i( e )

x N (j e)

0
yN
xN

( e)
i
(e)
i

0
y N (j e)

x N k( e )

0
yN
xN

( e)
j
(e)
j

0
y N k( e)

0
yN
xN

(e)
k
(e)
k

(9.20)

Las componentes de la matriz B ( e ) son las derivadas de las funciones de forma del elemento triangular lineal presentadas en la Ecuacin (9.10), por lo tanto, la matriz B ( e ) es
constante en el interior de un elemento triangular lineal. La sintaxis de la instruccin es:
BTRIEL MX(), XYZ(), ELE(), IELE

Argumento
MX()
XYZ()
ELE()
IELE

Tipo de variable

Descripcin
Matriz creada de los operadores diferenciales actuanDouble (real)
do sobre las funciones de forma del elemento B (e ) .
Matriz existente de coordenadas de los nudos de la
Double (real)
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades
Integer (entero)
descrita en el Apartado 3.4.
Integer (entero)
Nmero del elemento finito.
Tabla 9.5. Sintaxis de la instruccin BTRIEL.

Ejemplo 9.5 Dada una malla de elementos finitos definida por la matriz de coordenadas XYZ() y por la matriz de elementos ELE()mostrada en la Figura 8.6, la
matriz B ( e ) del elemento triangular lineal de elasticidad nmero 4 se obtiene de la
siguiente instruccin:
BTRIEL BEL(), XYZ(), ELE(), 4

Los coeficientes de la matriz de operadores diferenciales actuando sobre funciones


de forma son los siguientes:
BEL()
F1
F2
F3

(3x6)

C1
-6.6667E-01
0.0000E+00
0.0000E+00

C2
0.0000E+00
0.0000E+00
-6.6667E-01

C3
6.6667E-01
0.0000E+00
-1.0000E+00

C4
0.0000E+00
-1.0000E+00
6.6667E-01

C5
0.0000E+00
0.0000E+00
1.0000E+00

C6
0.0000E+00
1.0000E+00
0.0000E+00

9.6. BRECEL
Crea la matriz de operadores diferenciales actuando sobre funciones de forma de un elemento rectangular bilineal para elasticidad bidimensional u otro problema con dos grados
de libertad por nudo (Figura 8.12).
Como se indic en el apartado anterior, el vector de deformacin en el plano xy se defiT
ne como = [ xx yy xy ] y se obtiene al aplicar el operador diferencial dado en la
T
Ecuacin (9.18) sobre el vector de desplazamiento u = [u v ] , es decir, = u . En el
dominio de un elemento finito rectangular lineal ( e ) , el vector de deformaciones definido
en la Ecuacin (9.19), donde el vector de valores nodales de desplazamiento corresponde a
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

113

PEFiCA Programa de elementos finitos a cdigo abierto

U ( e ) = [u i( e ) vi( e ) u (je ) v (je ) u k( e ) v k( e ) u m( e ) v m( e ) ] y la matriz de operadores diferenciales actuando sobre las funciones de forma es igual a:
T

(e)

x N i( e )

= 0
y N i( e)

x N (j e)

0
yN
xN

(e)
i
(e)
i

0
y N (j e)

x N k( e )

0
yN
xN

(e)
j
( e)
j

0
y N k( e )

x N m( e)

0
yN
xN

(e)
k
(e)
k

0
y N m( e)

0
yN
xN

( e)
m
(e)
m

(9.21)

Las componentes de la matriz B ( e ) son las derivadas de las funciones de forma del elemento rectangular bilineal presentadas en la Ecuacin (9.15). La sintaxis de la instruccin
y la descripcin de sus respectivos argumentos se presentan a continuacin.
BRECEL MX(),XYZ(), ELE(), IELE, SP, TP

Argumento

Tipo de variable

MX()

Double (real)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

SP

Double (real)

TP

Double (real)

Descripcin
Matriz creada de los operadores diferenciales actuando
sobre funciones de forma del elemento B (e ) .
Matriz existente de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz existente de elementos o de conectividades descrita en el Apartado 3.4.
Nmero del elemento finito.
Posicin relativa 0 s 2b 1 de un punto dentro del

elemento en direccin s donde se evala la matriz B (e ) .


Posicin relativa 0 t 2a 1 de un punto dentro del

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 coordenadas XYZ() y por la matriz de elementos ELE()mostrada en la Figura 8.8, la
matriz B ( e ) en el centroide del elemento rectangular bilineal de elasticidad nmero
1 se obtiene a partir de la siguiente instruccin:
BRECEL BEL(), XYZ(), ELE(), 1, 0.5, 0.5

Los coeficientes de la matriz de operadores diferenciales actuando sobre funciones


de forma son los siguientes:
BEL()

(3x8)

F1
F2
F3

C1
-3.3333E-01
0.0000E+00
-5.0000E-01

C2
0.0000E+00
-5.0000E-01
-3.3333E-01

F1
F2
F3

C7
-3.3333E-01
0.0000E+00
5.0000E-01

C8
0.0000E+00
5.0000E-01
-3.3333E-01

C3
3.3333E-01
0.0000E+00
-5.0000E-01

C4
0.0000E+00
-5.0000E-01
3.3333E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

C5
3.3333E-01
0.0000E+00
5.0000E-01

C6
0.0000E+00
5.0000E-01
3.3333E-01

Captulo 10
Instrucciones para crear la matriz de rigidez
de un elemento
Las instrucciones presentadas a continuacin crean la matriz de rigidez K ( e ) de los elementos finitos que constituyen la librera del programa. Estas subrutinas tienen el prefijo K y
estn ubicadas en el mdulo MdK del cdigo como lo indica la Tabla 2.9.
La matriz K ( e ) depende del tipo de problema, la geometra y la funcin de aproximacin del elemento.

10.1. KUNID2
Crea la matriz de rigidez de un elemento finito unidimensional lineal preparado para resolver la ecuacin diferencial en trminos de (x) de la forma:
D

d 2
+Q = 0
dx 2

(10.1)

Los parmetros D y Q de la ecuacin diferencial dependen de x, sin embargo, se considera que conservan un valor constante D ( e) y Q ( e ) en el interior de cada elemento finito, es
decir, para x ( e ) D( x) = D ( e) Q( x) = Q ( e ) .
El elemento unidimensional lineal define una funcin de aproximacin lineal en un espacio unidimensional, por lo tanto cuenta con dos nudos ubicados en sus extremos (Figura
10.1).

L(e )

x
Figura 10.1. Elemento Unidimensional Lineal

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:

K (e) =

D (e)
L( e )

1 1
1 1

(10.3)

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)

Double(real)

Matriz de rigidez del elemento creada K (e ) .


Parmetro D (e ) de la ecuacin diferencial asociada al
elemento finito.

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

(2x2)

C1
2.6667E+04
-2.6667E+04

C2
-2.6667E+04
2.6667E+04

10.2. KUNID3
Crea la matriz de rigidez de un elemento finito unidimensional cuadrtico preparado para
resolver la ecuacin diferencial en trminos de ( x) indicada en la Ecuacin (10.1), considerando que los parmetros D y Q conservan un valor constante D (e ) y Q (e ) en el interior
de cada elemento finito.
El elemento unidimensional cuadrtico define una funcin de aproximacin polinmica
de orden 2 en un espacio unidimensional, por lo tanto cuenta con tres nudos ubicados en el
centro y en sus extremos como lo muestra la Figura 10.2.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

117

PEFiCA Programa de elementos finitos a cdigo abierto

L(e ) 2

j L(e ) 2

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 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:
K

(e)

7 8 1
D (e)
= ( e ) 8 16 8

3L
1 8 7

(10.4)

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)

Double(real)

Matriz de rigidez del elemento creada K (e ) .


Parmetro D (e ) de la ecuacin diferencial asociada al
elemento finito.

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()
F1
F2
F3

(3x3)
C1
6.2222E+04
-7.1111E+04
8.8889E+03

C2
-7.1111E+04
1.4222E+05
-7.1111E+04

C3
8.8889E+03
-7.1111E+04
6.2222E+04

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:
Dx

2
2
+
D
G + Q = 0
y
x 2
y 2

(10.5)

Los parmetros Dx, Dy, G y Q de la ecuacin diferencial dependen de (x,y), sin embargo,
se considera que conservan un valor constante D x(e ) , D y(e ) , G (e ) y Q (e ) en el interior de cada elemento finito. Los primeros dos parmetros se presentan como coeficientes de una
matriz diagonal D (e ) de la forma:
D

(e)

D x( e )
=
0

D y( e )

(10.6)

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

(10.7)

donde N (e ) es la matriz de funciones de forma y B (e ) es el operador diferencial actuando sobre las funciones de forma del elemento finito. Para el elemento triangular lineal en
particular, la matriz N (e ) est dada en las Ecuaciones (8.14) a (8.16), y la matriz B (e ) est
definida por las Ecuaciones (9.11) y (9.12). Como resultado, la matriz de rigidez de un
elemento triangular lineal asociado con la ecuacin diferencial bidimensional de Poisson es
igual a:
K ( e ) = K (De ) + K G( e )
K

(e)
D

K G( e )

bi 2 bi b j
D
2
= x
bj
4 A
sim.

ci 2 ci c j
bi bk
D

y
2
b j bk +
cj

4 A
2
sim.
bk

ci c k

c j ck
2
c k

(10.8)

2 1 1
G A
=
2 1

12
2
sim.

donde,
bi = y j y k

ci = x k x j

b j = yk yi

c j = xi x k

bk = y i y j

c k = x j xi

(10.9)

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)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

Matriz (creada) de rigidez del elemento K (e ) .


Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.

DX

Double (real)

DY

Double (real)

Double (real)

Parmetro D x( e ) de la ecuacin diferencial de Poisson


(Ecuacin (10.5) ).
Parmetro DY( e ) de la ecuacin diferencial de Poisson
(Ecuacin (10.5) ).
Parmetro G (e ) de la ecuacin diferencial de Poisson

(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 elementos ELE(). La matriz de rigidez del elemento triangular lineal nmero 4 se obtiene 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()
F1
F2
F3

(3x3)

C1
1.6917E-01
-1.6542E-01
1.2500E-03

C2
-1.6542E-01
5.4417E-01
-3.7375E-01

C3
1.2500E-03
-3.7375E-01
3.7750E-01

10.4. KRECTA
Crea la matriz de rigidez de un elemento finito rectangular bilineal (Figura 8.7(a)), preparado para resolver la ecuacin diferencial de campo bidimensional denominada ecuacin de
Poisson y presentada en la Expresin (10.5).
Al plantear la solucin de la ecuacin diferencial con el mtodo de los elementos finitos
se obtiene la matriz de rigidez elemental indicada en la Ecuacin (10.7). En particular para
el elemento rectangular bilineal, el operador diferencial actuando sobre las funciones de
forma o matriz B (e ) est definida en la Ecuacin (9.16) y la matriz de funciones de forma
N (e ) est dada en las Ecuaciones (8.19) y (8.20). Como resultado, la matriz de rigidez de
un elemento rectangular bilineal asociado con la ecuacin diferencial bidimensional de
Poisson es igual a:
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

120

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

K ( e ) = K (De ) + K (Ge )
K (De )

K G( e )

2 2 1
2
1
D a
= x
2
6b

sim.
4 2 1 2
4 2 1
Gab

=
4 2
9

4
sim.

1
2 1 1 2
1 D y b
2 2 1
+

2 6 a
2
1

2
2
sim.

(10.10)

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)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

Matriz (creada) de rigidez del elemento K ( e ) .


Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.

DX

Double (real)

DY

Double (real)

Double (real)

Parmetro D x( e ) de la ecuacin diferencial de Poisson


(Ecuacin (10.5) ).
Parmetro DY( e ) de la ecuacin diferencial de Poisson
(Ecuacin (10.5) ).
Parmetro G (e ) de la ecuacin diferencial de Poisson

(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 elementos 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()
F1
F2

(4x4)

C1
3.6444E-01
1.5556E-02

C2
1.5556E-02
3.6444E-01

C3
-1.7972E-01
-1.9278E-01

C4
-1.9278E-01
-1.7972E-01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

121

PEFiCA Programa de elementos finitos a cdigo abierto


F3
F4

-1.7972E-01
-1.9278E-01

-1.9278E-01
-1.7972E-01

3.6444E-01
1.5556E-02

1.5556E-02
3.6444E-01

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

= u

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


T
componentes de deformacin = [ xx yy xy ] , el vector de desplazamientos
T
u = [u v] y el operador diferencial es igual a:

x
=0

(10.12)

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


(10.13)

= D

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


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

d12
d 22
0

0
0

d 33

(10.14)

Para un problema en condicin plana de esfuerzos,


d 11 = d 22 =

E
E
E
; d12 =
; d 33 =
2
2
2(1 + )
(1 )
(1 )

(10.15)

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

d11 = d 22 =

(1 ) E
E
E
; d12 =
; d 33 =
(1 + )(1 2 )
(1 + )(1 2 )
2(1 + )

(10.16)

La energa potencial total de una estructura puede expresarse como la diferencia entre la
energa elstica de deformacin y el trabajo realizado por las acciones externas, es decir
P = U-W.
El principio de la energa potencial total estacionaria establece que de todos los estados
admisibles de desplazamiento, es decir, los que cumplen con las condiciones de borde y de
compatibilidad, aquel que satisface las ecuaciones de equilibrio adopta un valor estacionario de la energa potencial total. Adems indica que si la condicin estacionaria es un mnimo relativo el equilibrio del sistema es estable. Este principio es aplicable a problemas
donde la relacin entre la carga aplicada y el desplazamiento es lineal (Cook, Malkus et al.
1989).
En el dominio de un slido de material elstico la energa de deformacin es igual a:
U=

1 T
dV
2

(10.17)

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:
U=

1 T
D dV
2

(10.18)

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


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
a:
W = b T u dV + p T u dS

(10.19)

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


P = U-W =

1 T
D dV b T u dV p T u dS

(10.20)

En el mtodo de los elementos finitos el campo del desplazamiento u(x) para todo punto
material en el dominio , se convierte en el conjunto de campos continuos de desplazamiento en el interior de cada elemento finito, es decir u(x) ( e ) x ( e ) , que satisfacen la
condicin de continuidad en los nudos de los mismos.
Los trminos de la energa potencial total en la Ecuacin (10.20) son integrales en el
dominio y en el contorno del slido, que corresponden a la sumatoria de las integrales en el
subdominio de cada elemento (e ) y en su contorno (e ) , as:
m

P=

P
( e ) =1

(e)

T
; P (e) = ( e )T D ( e ) ( e ) dV b ( e ) u ( e ) dV p ( e )T u ( e ) dS
2 ( e )

( e )
( e )

(10.21)

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

123

PEFiCA Programa de elementos finitos a cdigo abierto

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:
P (e) =

1 ( e )T
U B ( e )T D ( e ) B ( e ) dV U ( e ) U ( e )T N (e )T b (e ) dV U (e )T N (e )T p (e ) dS
2
(e )

(e )

( e )

(10.22)

Las derivadas de energa potencial total con respecto a cada uno de los valores nodales
de desplazamiento en el elemento (e) son los coeficientes de un vector columna de la forma:
P (e) P (e)
=
U ( e ) U i( e )

P (e)
U (j e )

P (e)
L

U ge( e )

(10.23)

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)
= B ( e )T D ( e ) B ( e ) dV U ( e ) N ( e )T b ( e ) dV N ( e )T p ( e ) dS
(e)
U
( e )

( e )
( e )

(10.24)

En la expresin anterior el primer trmino entre parntesis se define como la matriz de


rigidez del elemento, es decir,
K (e) =

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

( e )

( e )T

b ( e ) dV

; f p( e ) =

( e )T

p ( e ) dS ; f ( e ) = f b( e ) + f p( e )

( e )

(10.26)

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


P (e)
= K (e ) U (e ) f (e)
U ( e )

(10.27)

La energa potencial total adopta un valor estacionario cuando las derivadas de la energa potencial total con respecto a los valores nodales del slido son nulas, es decir,
T

P P
P
=
= 0
= 0 L
= 0 = 0
U U 1
U j
U gt

(10.28)

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 denominada ensamblaje A (me ) =1 , es decir,
m
m
P
P (e)
P (e)
=
= A (e) = 0
U ( e )=1 U ( e ) =1 U

(10.29)

Del ensamblaje del primer trmino de la Ecuacin (10.27), se establece la siguiente


igualdad:
m

A (K
( e ) =1

(e)

U (e) ) = A K (e) U
( e ) =1

(10.30)

Por lo tanto,
P
= KU f = 0
U

(10.31)

siendo K la matriz de rigidez del slido obtenida del ensamblaje de las matrices de rigidez de los elementos, es decir,
m

K = A K (e)
( e )=1

(10.32)

y f el vector de fuerzas nodales del slido resultante del ensamblaje de los vectores de
fuerzas nodales de los elementos de la forma:
m

f = A f (e)
( e ) =1

(10.33)

La matriz de rigidez de un elemento triangular lineal de elasticidad indicada a continuacin se obtiene al sustituir a la matriz B (e ) definida en la Ecuacin (9.20) en la Ecuacin
(10.25).
K ii( e ) K ij( e ) K ik( e )
t (e )

K = K ij( e ) K (jje ) K (jke ) ; h =


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

2
2

bk c i d 12 + bi c k d 33 bi bk d 33 + c i c k d 22
b j c j ( d 12 + d 33 ) b j d 33 + c j d 22
(e)

b j bk d 11 + c j c k d 33
K (jke ) = h
bk c j d 12 + b j c k d 33

(10.34)

b j c k d 12 + bk c j d 33
bk2 d 11 + c k2 d 33 bk c k (d 12 + d 33 )
(e)
K
=
h
kk

2
2
b j bk d 33 + c j c k d 22
bk c k ( d 12 + d 33 ) bk d 33 + c k d 22

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

125

PEFiCA Programa de elementos finitos a cdigo abierto

bi = y j y k

ci = x k x j

b j = yk yi

c j = xi x k

bk = y i y j

c k = x j xi

Las constantes elsticas d11 , d 22 , d12 , d33 estn definidas en las ecuaciones (10.15) y
(10.16).
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
KTRIEL MX(), XYZ(), ELE(), IELE, EYOU, POIS, TESP, TP

Argumento

Tipo de variable

Descripcin

MX()

Double (real)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

EYOU

Double (real)

POIS

Double (real)

Matriz (creada) de rigidez del elemento K (e ) .


Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.
Mdulo de elasticidad o mdulo de Young del material.
Relacin de Poisson del material.

TESP

Double (real)

Espesor del elemento finito.


Indica el tipo de numeracin de los grados de libertad
conocidos:
Si TP=0 considera un problema en condicin
Optional Integer
plana de esfuerzos (por defecto).
(argumento opcional
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.

TP

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

F1
F2

C1
8.0000E+05
0.0000E+00

C2
0.0000E+00
2.6667E+05

C3
-8.0000E+05
4.0000E+05

C4
4.0000E+05
-2.6667E+05

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

C5
0.0000E+00
-4.0000E+05

C6
-4.0000E+05
0.0000E+00

126

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


F3
F4
F5
F6

-8.0000E+05
4.0000E+05
0.0000E+00
-4.0000E+05

4.0000E+05
-2.6667E+05
-4.0000E+05
0.0000E+00

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

-8.0000E+05
2.0667E+06
4.0000E+05
-1.8000E+06

-6.0000E+05
4.0000E+05
6.0000E+05
0.0000E+00

4.0000E+05
-1.8000E+06
0.0000E+00
1.8000E+06

10.6. KRECEL
Crea la matriz de rigidez de un elemento finito rectangular bilineal de elasticidad para un
material istropo en condicin plana de esfuerzos o de deformaciones (Figura 8.12).
KRECEL MX(), XYZ(), ELE(), IELE, EYOU, POIS, TESP, TP

Argumento

Tipo de variable

Descripcin

MX()

Double (real)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

EYOU

Double (real)

POIS

Double (real)

Matriz (creada) de rigidez del elemento K (e ) .


Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.
Mdulo de elasticidad o mdulo de Young del material.
Relacin de Poisson del material.

TESP

Double (real)

TP

Espesor del elemento finito.


Indica el tipo de numeracin de los grados de libertad
conocidos:
Si TP=0 considera un problema en condicin
Optional Integer
plana de esfuerzos (por defecto).
(argumento opcional
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 elemento 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

127

PEFiCA Programa de elementos finitos a cdigo abierto

K ( e ) = K 1( e ) + K (2e )

K 1( e )

2 s1
s
3
2 s1

s
= 3
s1

s3
s1

s3

2 s2
s3

2 s1

s2

s3

2 s2

s3

s1

s3

2 s1

s2

s3

2 s2

s3

2 s2

s3

s1

s3

2 s1

s3

2 s1

2 s2

s3

s2

s3

s2

s3

s1 =

K (2e )

2 s4
s
6
s4

s
= 6
s4

s6
2 s4

s6

sim.

d11at ( e )
6b

, s2 =

d 22bt ( e )
d t (e)
, s3 = 12
6a
4

2 s5
s6

2 s4

2 s5

s6

2 s5

s6

2 s4

s6

2 s4

s5

s6

s5

s6

2 s5

s6

s4

s6

s4

s6

s6

s5

s6

2 s5

s4 =

d 33bt
6a

(10.35)

sim.

s5
( e)

s5 =

2 s2

d 33 at
6b

(e)

, s6 =

2 s4
d 33t
4

s6

2 s5

(e)

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 elementos 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 bilineal 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()
F1
F2
F3
F4
F5
F6

(8x8)
C1
8.7407E+03
3.3333E+03
-2.7407E+03
-6.6667E+02
-4.3704E+03
-3.3333E+03

C2
3.3333E+03
1.2444E+04
6.6667E+02
3.5556E+03
-3.3333E+03
-6.2222E+03

C3
-2.7407E+03
6.6667E+02
8.7407E+03
-3.3333E+03
-1.6296E+03
-6.6667E+02

C4
-6.6667E+02
3.5556E+03
-3.3333E+03
1.2444E+04
6.6667E+02
-9.7778E+03

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

C5
-4.3704E+03
-3.3333E+03
-1.6296E+03
6.6667E+02
8.7407E+03
3.3333E+03

C6
-3.3333E+03
-6.2222E+03
-6.6667E+02
-9.7778E+03
3.3333E+03
1.2444E+04

128

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


F7
F8

-1.6296E+03
6.6667E+02

-6.6667E+02
-9.7778E+03

F1
F2
F3
F4
F5
F6
F7
F8

C7
-1.6296E+03
-6.6667E+02
-4.3704E+03
3.3333E+03
-2.7407E+03
6.6667E+02
8.7407E+03
-3.3333E+03

C8
6.6667E+02
-9.7778E+03
3.3333E+03
-6.2222E+03
-6.6667E+02
3.5556E+03
-3.3333E+03
1.2444E+04

-4.3704E+03
3.3333E+03

3.3333E+03
-6.2222E+03

-2.7407E+03
-6.6667E+02

6.6667E+02
3.5556E+03

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 vector de trminos independientes f (e ) de los elementos finitos que constituyen la librera de
del programa. Estas subrutinas tienen el prefijo F y estn ubicadas en el mdulo MdF del
cdigo como lo indica la Tabla 2.12.
La matriz f (e ) depende del tipo de problema, la geometra y la funcin de aproximacin
del elemento.

11.1. FUNID2
Crea el vector de trminos independientes de un elemento finito unidimensional lineal
(Figura 10.1), preparado para resolver la ecuacin diferencial de campo indicada en la Expresin (10.1). Los parmetros D y Q de la ecuacin diferencial dependen de x, sin embargo, esta instruccin considera que Q (e ) conserva un valor constante en el interior de
cada elemento finito, es decir, x ( e ) Q( x) = Q ( e ) .
Como resultado de plantear la solucin en el mtodo de los elementos finitos se obtiene
que el vector de trminos independientes de un elemento unidimensional es igual a:
f (e) =

(e)

(N (e) )T Q (e) dx

(11.1)

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 trminos independientes:
f (e) =

Q ( e ) L( e )
2

1
1

(11.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 elemento f (e ) .
Parmetro Q (e ) de la ecuacin diferencial asociada al
elemento finito.

MX()

Double (real)

Double (real)

Double (real)
Longitud del elemento finito L(e ) .
Tabla 11.1. Sintaxis de la instruccin FUNID2.

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)

F1
F2

C1
6.0000E+00
6.0000E+00

11.2. FUN2QL
Crea el vector de trminos independientes de un elemento finito unidimensional lineal
(Figura 10.1), preparado para resolver la ecuacin diferencial de campo indicada en la Expresin (10.1), considerando que Q (e ) varia de forma lineal en el interior de cada elemento
finito, es decir,.
Q ( e ) ( x) = Qi( e ) + (Q (j e ) Qi( e ) )

x
L( e )

x ( e)

(11.3)

siendo Q (ej ) y Qi(e ) los valores del parmetro Q (e ) en los nudos del elemento i y j, respectivamente.
Sustituyendo en la Ecuacin (11.1), la expresin anterior y la matriz de funciones de
forma del elemento N (e ) presentada en la Ecuacin (8.5), se obtiene el vector de trminos
independientes de un elemento unidimensional lineal considerando variacin lineal del parmetro Q (e ) , como:
f

(e)

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

1
2

(11.4)

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

131

PEFiCA Programa de elementos finitos a cdigo abierto

FUN2QL MX(), QI, QJ, L

Argumento

Tipo de variable

Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Valor del parmetro Q (e ) de la ecuacin diferencial
en el nudo i del elemento.
Valor del parmetro Q (e ) de la ecuacin diferencial
en el nudo j del elemento.

MX()

Double (real)

QI

Double (real)

QJ

Double (real)

Double (real)
Longitud del elemento finito L(e ) .
Tabla 11.2. Sintaxis de la instruccin FUN2QL.

Ejemplo 11.2 Considerando que el parmetro Q (e ) de la ecuacin diferencial varia de forma lineal con un valor Qi( e ) = 10 kN m en el nudo i y Q (j e ) = 15 kN m , el
vector de trminos independientes de un elemento unidimensional lineal FEL() de
longitud 1.2m se calcula en el programa con la expresin:
FUN2QL FEL(), 10, 15, 1.2

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


FEL()

(2x1)

F1
F2

C1
7.0000E+00
8.0000E+00

11.3. FUNID3
Crea el vector de trminos independientes de un elemento finito unidimensional cuadrtico
(Figura 10.2), preparado para resolver la ecuacin diferencial de campo indicada en la Expresin (10.1), considerando al parmetro Q constante en el interior del elemento, es decir,
Q( x) = Q ( e ) x ( e ) .
Sustituyendo en la Ecuacin (11.1) la matriz de funciones de forma del elemento N (e )
presentada en las Ecuaciones (8.9) y (8.10), se obtiene el vector de trminos independientes
de un elemento unidimensional cuadrtico de la forma:
f

(e)

1
Q ( e ) L( e )
=
4
6
1

(11.5)

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 elemento f (e ) .
Parmetro Q (e ) de la ecuacin diferencial asociada al
elemento finito.

MX()

Double (real)

Double (real)

Double (real)
Longitud del elemento finito L(e ) .
Tabla 11.3. Sintaxis de la instruccin FUNID3.

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)

F1
F2
F3

C1
2.0000E+00
8.0000E+00
2.0000E+00

11.4. FUN3QL
Crea el vector de trminos independientes de un elemento finito unidimensional cuadrtico
(Figura 10.2), preparado para resolver la ecuacin diferencial de campo indicada en la Expresin (10.1), considerando que Q (e ) varia de forma lineal en el interior de cada elemento
finito como lo indica la Ecuacin (11.3).
Sustituyendo la matriz de funciones de forma del elemento N (e ) presentada en la Ecuacin (8.5) y el parmetro Q (e ) de la Ecuacin (11.3), en la expresin de f (e ) dada en la
Ecuacin (11.1), se obtiene el vector de trminos independientes de un elemento unidimensional lineal considerando variacin lineal del parmetro Q (e ) , como:
f

(e)

1
Q (j e ) L( e ) (Q (j e ) Qi( e ) )L( e )
=
4 +
6
6
1

0
2

1

(11.6)

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

133

PEFiCA Programa de elementos finitos a cdigo abierto

FUN3QL MX(), QI, QJ, L

Argumento

Tipo de variable

Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Valor del parmetro Q (e ) de la ecuacin diferencial
en el nudo i del elemento.
Valor del parmetro Q (e ) de la ecuacin diferencial
en el nudo j del elemento.

MX()

Double (real)

QI

Double (real)

QJ

Double (real)

Double (real)
Longitud del elemento finito L(e ) .
Tabla 11.4. Sintaxis de la instruccin FUN2QL.

Ejemplo 11.4 Considerando que el parmetro Q (e ) de la ecuacin diferencial varia de forma lineal con un valor Qi( e ) = 10 kN m en el nudo i y Q (j e ) = 15 kN m , el
vector de trminos independientes de un elemento unidimensional cuadrtico FEL()
de longitud 1.2m se calcula en el programa con la expresin:
FUN3QL FEL(), 10, 15, 1.2

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


FEL()

(3x1)

F1
F2
F3

C1
2.0000E+00
1.0000E+01
3.0000E+00

11.5. FTRIAN
Crea el vector de trminos independientes de un elemento finito triangular lineal (Figura
8.3(a)), preparado para resolver una ecuacin diferencial de campo bidimensional expresada en la Ecuacin (10.5), considerando al parmetro Q constante en el interior del elemento, es decir, Q( x) = Q ( e ) x ( e ) .
Como resultado de plantear la solucin en el mtodo de los elementos finitos se obtiene
que el vector de trminos independientes de un elemento bidimensional es igual a:
f (e) =

( e )

(N (e) )T Q (e) dA

(11.7)

En particular, sustituyendo la matriz de funciones de forma del elemento N (e ) presentada en las Ecuaciones (8.14) a (8.16), en la expresin anterior se obtiene el vector de trminos independientes de un elemento triangular lineal como:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

134

Captulo 11

f (e)

Instrucciones para crear el vector de fuerzas de un elemento

1
Q (e) A(e)
=
1

3
1

(11.8)

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

MX()

Double (real)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

Double (real)

Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.

Parmetro Q (e ) de la ecuacin diferencial de Poisson

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

F1
F2
F3

C1
2.5000E+00
2.5000E+00
2.5000E+00

11.6. FRECTA
Crea el vector de trminos independientes de un elemento finito rectangular bilineal (Figura
8.7(a)), preparado para resolver la ecuacin diferencial de campo bidimensional expresada
en la Ecuacin (10.5), considerando al parmetro Q constante en el interior del elemento.
Al plantear la solucin de la ecuacin diferencial con el mtodo de los elementos finitos
se obtiene el vector de trminos independientes indicado en la Ecuacin (11.7). En parti Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

135

PEFiCA Programa de elementos finitos a cdigo abierto

cular para el elemento rectangular bilineal, la matriz de funciones de forma N (e ) est dada
en las Ecuaciones (8.19) y (8.20). Como resultado, el vector de trminos independientes
de un elemento rectangular bilineal asociado con la ecuacin diferencial bidimensional de
Poisson es igual a:
(e)

f (e) =

Q A
4

(e)

1
1

(11.9)

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

MX()

Double (real)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

Double (real)

Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.

Parmetro Q (e ) de la ecuacin diferencial de Poisson

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

F1
F2
F3
F4

C1
3.7500E+00
3.7500E+00
3.7500E+00
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 superficie o presin constante sobre uno de los lados de un elemento finito triangular lineal de
elasticidad (Figura 8.10).
Del planteamiento del problema de elasticidad mediante el mtodo de los elementos finitos se obtiene el vector de fuerzas expresado en la Ecuacin (10.26), como la suma de los
vectores de fuerzas equivalentes a la accin de diferentes tipos de carga. La aplicacin de
T
una fuerza por unidad de superficie o presin constante p (jke ) = [ p x p y ] sobre la cara jk
del elemento finito (Figura 11.1), de dimensiones Ljk por t, produce un vector de fuerzas de
la forma:
f p( e( )jk ) =

(N )

(e) T

p (jke ) tdL jk

(11.10)

(jke )

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

nudo k
y

lado 3

lado 2

lado 3

lado 1

nudo i

py

px

lado 2

lado 1

nudo i
nudo j

nudo j

Figura 11.1. Fuerza de superficie aplicada sobre el lado jk o lado 2 del elemento finito triangular
lineal en direccin x y y.

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:
f p( e(ij) ) =

(N )

(e) T

ij( e )

p ij( e ) tdLij

; f p( e()ik ) =

(N )

(e) T

ik( e )

p ik( e ) tdLik

(11.11)

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

137

PEFiCA Programa de elementos finitos a cdigo abierto

f p( e(ij) )

0
px
px
0
p
p

y
y
tLij p x
tL jk p x
tLik 0
(e)
(e)
=

; f p ( ik ) =
; f p ( jk ) =
2 py
2 py
2 0
px
px
0



0
py
py

(11.12)

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

MX()

Double (real)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

TESP

Double (real)

PX
PY

LADO

Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.

Espesor del elemento finito.


Componente en direccin x de la presin aplicada
Double (real)
sobre la cara LADO del elemento.
Componente en direccin y de la presin aplicada
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.
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

FEL()

(6x1)

F1
F2
F3
F4
F5
F6

C1
0.0000E+00
0.0000E+00
2.5000E+00
0.0000E+00
2.5000E+00
0.0000E+00

Instrucciones para crear el vector de fuerzas de un elemento

nudo 9

y
lado 3
x

p x = 50 kN / m 2
lado 2

elem. 04
nudo 5
(inicial)

lado 1

nudo 8

Figura 11.2. Fuerza de superficie aplicada sobre una cara del elemento triangular lineal nmero 4
de la malla de la Figura 8.6.

11.8. FTRIEC
Crea el vector de fuerzas en los nudos equivalentes a la accin de una fuerza msica constante o fuerza distribuida por unidad de volumen del elemento finito triangular lineal de
elasticidad (Figura 8.10).
Del planteamiento del problema de elasticidad mediante el mtodo de los elementos finitos se obtiene el vector de fuerzas expresado en la Ecuacin (10.26), como la suma de los
vectores de fuerzas equivalentes a la accin de diferentes tipos de carga. La aplicacin de
T
una fuerza msica b ( e ) = [bx b y ] produce un vector de fuerzas equivalentes en los nudos
del elemento de la forma:
f b( e ) =

(N )

(e) T

( e )

b ( e ) tdA ( e )

(11.13)

La integral anterior est definida el rea del elemento finito A(e ) , siendo t el espesor del
mismo. Un ejemplo habitual de fuerza msica es el peso especfico del material , en
T
cuyo caso b ( e ) = [0 ] .
Dada la matriz de funciones de forma expresada en las Ecuaciones (8.15) y (8.24), se
obtienen el vector de fuerzas equivalentes a la aplicacin de las fuerzas msicas sobre un
elemento triangular lineal, como:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

139

PEFiCA Programa de elementos finitos a cdigo abierto

f b( e )

b x
b
y
(e) b
tA x
=

3 b y
b x

b y

(11.14)

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

MX()

Double (real)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.

TESP

Double (real)

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 msicas 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()
F1
F2
F3
F4
F5
F6

(6x1)
C1
0.0000E+00
-6.0000E-01
0.0000E+00
-6.0000E-01
0.0000E+00
-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 superficie o presin constante sobre uno de los lados de un elemento finito rectangular bilineal de
elasticidad (Figura 8.12).
Del planteamiento del problema de elasticidad mediante el mtodo de los elementos finitos se obtiene el vector de fuerzas equivalentes a la aplicacin de una presin constante
como lo indican las Ecuaciones (11.10) y (11.11). La aplicacin de una fuerza por unidad
T
de superficie o presin constante p (jke ) = [ p x p y ] sobre la cara jk del elemento finito
(Figura 11.3), de dimensiones Ljk por t, produce un vector de fuerzas de la forma:

(N )

(e) T

f p( e( )jk ) =

p (jke ) tdL jk

(11.15)

(jke )

La expresin anterior es una integral de lnea definidas en entre los nudos j y k. Las caras Lij , Ljk , Lkm y Lim del elemento se designa como los lados 1, 2, 3 y 4 respectivamente.
nudo m

nudo m

nudo k
lado 3

lado 3

px

lado 2

lado 4

lado 2

lado 4

lado 1
nudo i

nudo k

py

lado 1
y

nudo j

nudo i

nudo j

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

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 )

f p( e( )km) =

(N ) p
(e) T

( e)
km

tdLkm

(e)
im

tdLim

(e )
km

f p( e( )im ) =

(N ) p
(e) T

(11.16)

(e)
im

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

141

PEFiCA Programa de elementos finitos a cdigo abierto

f p( e(ij) )

0
px
0
px
p
0
0
p
y

y

0
0
px
px

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




0
py
0
py
px
px
0
0




p y
p y
0
0

(11.17)

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

MX()

Double (real)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

TESP

Double (real)

PX
PY

LADO

Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.

Espesor del elemento finito.


Componente en direccin x de la presin aplicada
Double (real)
sobre la cara LADO del elemento.
Componente en direccin y de la presin aplicada
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
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)

F1
F2
F3
F4
F5
F6
F7
F8

C1
0.0000E+00
0.0000E+00
2.5000E+00
0.0000E+00
2.5000E+00
0.0000E+00
0.0000E+00
0.0000E+00

nudo 8

nudo 5
lado 3
y

lado 4

lado 2

p x = 50 kN / m 2

elem. 03
x
lado 1
nudo 4
(inicial)

nudo 7

Figura 11.4. Fuerza de superficie aplicada sobre una cara del elemento rectangular bilineal nmero
3 de la malla de la Figura 8.8.

11.10.

FRECEC

Crea el vector de fuerzas en los nudos equivalentes a la accin de una fuerza msica constante o fuerza distribuida por unidad de volumen del elemento finito rectangular bilineal de
elasticidad (Figura 8.12).
Del planteamiento del problema de elasticidad mediante el mtodo de los elementos finitos se obtiene el vector de fuerzas equivalentes a la accin de una fuerza msica
T
b ( e ) = [bx b y ] como lo indica la Ecuacin (11.13).
Despus de sustituir la matriz de funciones de forma de un elemento rectangular bilineal
expresada en las Ecuaciones (8.21) y (8.26), e integral la Ecuacin (11.13), el vector de
fuerzas equivalentes es igual a:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

143

PEFiCA Programa de elementos finitos a cdigo abierto

f b( e )

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

b y
b x

b y

(11.18)

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

MX()

Double (real)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

Descripcin
Vector (creado) de trminos independientes del elemento f (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.

TESP

Double (real)

Espesor del elemento finito.

BX

Double (real)

Componente en direccin x de la fuerza msica.

BY

Componente en direccin y de la fuerza msica.


Double (real)
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 material 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 expresin:
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
FEL()
F1
F2
F3
F4
F5
F6
F7
F8

Instrucciones para crear el vector de fuerzas de un elemento

(8x1)
C1
0.0000E+00
-9.0000E-01
0.0000E+00
-9.0000E-01
0.0000E+00
-9.0000E-01
0.0000E+00
-9.0000E-01

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

= D

donde y son los vectores de las componentes de esfuerzo y deformacin respectivamente. Estas subrutinas se encuentran en el mdulo MdCE del programa con lo indica la
Tabla 2.10.

12.1. CELAPL
Crea la matriz de constantes elsticas para un material de comportamiento lineal elstico
istropo en condicin plana de esfuerzos y en condicin plana deformaciones.
Para problemas de elasticidad en el plano xy se establece un vector de componentes de
T
esfuerzo de la forma = [ xx yy xy ] y un vector de componentes de deformacin
T
igual a = [ xx yy xy ] , por lo tanto, D corresponde a una matriz cuadrada de orden 3
de acuerdo con la relacin constitutiva indicada en la Ecuacin (12.1).
Para un material lineal elstico istropo con mdulo de elasticidad E y la relacin de
Poisson , la matriz de constantes elsticas corresponde a:
d11
D = d12

d12
d 22
0

0
0

d 33

(12.2)

Para un problema en condicin plana de esfuerzos,


d 11 = d 22 =

E
E
E
; d12 =
; d 33 =
2
2
2(1 + )
(1 )
(1 )

(12.3)

En cambio, para un problema en condicin plana de deformaciones los coeficientes de


D son:

146

Captulo 12.

d11 = d 22 =

Instrucciones para crear matrices de constantes elsticas

(1 ) E
E
E
; d12 =
; d 33 =
(1 + )(1 2 )
(1 + )(1 2 )
2(1 + )

(12.4)

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.

Double (real)

Mdulo de elasticidad o de Young del material

NU

Double (real)

Relacin de Poisson del material

ETIPO

Optional Integer
(argumento opcional
tipo entero)

Si ETIPO=0 considera condicin plana de esfuerzos.


Si ETIPO=1 considera condicin plana de deformaciones.
Tabla 12.1. Sintaxis de la instruccin CELAPL.

Ejemplo 12.1 La matriz de constantes elsticas de un material lineal elstico istropo en condicin plana de esfuerzos con mdulo de Young E = 2 10 6 kN m 2 y
= 0.25 se obtiene de la siguiente expresin:
CELAPL DMT(), 2000000, 0.25

Los coeficientes del vector de fuerzas son los siguientes:


DMT()

(3x3)

F1
F2
F3

C1
2.1333E+06
5.3333E+05
0.0000E+00

C2
5.3333E+05
2.1333E+06
0.0000E+00

C3
0.0000E+00
0.0000E+00
8.0000E+05

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

= T

siendo el vector de la misma variable en la base original. Despejando de la ecuacin anterior y considerando que las matrices de transformacin son ortonormales, es decir,
T 1 = T T , se tiene que:
(13.2)

= TT

En otros casos la instruccin transforma directamente a la variable fsica. Estas subrutinas se encuentran en el mdulo MdTR del programa como lo indica la Tabla 2.11.

13.1. TRVECO
Crea la matriz de transformacin de un vector definido en el plano. Se utiliza para realizar
cambios de base del vector de fuerza o de desplazamiento en un espacio bidimensional.
T
Sea un vector de la forma v = [v x v y ] , cuyas componentes estn definidas en una base coordenada global xy. Las componentes del vector en la base coordenada local x y ,
T
v = [v x v y ] se obtienen de la siguiente expresin:
v x cos
v = Tv =
v y sin

sin v x
cos v y

(13.3)

donde el ngulo conformado entre el eje x del sistema global de coordenadas y el eje
x del sistema local.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

148

Captulo 13.

Instrucciones de cambios de base

TRVECO MX(), ANGL

Argumento

Tipo de variable

MX()

Double (real)

Descripcin

Matriz de transformacin de base coordenada T.


Angulo en grados entre el eje x (global) y el eje x
Double (real)
(local).
Tabla 13.1. Sintaxis de la instruccin TRVECO.

ANGL

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 mediante la siguiente expresin:
TRVECO TR(), 30

Los coeficientes del vector de fuerzas son los siguientes:


TR()

(2x2)

F1
F2

C1
8.6603E-01
-5.0000E-01

C2
5.0000E-01
8.6603E-01

13.2. TRESP2
Crea la matriz de transformacin de las componentes de esfuerzo o deformacin contenidas
en el plano xy.
T
Sea un vector = [ xx yy xy ] que contiene las componentes de esfuerzo definidas en la base original xy. Las componentes de esfuerzo en la base coordenada local x y ,
T
= [ xx yy xy ] se obtienen de la siguiente expresin:
= T
cos 2
xx
=
sin 2
yy
xy sin cos

sin 2
cos 2
sin cos

2 sin cos xx

2 sin cos yy
cos 2 sin 2 xy

(13.4)

donde el ngulo conformado entre el eje x del sistema global de coordenadas y el eje
x del sistema local.
Las componentes de deformacin en la base local
T
= [ xx yy xy ] se calculan de la forma:
= T

(13.5)

Siendo = [ xx yy xy ] el vector de las componentes de deformacin en la base


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

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

149

PEFiCA Programa de elementos finitos a cdigo abierto

TRESP2 MX(), ANGL

Argumento

Tipo de variable

MX()

Double (real)

Descripcin

Matriz de transformacin de base coordenada T.


Angulo en grados entre el eje x (global) y el eje x
Double (real)
(local).
Tabla 13.2. Sintaxis de la instruccin TRESP2.

ANGL

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 mediante la siguiente expresin:
TRESP2 TR(), 30

Los coeficientes del vector de fuerzas son los siguientes:


TR()

(3x3)

F1
F2
F3

C1
7.5000E-01
2.5000E-01
-4.3301E-01

C2
2.5000E-01
7.5000E-01
4.3301E-01

C3
8.6603E-01
-8.6603E-01
5.0000E-01

13.3. TRPRIN
Calcula los esfuerzos (o deformaciones) principales y las respectivas direcciones principales a partir de las componentes de esfuerzo (o de deformaciones) en la base original en un
espacio bidimensional. La instruccin guarda los esfuerzos (o deformaciones) principales
T
en un vector de la forma p = [ p1 p 2 ] , en cambio, el ngulo que forma el eje x (global) con la direccin principal 1 p1 y con la direccin principal 2 p 2 se guardan en otro
T
vector de la forma p = [ p1 p 2 ] .
T
Sea un vector = [ xx yy xy ] que contiene las componentes de esfuerzo definidas en la base original xy, los esfuerzos principales son iguales a:

p2

[
[

1
( xx + yy ) + ( xx + yy )2 + (2 xy )2
2
1
2
2
= ( xx + yy ) ( xx + yy ) + (2 xy )
2

p1 =

]
]

donde p1 > p 2 . Las direcciones principales se definen como:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

(13.6)

150

Captulo 13.

( xx p1 )

xy

( xx p 2 )
= arctg

xy

Instrucciones de cambios de base

p1 = arctg
p2

(13.7)

De forma anloga se calculan las deformaciones principales p1 y p 2 , y sus respectivas direcciones.


La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
TRPRIN SXY(), MPR(), TPR()

Argumento
SXY()
MPR()
TPR()

Tipo de variable

Descripcin
Vector de componentes de esfuerzos en la base coorDouble (real)
denada original.
Double (real)
Vector de esfuerzos principales.
Vector de direcciones principales. ngulo en grados
Double (real)
entre el eje x (global) y los ejes principales 1 y 2.
Tabla 13.3. Sintaxis de la instruccin TRPRIN.

Ejemplo 13.3
Dado un estado plano de esfuerzos de componentes
2
xx = 1.7979 kN m , yy = 16.2330 kN m 2 y xy = 2.8895 kN m 2 , guardados
en el vector STE(), los esfuerzos y las direcciones principales se calcula en el programa mediante la siguiente expresin:
TRPRIN STE(), SPE(), TPE()

Los esfuerzos principales contenidos en el vector SPE() son:


SPE()
F1
F2

(2x1)
C1
2.2496E+00
-1.6685E+01

Las direcciones principales contenidos en el vector TPE() son:


TPE()
F1
F2

(2x1)
C1
-8.8852E+00
8.1115E+01

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

151

PEFiCA Programa de elementos finitos a cdigo abierto

13.4. TRVMIS
Calcula el esfuerzo de von Misses asociado al criterio de fluencia de la energa de distorsin (Popov 1998), a partir de las componentes de esfuerzo en la base original en un espacio bidimensional.
T
Sea un vector = [ xx yy xy ] que contiene las componentes de esfuerzo definidas en la base original xy. Los esfuerzos principales se obtienen con la Ecuacin (13.6), y
a partir de ellos se calcula el esfuerzo de von Mises:

vm = p21 + p2 2 p1 p 2

(13.8)

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


a continuacin.
[variable]= TRVMIS(SXY())

Argumento
SXY()
TRVMIS

Tipo de variable

Descripcin
Vector de componentes de esfuerzos en la base coorDouble (real)
denada original.
Double (real)
Esfuerzo de von Mises.
Tabla 13.4. Sintaxis de la funcin TRVMIS.

Ejemplo 13.4
Dado un estado plano de esfuerzos de componentes
xx = 1.7979 kN m 2 , yy = 16.2330 kN m 2 y xy = 2.8895 kN m 2 , guardados
en el vector STE(),en el programa el esfuerzo de von Mises se calcula mediante la
siguiente expresin:
SVM = TRVMIS(STE())

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 nudos o cada uno de los elementos de la malla. Estas subrutinas se encuentran en el mdulo
MdNGL del programa como lo indica la Tabla 2.13.

14.1. NGLNUD
Crea la matriz de grados de libertad por nudo a partir de la matriz indicadora de condiciones de borde del problema. La instruccin asigna un identificador numrico a cada uno de
grados de libertad del problema. Inicialmente numera de forma secuencial todos los grados de libertad desconocidos con la informacin dada por la matriz indicadora de condiciones de borde y luego numera todos los grados de libertad conocidos.
Como consecuencia del orden dado a los grados de libertad, el vector de valores nodales del sistema pueda dividirse en dos subvectores: el vector de valores nodales desconocidos y el vector de valores nodales conocidos . Por lo tanto la ecuacin de
equilibrio del sistema:
K = f

(14.1)

se puede expresar de la forma:


K
K

K
K

f
= f

(14.2)

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 trminos independientes est compuesto por los subvectores f y f .
Ahora las cantidades de inters del problema que corresponden a los valores nodales desconocidos se obtienen de la primera ecuacin de la expresin matricial anterior, como:
1
(f K )
= 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
MGL()
MRE()

TP

Tipo de variable

Descripcin
Matriz creada que contiene los grados de libertad por
Integer(entero)
nudo (Seccin 3.4).
Matriz existente que contiene las condiciones de borde del problema (Seccin 3.4). Los coeficientes son 0
Integer(entero)
o 1.
Indica el tipo de numeracin de los grados de libertad
conocidos:
Si TP=0 el nmero identificador los grados de
Optional Integer
libertad conocidos es el cero (por defecto).
(argumento opcional
tipo entero)
Si TP=1 los grados de libertad conocidos se numeran despus de numerar todos los grados de libertad desconocidos.
Tabla 14.1. Sintaxis de la instruccin NGLNUD.
(04)
(03)

(09)
(08)

06

03
02

04
(07)
(06)

05

01

(12)
(11)

08
03

01
(17)=0
(18)=0

(16)=0
(05)

04

notacin

09

(02)
(01)

02

(14)
(13)

(15)=0
(10)

07

Matriz indicadora de condiciones


de borde (existente)

magnitud de un
g.l. conocido

# grado de
libertad

(11)=2.4
(10)

07

# nudo

malla de
elementos finitos

Matriz de grados de libertad


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 matriz indicadora de las condiciones de borde MRE() obtener la matriz de grados de
libertad por nudo MGL(). Mediante la siguiente instruccin se crea la matriz MGL()
numerando todos lo grados de libertad (desconocidos y conocidos):
NGLNUD MGL(), MRE(), 1
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

155

PEFiCA Programa de elementos finitos a cdigo abierto

La malla de elementos finitos, la matriz MRE() y la matriz creada MGL(), se muestran en la Figura 14.1. En cambio, mediante la siguiente instruccin se crea la matriz MGL() numerando solamente los grados de libertad desconocidos:
NGLNUD MGL(), MRE()

La malla de elementos finitos, la matriz MRE() y la matriz creada MGL(), se muestran en la Figura 14.2.
(04)
(03)

(09)
(08)

06

03
02

04
(07)
(06)

05

01

# grado de
libertad

(12)
(11)

(00)=0
(05)

04

07

(00)=0
(10)

# nudo

malla de
elementos finitos

07

Matriz indicadora de condiciones


de borde (existente)

magnitud de un
g.l. conocido

(11)=2.4
(10)

08
03

01
(00)=0
(00)=0

notacin

09

(02)
(01)

02

(14)
(13)

Matriz de grados de libertad


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 matriz de grados de libertad por nudo y la matriz de conectividades del problema. La instruccin construye una tabla de identificadores de los grados de libertad de asociados a cada
elemento. La matriz de incidencias es esencial para realizar el proceso de ensamblaje de
matrices y vectores descrito por la instruccin ENSAMK, ENSAMV, ENBAND y ENSAMX, al igual
que la extraccin de vectores con la rutina EXTRAV. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.

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

INC()

Integer (entero)

Descripcin

Matriz de incidencias creada (Seccin 3.4).


Matriz de grados de libertad por nudo existente (SecInteger (entero)
cin 3.4).
Integer (entero)
Matriz de conectividades (Seccin 3.4).
Tabla 14.2. Sintaxis de la instruccin NGLELE.

MGL()
ELE()

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

Identificador del nudo del elemento


nudo k
nudo m
nudo i
nudo j

vm

vk
um

k
(e)

vi

vj

ui

uj

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 instruccin ENBAND es necesario conocer el ancho de la semi-banda de la misma.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

157

PEFiCA Programa de elementos finitos a cdigo abierto

NGLBAN INC(), BAND, NGLT

Argumento

Tipo de variable

INC()

Integer (entero)

BAND
NGLT

Descripcin

Matriz de incidencias existente (Seccin 3.4).


Ancho calculado de la semi-banda de la matriz de
Integer (entero)
rigidez del sistema.
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 computacional de slidos, las matrices del sistema que comnmente intervienen en el problema
son la matriz de rigidez y la matriz de masas de la estructura.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

ENSAMK KG(), KE(), INC(), IELE

Argumento

Tipo de variable

KG()

Double (real)

KG()

Double (real)

KE()

Double (real)

INC()

Integer (entero)

IELE

Descripcin
Como parmetro de entrada corresponde a la matriz
del sistema antes de ensamblar la matriz elemental
KE().
Como parmetro de salida corresponde a la matriz del
sistema despus de ensamblar la matriz elemental
KE().
Matriz elemental existente que se desea ensamblar.

Matriz de incidencias (Seccin 3.4).


Nmero del elemento finito cuya matriz se desea
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)

F1
F2
F3
F4
F5
F6
F7
F8

C1
5.2444E+04
2.0000E+04
-1.6444E+04
-4.0000E+03
-2.6222E+04
-2.0000E+04
-9.7778E+03
4.0000E+03

C2
2.0000E+04
7.4667E+04
4.0000E+03
2.1333E+04
-2.0000E+04
-3.7333E+04
-4.0000E+03
-5.8667E+04

F1
F2
F3
F4
F5
F6
F7
F8

C7
-9.7778E+03
-4.0000E+03
-2.6222E+04
2.0000E+04
-1.6444E+04
4.0000E+03
5.2444E+04
-2.0000E+04

C8
4.0000E+03
-5.8667E+04
2.0000E+04
-3.7333E+04
-4.0000E+03
2.1333E+04
-2.0000E+04
7.4667E+04

C3
-1.6444E+04
4.0000E+03
5.2444E+04
-2.0000E+04
-9.7778E+03
-4.0000E+03
-2.6222E+04
2.0000E+04

C4
-4.0000E+03
2.1333E+04
-2.0000E+04
7.4667E+04
4.0000E+03
-5.8667E+04
2.0000E+04
-3.7333E+04

C5
-2.6222E+04
-2.0000E+04
-9.7778E+03
4.0000E+03
5.2444E+04
2.0000E+04
-1.6444E+04
-4.0000E+03

C6
-2.0000E+04
-3.7333E+04
-4.0000E+03
-5.8667E+04
2.0000E+04
7.4667E+04
4.0000E+03
2.1333E+04

y la matriz de incidencias del problema,


INC()
F1
F2
F3
F4

(4x8)
C1
000
000
004
006

C2
000
001
005
007

C3
004
006
010
012

C4
005
007
011
013

C5
006
008
012
014

C6
007
009
013
015

C7
000
002
006
008

C8
001
003
007
009

Ensamblar la matriz de rigidez del elemento 1 en la matriz de rigidez de la estructura mediante la siguiente instruccin:
ENSAMK KGL(), KEL(), INC(), 1

Suponiendo que todos los coeficientes de la matriz KGL() son iguales a cero antes
de ejecutar la instruccin, se tiene como resultado que:
KGL()
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14

(15x15)
C1
7.4667E+04
0.0000E+00
0.0000E+00
2.0000E+04
-3.7333E+04
-4.0000E+03
2.1333E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C2
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C3
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C4
2.0000E+04
0.0000E+00
0.0000E+00
5.2444E+04
-2.0000E+04
-9.7778E+03
-4.0000E+03
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C5
-3.7333E+04
0.0000E+00
0.0000E+00
-2.0000E+04
7.4667E+04
4.0000E+03
-5.8667E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C6
-4.0000E+03
0.0000E+00
0.0000E+00
-9.7778E+03
4.0000E+03
5.2444E+04
2.0000E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

161

PEFiCA Programa de elementos finitos a cdigo abierto


F15

0.0000E+00

0.0000E+00

0.0000E+00

0.0000E+00

0.0000E+00

0.0000E+00

F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15

C7
2.1333E+04
0.0000E+00
0.0000E+00
-4.0000E+03
-5.8667E+04
2.0000E+04
7.4667E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C8
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C9
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C10
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C11
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C12
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15

C13
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C14
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

C15
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

15.2. ENSAMV
Suma la contribucin de un vector elemental al vector del sistema de acuerdo con la numeracin de los valores nodales o grados de libertad del elemento adicionado, en otras palabras, ensambla un vector elemental en el vector del sistema. La sintaxis de la instruccin
y la descripcin de sus respectivos argumentos se presentan en la Tabla 15.2.
Ejemplo 15.2
como:
VEL()
F1
F2
F3
F4
F5
F6

Dada el vector de fuerzas de cuerpo del elemento finito nmero 1

(8x1)

C1
5.6250E+00
3.7500E+00
5.6250E+00
3.7500E+00
5.6250E+00
3.7500E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

162

Captulo 15. Instrucciones para ensamblar y extraer matrices


F7
F8

5.6250E+00
3.7500E+00

y la matriz de incidencias del problema,


INC()

(4x8)
C1
000
000
004
006

F1
F2
F3
F4

C2
000
001
005
007

C3
004
006
010
012

C4
005
007
011
013

C5
006
008
012
014

C6
007
009
013
015

C7
000
002
006
008

C8
001
003
007
009

ensamblar el vector de fuerzas del elemento 1 en el vector de fuerzas de la estructura mediante la siguiente instruccin: ENSAMV VGL(), VEL(), INC(), 1
Suponiendo que todos los coeficientes del vector VGL() son iguales a cero antes de
ejecutar la instruccin, se tiene como resultado que:
VGL()
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15

(15x1)
C1
3.7500E+00
0.0000E+00
0.0000E+00
5.6250E+00
3.7500E+00
5.6250E+00
3.7500E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

ENSAMV VG(), VE(), INC(), IELE

Argumento

Tipo de variable

VG()

Double (real)

VG()

Double (real)

VE()

Double (real)

INC()

Integer (entero)

IELE

Descripcin
Como parmetro de entrada corresponde al vector del
sistema antes de ensamblar el vector elemental VE().
Como parmetro de salida corresponde al vector del
sistema despus de ensamblar al vector elemental
VE().
Vector elemental existente que se desea ensamblar.

Matriz de incidencias (Seccin 3.4).


Nmero del elemento finito cuyo vector se desea
Integer (entero)
ensamblar.
Tabla 15.2. Sintaxis de la instruccin ENSAMV.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

163

PEFiCA Programa de elementos finitos a cdigo abierto

15.3. ENBAND
Suma la contribucin de una matriz elemental simtrica a la matriz del sistema en formato
de matriz banda de acuerdo con la numeracin de los valores nodales o grados de libertad
del elemento ensamblado. En mecnica computacional de slidos, las matrices del sistema
que comnmente intervienen en el problema son la matriz de rigidez y la matriz de masas
de la estructura. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
ENBAND KBA(), KE(), INC(), IELE

Argumento
KBA()

KBA()
KE()
INC()
IELE

Tipo de variable

Descripcin
Como parmetro de entrada corresponde a la matriz banda
Double (real)
del sistema antes de ensamblar la matriz elemental KE().
Como parmetro de salida corresponde a la matriz banda
del sistema despus de ensamblar la matriz elemental
Double (real)
KE().
Matriz elemental simtrica existente que se desea ensamDouble (real)
blar.
Matriz de incidencias (Seccin 3.4).
Integer (entero)
Nmero del elemento finito cuya matriz se desea ensamInteger (entero)
blar.
Tabla 15.3. Sintaxis de la instruccin ENBAND.

La instruccin requiere la existencia de la matriz banda KBA(), cuyo nmero de filas corresponde con el nmero de grados de libertad del sistema y el nmero de columnas con el
ancho de la semi banda. Por esta razn se recomienda utilizar la instruccin NGLBAN para
determinar el ancho de la semi banda a partir de la matriz de incidencias y la instruccin
MTCONS para construir una matriz llena de un valor constante.

15.4. ENSAMX
Suma un coeficiente especificado de una matriz elemental a los coeficientes de un vector
del sistema de acuerdo con la numeracin de los valores nodales o grados de libertad del
elemento. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se
presentan en la Tabla 15.4.
Ejemplo 15.3 Dada la matriz rigidez del elemento finito nmero 1 como:
KEL()
F1
F2
F3
F4
F5
F6
F7

(8x8)

C1
5.2444E+04
2.0000E+04
-1.6444E+04
-4.0000E+03
-2.6222E+04
-2.0000E+04
-9.7778E+03

C2
2.0000E+04
7.4667E+04
4.0000E+03
2.1333E+04
-2.0000E+04
-3.7333E+04
-4.0000E+03

C3
-1.6444E+04
4.0000E+03
5.2444E+04
-2.0000E+04
-9.7778E+03
-4.0000E+03
-2.6222E+04

C4
-4.0000E+03
2.1333E+04
-2.0000E+04
7.4667E+04
4.0000E+03
-5.8667E+04
2.0000E+04

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

C5
-2.6222E+04
-2.0000E+04
-9.7778E+03
4.0000E+03
5.2444E+04
2.0000E+04
-1.6444E+04

C6
-2.0000E+04
-3.7333E+04
-4.0000E+03
-5.8667E+04
2.0000E+04
7.4667E+04
4.0000E+03

164

Captulo 15. Instrucciones para ensamblar y extraer matrices


F8

4.0000E+03

-5.8667E+04

F1
F2
F3
F4
F5
F6
F7
F8

C7
-9.7778E+03
-4.0000E+03
-2.6222E+04
2.0000E+04
-1.6444E+04
4.0000E+03
5.2444E+04
-2.0000E+04

C8
4.0000E+03
-5.8667E+04
2.0000E+04
-3.7333E+04
-4.0000E+03
2.1333E+04
-2.0000E+04
7.4667E+04

2.0000E+04

-3.7333E+04

-4.0000E+03

2.1333E+04

y la matriz de incidencias del problema,


INC()
F1
F2
F3
F4

(4x8)
C1
000
000
004
006

C2
000
001
005
007

C3
004
006
010
012

C4
005
007
011
013

C5
006
008
012
014

C6
007
009
013
015

C7
000
002
006
008

C8
001
003
007
009

ensamblar 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()
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15

(15x1)
C1
2.0000E+04
0.0000E+00
0.0000E+00
2.0000E+04
2.0000E+04
2.0000E+04
2.0000E+04
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00
0.0000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

165

PEFiCA Programa de elementos finitos a cdigo abierto

ENSAMX VG(), KE(), IFIL, ICOL, INC(), IELE

Argumento

Tipo de variable

VG()

Double (real)

VG()

Double (real)

KE()

Double (real)

IFIL

Integer (entero)

ICOL
INC()
IELE

Descripcin
Como parmetro de entrada corresponde al vector del
sistema antes de ensamblar el trmino de la matriz
elemental KE().
Como parmetro de salida corresponde a la matriz del
sistema despus de ensamblar la matriz elemental
KE().
Matriz elemental existente.

Nmero de fila del trmino KE(IFIL,ICOL).de la


matriz elemental que se desea ensamblar.
Nmero de fila del trmino KE(IFIL,ICOL).de la
Integer (entero)
matriz elemental que se desea ensamblar.
Matriz de incidencias (Seccin 3.4).
Integer (entero)
Nmero del elemento finito cuya matriz se desea
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 definidos de acuerdo con la numeracin de los valores nodales o grados de libertad del elemento. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
EXTRAV VG(), VE(), INC(), IELE, NGLE

Argumento

Tipo de variable

Descripcin

VG()

Double (real)

Vector existente del sistema.

VE()

Double (real)

Vector elemental que se desea crear.

INC()

Integer (entero)

IELE

NGLE

Matriz de incidencias (Seccin 3.4).


Nmero del elemento finito cuyo vector se desea
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
(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 elemental creado.
Cuando se define un valor de n para el parmetro NGLE, la instruccin extrae los primeros 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()
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16
F17
F18
F19
F20
F21
F22
F23
F24
F25
F26

(26x1)
C1
3.3141E-05
-1.6683E-05
5.3922E-05
-2.7864E-05
7.0790E-05
-3.4794E-05
8.6501E-05
-3.7790E-05
1.0246E-04
-3.8817E-05
1.1949E-04
-3.8941E-05
9.7604E-06
-6.7274E-05
3.5833E-05
-6.5668E-05
5.5388E-05
-6.6101E-05
7.1419E-05
-6.7600E-05
8.6328E-05
-6.8235E-05
1.0171E-04
-6.8530E-05
1.1872E-04
-6.8421E-05

y su respectiva matriz de incidencias,


INC()
F1
F2
F3
F4
F5
F6

(6x8)
C1
000
001
003
005
007
009

C2
000
002
004
006
008
010

C3
013
015
017
019
021
023

C4
014
016
018
020
022
024

C5
015
017
019
021
023
025

C6
016
018
020
022
024
026

C7
001
003
005
007
009
011

C8
002
004
006
008
010
012

se extrae el vector de desplazamientos del elemento nmero 1 ejecutando la siguiente 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

DEL() #1
F1
F2
F3
F4
F5
F6
F7
F8

(8x1)
C1
0.0000E+00
0.0000E+00
9.7604E-06
-6.7274E-05
3.5833E-05
-6.5668E-05
3.3141E-05
-1.6683E-05

En el vector DEL() los coeficientes de las filas 1 y 2 son iguales a cero porque los
dos primeros grados de libertad indicados en la matriz de incidencias INC() estn
numerados como cero.
Ejemplo 15.5 Dada el vector de desplazamientos de la estructura y la matriz de
incidencias del ejemplo anterior, se ejecuta la siguiente instruccin:
EXTRAV DGT(), DEL(), INC(), 3, 6

y se obtiene un vector DEL() de 6 filas que contiene los coeficientes del vector
DGT() en las filas 3,4,17,18,19 y 20, indicadas en las 6 primeras columnas de la fila
3 de la matriz de incidencias:

DEL() #3
F1
F2
F3
F4
F5
F6

(6x1)
C1
5.3922E-05
-2.7864E-05
5.5388E-05
-6.6101E-05
7.1419E-05
-6.7600E-05

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

167

Captulo 16
Instrucciones de organizacin de matrices
Este captulo describe las instrucciones dedicadas a ordenar los coeficientes de una matriz
de acuerdo con la numeracin de los grados de libertad, de los nudos o de los elementos del
problema.
Estas subrutinas tienen el prefijo OR y estn contenidas en el mdulo MdOR para facilitar
su ubicacin en el cdigo como lo indica la Tabla 2.15.

16.1. ORFUGL
Crea el vector de valores nodales de la estructura ordenado de acuerdo con la numeracin
de los grados de libertad a partir de la tabla de valores nodales ordenada por nudo.
Una tabla o matriz ordenada por nudos significa que cada fila contiene los valores nodales de los grados de libertad de un nudo especfico, por tanto, su tamao ser el nmero
nudos por el nmero de grados de libertad por nudo.
La importancia de la presentacin de los valores nodales de la estructura de dos formas
distintas esta motivado por las siguientes razones. Por un lado, en el sistema de ecuaciones
simultneas planteado para calcular los valores nodales de la forma K nglngl u ngl1 = f ngl1 ,
cada ecuacin esta asociada a un grado de libertad, por lo tanto el vector de trminos independientes y el vector solucin estn ordenados de acuerdo con la numeracin de los grados
de libertad. Por otra parte, es ms adecuado presentar los resultados nodales en una tabla
que indique en cada fila el valor nodal en los grados de libertad asociados a un nudo.
La Figura 16.1 muestra como ejemplo una malla de 8 nudos y 5 elementos de un problema de elasticidad bidimensional en el cual cada nudo tiene dos grados de libertad que
corresponden a los desplazamientos en x y en y. All se indica la tabla de valores ordenados por nudos de 8 por 2, como tambin el vector de valores nodales ordenados de acuerdo
con la numeracin de los grados de libertad de 16 por 1.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.

170

Captulo 16.

Instrucciones de organizacin de matrices

ORFUGL VGL(), VFU(), MGL()

Argumento

Tipo de variable

Descripcin
Vector creado de valores nodales ordenado de acuerdo con la numeracin de los grados de libertad. El
nmero de filas de este vector es igual al nmero de
nmero de nudos multiplicado por el nmero de graDouble (real)
dos de libertad por nudo, es decir, el producto entre el
nmero de filas y el nmero de columnas de la matriz
VFU().
Matriz o tabla existente de valores nodales ordenada
por nudos, donde cada fila contiene el valor nodal de
los grados de libertad de un nudo especfico (en elasDouble (real)
ticidad bidimensional, corresponde a la magnitud de
las fuerzas o desplazamientos FX, FY o UX, UY de
un nudo).
Matriz de numeracin de los grados de libertad por
Integer (entero)
nudo (Seccin 3.4).
Tabla 16.1. Sintaxis de la instruccin ORFUGL.

VGL()

VFU()

MGL()

12

14
11

16
13

206

15

207

# nudo

208
105

102

10
7

204

104

205
101

2
1
201

103

4
3
202

6
5
203

Notacin
v
# grado de libertad
u
# nudo
# elemento

201

202

203

204

205

10

206

11

12

207

13

14

208

15

16

tabla de valores nodales


ordenados por nudos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

vector de valores nodales


ordenados de acuerdo con la
numeracin de los grados de
libertad

Figura 16.1. Ordenamiento de los valores nodales para un problema de elasticidad bidimensional.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

171

PEFiCA Programa de elementos finitos a cdigo abierto

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

nudo

grado de libertad que


representa la fuerza o
el desplazamiento
nudo
en x
en y

fuerza nodal
en x
en y

Matriz o tabla de fuerzas ordenada


de acuerdo con la numeracin de
los nudos (existente)
F(01)
F(00)

02
F(13)
F(12)

08
F(00)
F(00)

01

F(03)=4.8
F(02)=1.5

03
F(15)
F(14)

09
F(05)
F(04)

04

F(11)=2.4
F(10)=2.3

07
F(19)
F(18)

11
F(07)
F(06)

05

grado de
libertad

fuerza
nodal

Matriz de la numeracin de los


grados de libertad por nudo
(existente)
F(17)=1.2
F(16)=-1.6

10

notacin
# grado de
libertad

F(21)
F(20)

F(11)=2.4
F(10)=2.3

12
F(09)
F(08)

06

magnitud de
la fuerza

07

# nudo

malla de
elementos finitos

Figura 16.2. Ejemplo de la instruccin ORFUGL.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

Vector de fuerzas
ordenadas segn la
numeracin de los
grados de libertad
(creado)

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

VFU()

VGL()
MGL()

Tipo de variable

Descripcin
Matriz o tabla creada de valores nodales ordenada por
nudos, donde cada fila contiene el valor nodal de los
grados de libertad de un nudo especfico (en elasticidad bidimensional, corresponde a la magnitud de las
Double (real)
fuerzas o desplazamientos FX, FY o UX, UY de un
nudo). El tamao de esta matriz es de nmero de
nudos por nmero de grados de libertad por nudo, lo
cual corresponde al tamao de la matriz MGLN().
Vector existente de valores nodales ordenado de
Double (real)
acuerdo con la numeracin de los grados de libertad.
Matriz de numeracin de los grados de libertad por
Integer (entero)
nudo (Seccin 3.4).
Tabla 16.2. Sintaxis de la instruccin ORGLFU.

La instruccin genera un error si el nmero de filas del vector VGL() es menor que el
mximo coeficiente de la matriz de grados de libertad por nudo MGL(), lo cual indicara la
inexistencia del valor nodal correspondiente a ese grado de libertad.
Si un coeficiente de la matriz de grados de libertad por nudo MGL() es igual a cero, se
desconoce la posicin del coeficiente correspondiente del vector VGL() en la matriz VFU(), y
por lo tanto no se considera tal trmino.
Ejemplo 16.2 Dado el vector de fuerzas nodales ordenadas de acuerdo con la numeracin de los grados de libertad FGL() y la matriz de la numeracin de los grados de libertad por cada nudo MGL() indicadas en la Figura 16.3, se obtiene la matriz de fuerzas nodales ordenada de acuerdo con la numeracin de los nudos FFU()
mediante la siguiente lnea de comando:
ORGLFU FFU(), FGL(), MGL()

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

173

PEFiCA Programa de elementos finitos a cdigo abierto

grado de fuerza
libertad
nodal

grado de libertad que


representa la fuerza o
el desplazamiento
nudo
en x
en y

nudo

fuerza nodal
en x
en y

mximo
coeficiente
de MGL()

Matriz o tabla de fuerzas


ordenada de acuerdo con la
numeracin de los nudos
(creada)

Matriz de numeracin de los


grados de libertad por nudo
(existente)
F(01)
F(00)

02

Vector de fuerzas
ordenado segn la
numeracin de los
grados de libertad
(existente)

F(13)
F(12)

08
F(00)
F(00)

01

F(03)=4.8
F(02)=1.5

03
F(15)
F(14)

09
F(05)
F(04)

04

F(11)=2.4
F(10)=2.3

07
F(19)
F(18)

11
F(07)
F(06)

05

F(17)=1.2
F(16)=-1.6

10
F(21)
F(20)

06

magnitud de
la fuerza

F(11)=2.4
F(10)=2.3

12
F(09)
F(08)

notacin

# grado de
libertad

07

# nudo

malla de
elementos finitos

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 calculados en los nudos de cada elemento. Cada coeficiente del vector de resultados nodales es
igual al promedio entre los valores calculados en el interior de los elementos que comparten
un mismo nudo.
Los resultados elementales son aquellos que han sido obtenidos en puntos especficos
del dominio de un elemento finito, a partir de las derivadas de las funciones de forma del
mismo. En los problemas de elasticidad, por ejemplo, el campo de las deformaciones se
calcula en un punto (x,y) en el interior del elemento e de la forma (( ex), y ) = B (( ex), y )u ( e ) donde
B (( ex), y ) = N (( ex), y ) es a la matriz de operadores diferenciales actuando sobre funciones de forma evaluada en el punto (x,y) del elemento e, y u (e ) corresponde el vector de desplazamiento del elemento e.
La cantidad presentada de forma elemental no muestra continuidad entre los elementos
a pesar de ser continua en el interior de cada uno.

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 lugares especiales del interior de un elemento, tales como los nudos, el centro o los puntos de
Gauss. Por lo tanto, en dicha matriz el nmero de filas es igual al nmero de elementos y
el nmero de columnas corresponde al nmero de puntos donde se evale la cantidad de
inters. Por ejemplo, la Figura 16.4 muestra una matriz de resultados elementales que contiene la deformacin lineal en y evaluada en los nudos de cada elemento rectangular bilineal.
elem.
(e )
x=
x

(e )
x=
x

nudo i

nudo j

nudo k

nudo l

(e )
x= x i

(e )
x=
x

(e )
x=
x

(e )
x=
x

(e )
x=
x

(e )
x= x j

(xe) ( e ) = B (xe) ( e ) u ( e )

(xe)( e ) = xx( e )

( e)
yy

yy( e ) xy( e ) ]x
T

(e)

( e)
x= x n

Figura 16.4. Matriz de resultados elementales: deformacin lineal en y evaluada en los nudos
de cada elemento rectangular bilineal.

Los resultados nodales corresponden a valores en los nudos de la malla que son interpolados en el interior de los elementos describiendo una funcin continua para toda la malla
(cuando la estructura modelada tiene un solo material). Por lo tanto, el nmero de filas del
vector de resultados nodales corresponde al nmero de nudos de la malla.
La ausencia de continuidad en los campos derivados de la funcin de aproximacin entre los elementos finitos, motiva el desarrollo de tcnicas de suavizado de funciones en la
malla de elementos finitos. Una de las formas ms sencillas consiste en utilizar el valor
promedio en cada nudo del valor calculado en los elementos finitos asociados a l. Por
ejemplo, la Figura 16.5 muestra una matriz de resultados nodales que contiene una componente de deformacin promedio en cada nudo.
nudo

3
( 3)
x=
x

(1)
x= x r

( 6)
x=
x

r =

valor

( 9)
x= x r

1
ne

ne

(e )

(e )
x=x r

( e ) x r

1 (1)
x = x r + x(9=)x r + x(3=)x r + x(6=)x r
4
Figura 16.5. Matriz de resultados nodales: deformacin promedio en cada nudo de una malla de
un solo material.

r =

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

175

PEFiCA Programa de elementos finitos a cdigo abierto

ORSONO MX(), MDT(), ELE(), NNUD

Argumento
MX()

MDT()

ELE()
NNUD

elemento

Tipo de variable

Descripcin
Vector creado que contiene los valores promedio en
Double (real)
los nudos (resultado nodal).
Matriz existente que contiene los valores en los nudos
de cada elemento (resultado elemental). Cada fila
Double (real)
contiene los valores en los nudos calculados con las
derivadas de las funciones de forma de los elementos.
Matriz de nudos asociados a cada elemento o matriz
Integer (entero)
de conectividades (Seccin 3.4).
Nmero de nudos del problema.
Integer (entero)
Tabla 16.3. Sintaxis de la instruccin ORSONO.
nudo i

nudo j

nudo k

elementos finitos que


comparten el nudo 86

matriz de conectividades
elemento

nudo i

nudo j

nudo k
nudo

calcular
promedio

esfuerzo
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 partir de la matriz o tabla de esfuerzos en los nudos de cada elemento SXX() y de la
matriz de conectividades ELE(). La lnea de comando utilizada es:
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

176

Captulo 16.

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 elementales calculados en los nudos de cada elemento. Cada columna de la matriz de resultados nodales contiene el promedio entre los valores calculados en el interior de los elementos asociados a un mismo nudo para un material especfico.
Los resultados nodales por material corresponden a valores en los nudos de la malla que
son interpolados en el interior de los elementos describiendo una funcin continua para
cada grupo de elementos finitos del mismo material. Por lo tanto, el nmero de filas de la
matriz de resultados nodales corresponde al nmero de nudos de la malla y el nmero de
columnas es el nmero de materiales del problema. Por ejemplo, la Figura 16.7 muestra
una matriz de resultados nodales por material que contiene una componente de deformacin
promedio en cada nudo para los materiales 1 y 2.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
ORSONM MX(), MDT(), ELE(), MAT(), NNUD, NMAT

Argumento

Tipo de variable

Descripcin
Matriz creada que contiene los valores promedio entre
los nudos (resultado nodal) de un mismo material.
Cada columna contiene los resultados nodales para un
material especfico.
Matriz existente que contiene los valores en los nudos
de cada elemento (resultado elemental). Cada fila
contiene los valores en los nudos calculados con las
derivadas de las funciones de forma de los elementos.
Matriz de nudos asociados a cada elemento o matriz
de conectividades (Seccin 3.4).
Vector de tipo de material por elemento. Cada fila
contiene un cdigo que indica el tipo de material
asociado a cada elemento.
Nmero de nudos del problema.

MX()

Double (real)

MDT()

Double (real)

ELE()

Integer (entero)

MAT()

Integer (entero)

NNUD

Integer (entero)

NMAT

Integer (entero)
Nmero de materiales del problema.
Tabla 16.4. Sintaxis de la instruccin ORSONM.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

177

PEFiCA Programa de elementos finitos a cdigo abierto

material 1

material 2

nudo

deformacin
mat. 2
mat. 1

rm =1

r
( 3)
xx=
=x

(1)
xx=
=xr

( 6)
xx=
=x

rm = 2

( 9)
xx=
=xr

1 ne ( e )
x=x r ( e) x r (e ) ( m)
ne ( e )
1
rm =1 = x(1=)x r + x(3=)x r
2

rm =

) (

1 ( 6)
x = x r + x(9=)x r
2
Figura 16.7. Matriz de resultados nodales: deformacin promedio en cada nudo de una malla de
varios materiales.

rm =1 =

Ejemplo 16.4 Construir la matriz de esfuerzos nodales por material TAS() a partir
de la matriz o tabla de esfuerzos en los elementos TAO(), la matriz de conectividades ELE() y la matriz de materiales MAT(). La lnea de comando utilizada es la siguiente:
ORSONM TAS(), TAO(), ELE(), MAT(), NNUD, NMAT

La Figura 16.8 describe la obtencin del esfuerzo promedio en el nudo 313 para el
material tipo 1. Tal valor es calculado a partir de los esfuerzos en los elementos
653 y 661, los cuales estn conectados al nudo 313 y asociados al material 1.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

178

Captulo 16.

elemento

nudo i

nudo j

nudo k

elemento

Instrucciones de organizacin de matrices

material

material 1
653
661
313
5

16

39
material 2

elementos finitos que


comparten el nudo 313
matriz de materiales
en los elementos

matriz de conectividades
elemento

nudo i

nudo j

esfuerzo promedio

nudo k
nudo

calcular
promedio

material 1

material 2

vector de esfuerzos
promedio en los nudos
(resultado nodal)

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 siguiente:

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

179

PEFiCA Programa de elementos finitos a cdigo abierto

ORNUDE NLE(), ELE(), NNUD, 4


ORNUDE MX(), ELE(), NNUD, NMAE

Argumento

Tipo de variable

Descripcin

MX()

Integer (entero)

ELE()

Integer (entero)

NNUD

Matriz creada de elementos asociados a cada nudo.


Matriz existente de nudos asociados a cada elemento
o matriz de conectividades (Seccin 3.4).
Nmero de nudos del problema.

Integer (entero)
Optional Integer
Cantidad mxima de elementos asociados a un mismo
(argumento opcional
nudo. Su valor por defecto es NMAE =10
tipo entero)
Tabla 16.5. Sintaxis de la instruccin ORNUDE.

NMAE

elemento

nudo i

nudo j

nudo k

nudo l

matriz de nudos asociados a cada elemento o


matriz de conectividades
06

03
02

04

01

01

06

05

02

12

09

11

08
03

04

05

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
lista de nudos
de la lnea

nudo
inicial
matriz de coordenadas
en los nudos

lista de distancias entre el


nudo inicial y cada nudo
de la lnea

nudo
inicial

Figura 16.10. Ejemplo de la instruccin ORNLIN.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

181

PEFiCA Programa de elementos finitos a cdigo abierto

ORNLIN MX(), DX(), XYZ(), NINI,NFIN, TOL

Argumento

Tipo de variable

MX()

Integer (entero)

DX()

Double (real)

XYZ()

Double (real)

NINI

Integer (entero)

NFIN

Nmero del nudo final de la lnea


Integer (entero)
Optional Double
Tolerancia medida como un factor de la longitud del
(argumento opcional
segmento de lnea. Por defecto TOL=0.00.
tipo real)
Tabla 16.6. Sintaxis de la instruccin ORNLIN.

TOL

Descripcin
Vector creado que contiene el listado de nudos que
hacen parte de la lnea.
Vector creado que contiene el listado de distancias
entre el nudo inicial y cada uno de los nudos de la
lnea.
Matriz existente de coordenadas de los nudos (Seccin 3.4).
Nmero del nudo inicial de la lnea

16.7. ORNLIX
Construye una listado de los nudos que hacen parte de un segmento recto definido entre dos
puntos cuya posicin puede o no coincidir con los nudos de la malla. Tambin crea otra
lista con la distancia entre el punto inicial y cada uno de los nudos que componen la lnea.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
ORNLIX MX(), DX(), XYZ(), XLN(), TOL

Argumento

Tipo de variable

MX()

Integer (entero)

DX()

Double (real)

XYZ()

Double (real)

XLN()

Double (real)

TOL

Descripcin
Vector creado que contiene el listado de nudos que
hacen parte de la lnea.
Vector creado que contiene el listado de distancias
entre el nudo inicial y cada uno de los nudos de la
lnea.
Matriz existente de coordenadas de los nudos de la
malla (Seccin 3.4).
Matriz existente de coordenadas de los extremos del
segmento de lnea. La primera fila contiene las coordenadas x y y del punto inicial y la segunda fila las
coordenadas correspondientes del punto final.

Optional Double
Tolerancia medida como un factor de la longitud del
(argumento opcional
segmento de lnea. Por defecto TOL=0.00.
tipo real)
Tabla 16.7. Sintaxis de la instruccin ORNLIX.

Ejemplo 16.7 Dada la matriz de coordenadas XYZ(), crear el listado de los nudos
que hacen parte del segmento de lnea definido entre las coordenadas (0.00, 0.50) y
(0.00, 4.00). Adems, crear la lista de distancias entre el punto de coordenadas
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

182

Captulo 16.

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


nudo inicial y cada nudo
de la lnea

punto inicial
(0.00,0.50)

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

ORELIN MX(), DNU(), XYZ(), ELE(), NINI, NFIN, TOL, TP

Argumento

Tipo de variable

MX()

Integer (entero)

DNU()

Double (real)

XYZ()

Double (real)

ELE()

Integer (entero)

NINI

Integer (entero)

NFIN

Integer (entero)
Optional Double
(argumento opcional
tipo real)

TOL

TP

Descripcin
Matriz creada que contiene en la primera columna el
listado de los elementos que hacen parte de la lnea.
El contenido de la segunda columna depende del
parmetro TP.
Vector de distancias desde el nudo inicial del segmento hasta el nudo especificado en la segunda columna
de MX()
Matriz existente de coordenadas de los nudos (Seccin 3.4).
Matriz existente de nudos asociados a cada elemento
o matriz de conectividades (Seccin 3.4).
Nmero del nudo inicial de la lnea

Nmero del nudo final de la lnea


Tolerancia medida como un factor de la longitud del
segmento de lnea. Por defecto TOL=0.00.

Tipo de formato de salida:


Si TP=0, la columna 2 de la matriz MX() indica el
nmero del lado del elemento que pertenece a la lnea.
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.

Optional Integer
(argumento opcional
tipo entero)

Ejemplo 16.8 Dada la matriz de coordenadas XYZ(), crear el listado de los elementos y los nudos que hacen parte del segmento de lnea definido entre los nudos
25 y 17. Adems, crear la lista de distancias entre el nudo inicial 25 y cada uno de
los nudos que componen la lnea. La Figura 16.12 describe este ejemplo. La lnea
de comando utilizada es la siguiente:
ORELIN LEL(), DNU(), XYZ(), ELE(), 25, 17, 0, 1

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

183

184

Captulo 16.

nudo

coord. x

coord. y

elemento

nudo i

Instrucciones de organizacin de matrices

nudo j

nudo k

nudo
final

matriz de conectividades
nudo
final

nudo
inicial
matriz de coordenadas
en los nudos
elemento

nudo

distancia

lnea

lista de nudos
de la lnea

lista de distancias
entre el nudo inicial y
cada nudo de la lnea

nudo
inicial

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

185

PEFiCA Programa de elementos finitos a cdigo abierto

nudo

coord. x

coord. y

elemento

nudo j

nudo i

nudo k

matriz de conectividades
punto final
(0.00,4.00)
matriz de coordenadas
en los nudos

nudo k
lado 3

matriz de coordenadas en los


extremos del segmento de lnea
nudo i
(inicial)
elemento

lado

lado 2
elemento

lado 1

indicador del
nudo inicial i

nudo j

lnea

lista de nudos
de la lnea

punto inicial
(0.00,0.50)

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

MX()

Integer (entero)

XYZ()

Double (real)

ELE()

Integer (entero)

XLN()

Double (real)

TOL

16.10.

Descripcin
Matriz creada que contiene el listado de los elementos
y su lado respectivo que hacen parte de un segmento
de lnea. La primera columna contiene el nmero del
elemento y la segunda indica el nmero del lado.
Matriz existente de coordenadas de los nudos (Seccin 3.4).
Matriz existente de nudos asociados a cada elemento
o matriz de conectividades (Seccin 3.4).
Matriz existente de coordenadas de los extremos del
segmento de lnea. La primera fila contiene las coordenadas x y y del punto inicial y la segunda fila las
coordenadas correspondientes del punto final.

Optional Double
Tolerancia medida como un factor de la longitud del
(argumento opcional
segmento de lnea. Por defecto TOL=0.00.
tipo real)
Tabla 16.9. Sintaxis de la instruccin ORELIX.

ORXYNU

Extrae de la matriz de coordenadas o de cualquier matriz de resultados nodales, los respectivos valores para los nudos relacionados en un vector o lista predefinida. Crea una matriz
o tabla donde el nmero de filas corresponde con el nmero de filas de la lista de nudos y el
nmero de columnas coincide con el nmero de columnas de la matriz de coordenadas o de
valores nodales.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
ORXYNU MX(), XYZ(), LNU()

Argumento
MX()
XYZ()
LNU()

Tipo de variable

Descripcin
Matriz creada que contiene las coordenadas o los
resultados nodales en los nudos que hacen parte de la
Double (real)
lista LNU()
Matriz existente de coordenadas de los nudos o de
Double (real)
valores nodales (Seccin 3.4).
Integer (entero)
Vector existente que contiene una lista de nudos.
Tabla 16.10. Sintaxis de la instruccin ORXYNU.

Ejemplo 16.10 Extraer los valores nodales de esfuerzo de la tabla NXX() para los
nudos de la lista LNU() , y guardarlos en la tabla NAB().

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

187

PEFiCA Programa de elementos finitos a cdigo abierto

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 archivo plano cuyo formato es el siguiente:

La primera lnea indica el nmero de filas y el nmero de columnas de la matriz almacenada separados por coma.

La segunda lnea contiene los coeficientes de la fila nmero 1 de la matriz almacenada separados entre s por comas.

Las lneas siguientes contienen los coeficientes de las filas sucesivas de la matriz.

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 coeficientes de la matriz incluida en la hoja de clculo de Microsoft Excel y mostrada en la
Figura 17.1(a). La Tabla 2.16 resume el objetivo de las instrucciones de este captulo.

190

Captulo 17.

Instrucciones para importar y exportar matrices

nombre del
archivo

nmero de columnas
columna #1

nmero de filas,
nmero de columnas

columna #1

columna #2

columna #2

nmero
de filas
fila #1

nombre de
la matriz
fila #1

fila #23
(b) Archivo plano visualizado desde el Bloc de
notas de Microsoft Windows
fila #23

(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

MX()

Double (real)

FILE

Descripcin

Matriz real existente.


Nombre del archivo sin extensin que contendr a la
matriz MX(). Este archivo estar ubicado en la carpeta
String (caracteres)
del libro de Excel desde donde se ejecute la instruccin. La extensin del archivo ser asignada automticamente como .txt.
Tabla 17.1. Sintaxis de la instruccin IOEXPR.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

191

PEFiCA Programa de elementos finitos a cdigo abierto

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 formato indicado en la Figura 17.1(b). La sintaxis de la instruccin y la descripcin de sus
respectivos argumentos se presentan a continuacin.
IOEXPI MX(), FILE

Argumento Tipo de variable Descripcin


MX()

FILE

Integer (entera)

Matriz entera existente.


Nombre del archivo sin extensin que contendr a la matriz
String (caracteMX(). Este archivo estar ubicado en la carpeta del libro de
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 instruccin indicada a continuacin construye el archivo ELE.txt que contiene los coeficientes 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 almacena un coeficiente por lnea.

Los coeficientes son cantidades enteras las cuales se escriben sin un formato especfico.

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

MX()

Integer(entera)

FILE

Descripcin

Vector existente.
Nombre del archivo sin extensin que contendr a la
matriz MX(). Este archivo estar ubicado en la carpeta
String (caracteres)
del libro de Excel desde donde se ejecute la instruccin. La extensin del archivo ser asignada automticamente como .txt.
Tabla 17.3. Sintaxis de la instruccin IOEXPD.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

193

PEFiCA Programa de elementos finitos a cdigo abierto

Ejemplo 17.3 Dado el vector de parmetros grficos GRA(), la instruccin indicada a continuacin construye el archivo GRA.txt que contiene los coeficientes del
vector existente.
IOEXPD GRA(),"GRA"

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

MX()

Double (real)

FILE

ILD

Descripcin

Matriz real existente.


Nombre del archivo sin extensin que contendr a la
matriz MX(). Este archivo estar ubicado en la carpeta
del libro de Excel desde donde se ejecute la instruccin.
String (caracteres)
El nombre del archivo se completa con el nmero del
paso ILD en formato 000 seguido de la extensin .txt.
Nmero del paso de carga (o de pseudo-tiempo).
Integer (entera)
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 presentan a continuacin.
IOEXPT TITU, FILE

Argumento

Tipo de variable

TITU

String (caracteres)

FILE

Descripcin

Cadena de caracteres existente.


Nombre del archivo sin extensin que contendr la
cadena de caracteres TITU. Este archivo estar ubicaString (caracteres)
do en la carpeta del libro de Excel desde donde se
ejecute la instruccin. El nombre del archivo se completa 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 definidas. La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan a continuacin.
PBDEMR MX(), NF, NC

Argumento
MX()
NF
NC

Tipo de variable

Descripcin
Parmetro de entrada que corresponde a la matriz real
Double (real)
existente de dimensiones definidas M.
Parmetro de salida que indica el nmero de filas de
Integer (entero)
la matriz M.
Parmetro de salida que indica el nmero de columInteger (entero)
nas de la matriz M.
Tabla 18.1. Sintaxis de la instruccin PBDEMR.

18.2. PBDEMI
Extrae el nmero de filas y de columnas de una matriz entera existente con dimensiones
definidas. La sintaxis de la instruccin se indica en la Tabla 18.2.

18.3. PBATRI
Calcula el rea de un triangulo a partir de las coordenadas de sus extremos. La sintaxis de
la funcin y la descripcin de sus respectivos argumentos se presentan en la Tabla 18.3.

196

Captulo 18.

Instrucciones internas de uso comn

PBDEMI MX(), NF, NC

Argumento
MX()
NF
NC

Tipo de variable

Descripcin
Parmetro de entrada que corresponde a la matriz
Integer (entero)
entera existente de dimensiones definidas M.
Parmetro de salida que indica el nmero de filas de
Integer (entero)
la matriz M.
Parmetro de salida que indica el nmero de columInteger (entero)
nas de la matriz M.
Tabla 18.2. Sintaxis de la instruccin PBDEMI.
[variable]= PBATRI(X(), Y())

Argumento

Tipo de variable

X()

Double (real)

Y()

Double (real)

PBATRI

Double (real)

Descripcin
Vector que contiene las coordenadas x de los extremos del triangulo: X(1), X(2), X(3).
Vector que contiene las coordenadas y de los extremos del triangulo: Y(1), Y(2), Y(3).
rea del triangulo definido por las coordenadas X(),
Y()

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)

PBDIST

Nmero del nudo final que define el segmento.


Longitud del segmento recto definido entre los nudos
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

197

PEFiCA Programa de elementos finitos a cdigo abierto

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

TP

Integer (entero)

PBCOSD

Double (real)

Si TP=0, PBCOSD contiene la componente en


direccin x del vector unitario nx = cos( ) .
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


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 coeficientes de la diagonal superior convirtindola en una matriz simtrica.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
PBDIAG MX(), NF

Argumento
MX()

MX()
NF

Tipo de variable

Descripcin
Como parmetro de entrada corresponde a la matriz
cuadrada existente con coeficientes definidos en la
Double (real)
diagonal superior.
Como parmetro de salida corresponde a la matriz
Double (real)
simtrica la cual se construye llenando los coeficientes de la diagonal inferior.
Parmetro de entrada que indica el nmero de filas de
Integer (entero)
la matriz.
Tabla 18.6. Sintaxis de la instruccin PBDIAG.

18.7. PBCOEL
Calcula cuatro factores de elasticidad para condicin plana de esfuerzos y plana de deformaciones tiles en el clculo de la matriz de rigidez de los elementos de elasticidad plana.
Se definen E1, E2, E3 y E4 como factores de elasticidad en condicin plana de esfuerzos, de
la forma:

E1 =

(1 )
(1 2 )

, E2 =

1
(1 2 )

, E3 =

1
, E 4 = (1 + )
2

(18.1)

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.

E1 = 1 , E 2 =

, E3 =

(1 )
2

Instrucciones internas de uso comn

, E 4 = (1 2 )

(18.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

TP

Integer (entero)

NU

Double (real)

Si TP=0, calcula los factores para una condicin


plana de esfuerzos.
Si TP=1, calcula los factores para una condicin
plana de deformaciones.
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

Double (real)

Escalar que se desea redondear

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

199

PEFiCA Programa de elementos finitos a cdigo abierto

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)

NCAL
PBDINU

18.10.

Nmero del nudo final que define el segmento.


Nmero del nudo desde donde se mide la distancia al
Integer (entero)
segmento.
Distancia entre el nudo NCAL y el segmento recto
Double (real)
definido entre NINI y NFIN.
Tabla 18.9. Sintaxis de la instruccin PBDINU.

PBPGAU

Construye una tabla que contiene las constantes de ponderacin en el mtodo de integracin numrica de la cuadratura de Gauss (Zienkiewicz 1980; Cook, Malkus et al. 1989;
Hughes 2000). La sintaxis de la funcin y la descripcin de sus respectivos argumentos se
presentan a continuacin.
PBPGAU NPUN, NDIM, MX()

Argumento
NPUN
NDIM
MX()

Tipo de variable

Descripcin
Nmero de puntos de Gauss sobre una direccin. La
Integer (entero)
instruccin considera 3 puntos como mximo.
Nmero de dimensiones del problema. La instruccin
Integer (entero)
considera 2 dimensiones como mximo.
Tabla de constantes de ponderacin en la integracin
Double (real)
numrica de la cuadratura de Gauss.
Tabla 18.10. Sintaxis de la instruccin PBPGAU.

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 lenguaje de programacin y fuera del entorno de Microsoft Excel. Por lo tanto, al ser una
programa previamente compilado, el usuario no tiene acceso a sus las lneas de cdigo.
En contrava con la filosofa del programa PEFiCA, est grupo de instrucciones son las
nicas que no presentan un cdigo abierto.
Archivo

GRAGEO GRAFIF GRAFIE GRAFIM GRAMAT


Contenido
Matriz de coordenaXYZ.txt





das de los nudos.
Matriz de conectiviELE.txt





dades.
Vector de tipo de
MAT.txt





material.
Vector de resultados
FIF.txt





nodales.
Vector de resultados
FIE.txt





elementales.
Matriz de parmeGRA.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 especial adjunta al programa denominado PEFI-Graf 1.0 la cual genera diferentes tipos de
grficos a partir de los resultados en los nudos o en los elementos de la malla.
Para utilizar dicha aplicacin es necesario que el archivo ejecutable PEFIGRAF.exe est
ubicado en la misma carpeta donde se encuentre el libro de Microsoft Excel con las rutinas
del programa. Los datos de entrada son archivos de texto que contienen la topologa y los
resultados de la malla de elementos finitos, como se indica en la Tabla 19.1.
A excepcin de GRA.txt, los archivos de texto deben mantener la siguiente estructura
para que sean ledos por el programa PEFI-Graf 1.0, (Figura 19.1):

202

Captulo 19.

Instrucciones grficas

nmero de columnas
nmero
de filas
fila 1

fila 12

columna 1

columna 2

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 parmetros.
El primer coeficiente de la matriz de parmetros grficos identifica el tipo de resultado
que se desea dibujar seleccionado de la Tabla 19.3.
En la Tabla 19.2, los cdigos que determinan el color de una propiedad estn definidos
por el formato de color de Microsoft Basic presentado en la Tabla 19.4. Este formato utiliza 16 colores presentados como nmeros enteros entre 0 y 15.
Estas subrutinas tienen el prefijo GRA y estn contenidas en el mdulo MdGRA para facilitar su ubicacin en el cdigo como lo indica la Tabla 2.20.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

203

PEFiCA Programa de elementos finitos a cdigo abierto

Coeficiente
de la matriz

Posicin en
el archivo
(# lnea)

Valor por
defecto

Descripcin

Identificador del tipo de grfico (Tabla 19.3).


Color del fondo de la ventana grfica (Tabla
GRA(2,1)
2
0
19.4).
Color de las etiquetas de numeracin de nudos
GRA(3,1)
3
15
y elementos (Tabla 19.4).
GRA(4,1)
4
12
Color de los nudos de la malla (Tabla 19.4).
Color de las lneas de delimitan a los elemenGRA(5,1)
5
14
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.
Nmero de iso lneas dibujadas (mltiplo de
GRA(8,1)
8
40
4).
Nmero de etiquetas de las iso-lneas dibujaGRA(9,1)
9
20
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 elementos.
Nmero del ltimo elemento numerado.
Si GRA(13,1)=-1 se numeran todos los
elementos.
GRA(13,1)
13
-1
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.
Si GRA(14,1)=0 se utiliza la escala rojoGRA(14,1)
14
0
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.
GRA(1,1)

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

204

Captulo 19.

GRA(1,1)

Instrucciones grficas

Tipo de grfico

Nudos.

Nudos y elementos.
Resultado nodal de una funcin de aproximacin con isolneas.
Resultado elemental constante de una funcin de aproximacin con iso-lneas.
Resultado nodal de una funcin de aproximacin con regiones llenas.
Resultado elemental de la derivada de una funcin de
aproximacin con regiones llenas.
Resultado nodal por material de una funcin de aproximacin con iso-lneas.
Resultado nodal por material de una funcin de aproximacin con regiones llenas.
Tabla 19.3. Identificador del tipo de grfico.

3
4
6
7
8
9

Color

Nmero

Negro

Gris

Azul

Azul claro

Verde

Verde claro

10

Aguamarina

Aguamarina claro

11

Rojo

Rojo claro

12

Fucsia

Fucsia claro

13

Amarillo

Amarillo claro

14

Blanco

Color

7
Blanco brillante
Tabla 19.4. Formato de color de Microsoft Basic.

Nmero

15

19.1. GRAFDE
Crea la matriz de parmetros grficos con los valores por defecto de cada uno de los coeficientes indicados en la tercera columna de la Tabla 19.2. La sintaxis de la instruccin y la
descripcin de sus respectivos argumentos se presentan a continuacin.
GRAFDE GRA()

Argumento
GRA()

Tipo de variable

Descripcin
Matriz de parmetros grficos creada con los valores
Integer (entero)
por defecto definidos en la Tabla 19.2.
Tabla 19.5. Sintaxis de la instruccin GRAFDE.

19.2. GRAFIL
Crea un archivo GRA.TXT que contiene los parmetros grficos almacenados en un vector
existente GRA().
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

205

PEFiCA Programa de elementos finitos a cdigo abierto

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


a continuacin.
GRAFIL GRA()

Argumento

Tipo de variable

Descripcin

GRA()

Matriz existente que contiene los parmetros grficos.


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

TG

TITU

Matriz de parmetros grficos (Tabla 19.2).


Identificador del tipo de grfico.
Optional Integer (ar- Si TG=1 dibuja los nudos de la malla.
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 (arTtulo de la ventana del grfico. Si se omite este pagumento opcional tipo rmetro la ventana tendr un ttulo por defecto relacadena de caracteres) cionado con la grfica presentada.
Tabla 19.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 finitos, b) los nudos y los elementos de la malla, indicando el nudo inicial de cada elemento. Los coeficientes de la matriz de parmetros grficos son:
GRA()

(16x1)
C1

F1

003

F2
F3
F4
F5
F6
F7

015
000
012
000
000
000

Tipo de grfico (ser asignado en la instruccin GRAGEO de


acuerdo con el valor de TG).
Color del fondo de la ventana grfica = blanco brillante.
Color de las etiquetas de numeracin = negro.
Color de los nudos de la malla = rojo claro.
Color de las lneas de delimitan a los elementos = negro.
Tipo de puntero.
Estado de la ventana = normal

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

206

Captulo 19.
F8
F9

040
020

F10

-001

F11

-001

F12

-001

F13

-002

F14

000

Instrucciones grficas

Nmero de iso-lneas dibujadas (no aplica)


Nmero de etiquetas de las iso-lneas dibujadas (no aplica)
Nmero del primer nudo numerado = se numeran todos los
nudos.
Nmero del ltimo nudo numerado = se numeran todos los
nudos.
Nmero del primer elemento numerado = se numeran todos
los elementos.
Nmero del ltimo elemento numerado = se numeran todos
los elementos e indica la direccin del nudo inicial.
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 instruccin:
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)

MAT()
GRA()
COL()
TITU

Matriz de conectividades.
Matriz de tipo de material por elemento u otra variaInteger (entero)
ble entera definida por cada elemento.
Matriz de parmetros grficos (Tabla 19.2).
Integer (entero)
Tabla de colores por cada valor entero de MAT() forInteger (entero)
mato RGB.
Optional String (arTtulo de la ventana del grfico. Si se omite este pagumento opcional tipo rmetro la ventana tendr un ttulo por defecto relacadena de caracteres) cionado con la grfica presentada.
Tabla 19.8. Sintaxis de la instruccin GRAMAT.

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 elementos diferenciados por su tipo de material. Los coeficientes de la matriz de parmetros grficos son:
GRA()

(16x1)
C1

F1

003

F2
F3
F4
F5
F6
F7
F8
F9

015
000
000
000
000
000
040
020

F10

000

F11

000

F12

000

F13

000

Tipo de grfico (ser asignado en la instruccin GRAMAT de


acuerdo con el valor de TG).
Color del fondo de la ventana grfica = blanco brillante.
Color de las etiquetas de numeracin = negro.
Color de los nudos de la malla = negro.
Color de las lneas de delimitan a los elementos = negro.
Tipo de puntero.
Estado de la ventana = normal
No aplica
No aplica
Nmero del primer nudo numerado = no se numeran los
nudos.
Nmero del ltimo nudo numerado = no se numeran los
nudos.
Nmero del primer elemento numerado = no se numeran los
elementos.
Nmero del ltimo elemento numerado = no se numeran los

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

208

Captulo 19.

F14

000

Instrucciones grficas

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

GRAFIF XYZ(), ELE(), FIF(), GRA(), TG, TITU

Argumento

Tipo de variable

Descripcin

XYZ()

Double (real)

Matriz de coordenadas de los nudos.

ELE()

Integer (entero)

FIF()
GRA()

TG

TITU

Matriz de conectividades.
Vector de valores nodales. Indica la cantidad de inteDouble (real)
rs en cada nudo que se desea dibujar.
Integer (entero)
Matriz de parmetros grficos (Tabla 19.2).
Identificador del tipo de grfico.
Si TG=3 dibuja los resultados nodales con isoOptional Integer (arlneas (por defecto).
gumento opcional tipo

Si TG=6 dibuja los resultados nodales con regioentero)


nes llenas.
En la rutina se asigna a GRA(1,1)=TG
Optional String (arTtulo de la ventana del grfico. Si se omite este pagumento opcional tipo rmetro la ventana tendr un ttulo por defecto relacadena de caracteres) cionado con la grfica presentada.
Tabla 19.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 definidos por el vector de la componente xx esfuerzos promedio en los nudos NXX(), presentado de dos formas distintas: a) mediante iso-lneas , b) mediante regiones llenas. Los coeficientes de la matriz de parmetros grficos GRA() son:
GRA()

(16x1)
C1

F1

003

F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12

015
000
012
000
000
000
040
020
-001
-001
-001

F13

-002

F14

000

Tipo de grfico (ser asignado en la instruccin GRAFIF de acuerdo con el


valor de TG).
Color del fondo de la ventana grfica = blanco brillante.
Color de las etiquetas de numeracin = negro.
Color de los nudos de la malla = rojo claro.
Color de las lneas de delimitan a los elementos = negro.
Tipo de puntero.
Estado de la ventana = normal
Nmero de iso-lneas dibujadas
Nmero de etiquetas de las iso-lneas dibujadas
Nmero del primer nudo numerado = se numeran todos los nudos.
Nmero del ltimo nudo numerado = se numeran todos los nudos.
Nmero del primer elemento numerado = se numeran todos los elementos.
Nmero del ltimo elemento numerado = se numeran todos los elementos,
sin embargo para GRAFIF no se indica la direccin del nudo inicial.
Indicador del tipo de gama de tonos para los resultados = escala rojoamarillo-verde-cian-azul.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

209

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 resultados nodales de cada material por separado.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GRAFIM XYZ(), ELE(), MAT(),FIF(), GRA(), TG, TITU

Argumento

Tipo de variable

Descripcin

XYZ()

Double (real)

Matriz de coordenadas de los nudos.

ELE()

Integer (entero)

Matriz de conectividades.

MAT()

Integer (entero)

FIF()
GRA()

TG

TITU

Vector de tipo material por elemento.


Matriz de resultados nodales por material.
Cada
Double (real)
columna contiene los resultados nodales para un material especfico.
Integer (entero)
Matriz de parmetros grficos (Tabla 19.2).
Identificador del tipo de grfico.
Si TG=8 dibuja los resultados nodales con isoOptional Integer (arlneas (por defecto).
gumento opcional tipo
Si TG=9 dibuja los resultados nodales con regioentero)
nes llenas.
En la rutina se asigna a GRA(1,1)=TG
Optional String (arTtulo de la ventana del grfico. Si se omite este pagumento opcional tipo rmetro la ventana tendr un ttulo por defecto relacadena de caracteres) cionado con la grfica presentada.
Tabla 19.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 conectividades ELE() y la matriz de materiales MAT(), dibujar los resultados nodales
por material en la malla definidos en el vector TAS(), presentado de dos formas distintas: a) mediante iso-lneas , b) mediante regiones llenas. Los coeficientes de la
matriz de parmetros grficos GRA() son:
GRA()

(16x1)
C1

F1

003

F2
F3
F4
F5
F6
F7
F8
F9
F10

015
000
000
000
000
000
040
020
000

Tipo de grfico (ser asignado en la instruccin GRAFIM de


acuerdo con el valor de TG).
Color del fondo de la ventana grfica = blanco brillante.
Color de las etiquetas de numeracin = negro.
Color de los nudos de la malla = negro.
Color de las lneas de delimitan a los elementos = negro.
Tipo de puntero.
Estado de la ventana = normal
Nmero de iso-lneas dibujadas
Nmero de etiquetas de las iso-lneas dibujadas
Nmero del primer nudo numerado = no se numeran los

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

212

Captulo 19.

F11

000

F12

000

F13

000

F14

000

Instrucciones grficas

nudos.
Nmero del ltimo nudo numerado = no se numeran los
nudos.
Nmero del primer elemento numerado = no se numeran los
elementos.
Nmero del ltimo elemento numerado = no se numeran los
elementos.
Indicador del tipo de gama de tonos para los resultados =
escala rojo-amarillo-verde-cian-azul.

Si se ejecuta la instruccin:
GRAFIM XYZ(), ELE(), MAT(), TAS(), GRA(), 8

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 materiales, los resultados nodales presentados sern diferentes, como se muestra en la Figura 19.6.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

213

PEFiCA Programa de elementos finitos a cdigo abierto

(a) malla de elementos


finitos

material 1
material 2

(b) resultado nodal por material dibujado


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.

(a) malla de elementos


finitos

material 1
material 2

Instrucciones grficas

(b) resultado nodal por material

material 1
material 2

(d) detalle de la
malla de
elementos finitos

(c) resultado nodal considerando un solo


material

(e) detalle del


resultado nodal
por material

(f) detalle del


resultado nodal
considerando
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

GRAFIE XYZ(), ELE(), FIE(), GRA(), TG, TITU

Argumento

Tipo de variable

Descripcin

XYZ()

Double (real)

Matriz de coordenadas de los nudos.

ELE()

Integer (entero)

FIE()
GRA()

TG

TITU

Matriz de conectividades.
Matriz de valores elementales. Indica la cantidad de
Double (real)
inters que se desea dibujar en cada elemento.
Integer (entero)
Matriz de parmetros grficos (Tabla 19.2).
Identificador del tipo de grfico.
Si TG=4 considera un valor constante de la cantidad de inters dentro del elemento. Tal valor se
toma de la primera columna de la matriz de valores elementales FIE() (por defecto).
Si TG=7 considera una variacin de la cantidad de
Optional Integer
inters dentro del elemento, definida por la inter(argumento opcional
polacin de los valores en los nudos mediante las
tipo entero)
funciones de forma. Requiere que cada fila de la
matriz de valores elementales contenga el valor de
la funcin de inters en los nudos de un elemento.
Esta opcin no es aplicable a elementos triangulares lineales, donde las derivadas de las funciones
de forma en su interior son constantes.
En la rutina se asigna a GRA(1,1)=TG
Optional String (arTtulo de la ventana del grfico. Si se omite este pagumento opcional tipo rmetro la ventana tendr un ttulo por defecto relacadena de caracteres) cionado con la grfica presentada.
Tabla 19.11. Sintaxis de la instruccin GRAFIE.

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

F1

003

F2
F3
F4
F5
F6
F7
F8
F9
F10

015
000
012
000
000
000
040
020
-001

Tipo de grfico (ser asignado en la instruccin GRAFIE de


acuerdo con el valor de TG).
Color del fondo de la ventana grfica = blanco brillante.
Color de las etiquetas de numeracin = negro.
Color de los nudos de la malla = rojo claro.
Color de las lneas de delimitan a los elementos = negro.
Tipo de puntero.
Estado de la ventana = normal
Nmero de iso-lneas dibujadas (no aplica)
Nmero de etiquetas de las iso-lneas dibujadas (no aplica)
Nmero del primer nudo numerado = se numeran todos los

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

215

216

Captulo 19.

F11

-001

F12

-001

F13

-001

F14

000

Instrucciones grficas

nudos.
Nmero del ltimo nudo numerado = se numeran todos los
nudos.
Nmero del primer elemento numerado = se numeran todos
los elementos.
Nmero del ltimo elemento numerado = se numeran todos
los elementos.
Indicador del tipo de gama de tonos para los resultados =
escala rojo-amarillo-verde-cian-azul.

Si se ejecuta la instruccin:

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

217

PEFiCA Programa de elementos finitos a cdigo abierto

19.8. GRATDE
Dibuja la malla de elementos finitos deformada de acuerdo con el vector de desplazamientos en los nudos para un problema de elasticidad bidimensional durante varios pasos de
carga. Previamente debe existir un archivo que contenga las coordenadas de los nudos de
la geometra deformada exagerada por cada paso de carga. Los nombres de los archivos
para los pasos de carga tendrn el siguiente formato: XYZ001.txt, XYZ002.txt,
XYZ003.txt , La instruccin IOELDR facilita la construccin de tales archivos.
Los desplazamientos reales son multiplicados por un factor de exageracin de tal forma
que la deformada de la estructura sea visible en la grfica.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GRATDE ELE(), GRA(), NULD

Argumento

Tipo de variable

Descripcin

ELE()

Integer (entero)

Matriz de conectividades.

GRA()

Integer (entero)

Matriz de parmetros grficos (Tabla 19.2).

NULD

Nmero de pasos de carga.


Integer (entero)
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
F1

050

F2
F3
F4
F5
F6
F7
F8
F9

015
000
012
000
000
000
040
020

F10

-001

F11

-001

F12

-001

F13

-001

F14

000

F15

005

F16

010

Tipo de grfico (ser asignado igual a 50 por la instruccin


GRATDE).
Color del fondo de la ventana grfica = blanco brillante.
Color de las etiquetas de numeracin = negro.
Color de los nudos de la malla = rojo claro.
Color de las lneas de delimitan a los elementos = negro.
Tipo de puntero.
Estado de la ventana = normal
Nmero de iso-lneas dibujadas (no aplica)
Nmero de etiquetas de las iso-lneas dibujadas (no aplica)
Nmero del primer nudo numerado = se numeran todos los
nudos.
Nmero del ltimo nudo numerado = se numeran todos los
nudos.
Nmero del primer elemento numerado = se numeran todos
los elementos.
Nmero del ltimo elemento numerado = se numeran todos
los elementos.
Indicador del tipo de gama de tonos para los resultados =
escala rojo-amarillo-verde-cian-azul.
Nmero de pasos de carga NULD
Tiempo de retraso entre pasos de carga en dcimas de segundo.

Si se ejecuta la instruccin: GRATDE ELE(), GRA(), NULD se activa una ventana grfica que muestra una animacin de la deformada de la estructura en cada paso de
carga con una diferencia de tiempo de 1 segundo. La Figura 19.9 presenta el final
de la animacin. Los coeficientes GRA(1,1) y GRA(15,1) toman un valor de 50 y
NULD respectivamente.

Figura 19.9. Ejemplo de la instruccin GRATDE. Grfico del ltimo paso de carga.

19.9. GRATFI
Dibuja los resultados nodales de una cantidad o funcin de aproximacin definida por el
vector de valores en los nudos durante varios pasos de carga (o de pseudo-tiempo en general). Previamente debe existir un archivo que contenga el vector de valores nodales por
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

219

PEFiCA Programa de elementos finitos a cdigo abierto

cada paso de carga. Los nombres de los archivos para los pasos de carga tendrn el siguiente formato: FIF001.txt, FIF002.txt, FIF003.txt , La instruccin IOELDR facilita la construccin de tales archivos.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GRATFI ELE(), GRA(), NULD, TG

Argumento

Tipo de variable

Descripcin

ELE()

Integer (entero)

Matriz de conectividades.

GRA()

Integer (entero)

Matriz de parmetros grficos (Tabla 19.2).

NULD

Integer (entero)

TG

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.
(argumento opcional

Si
TG=53 grfico de regiones llenas, considerando
tipo entero)
el rango de valores de cada paso.
Si TG=54 grfico de regiones llenas, considerando
el rango de valores comn para todos los pasos de
carga.
En la rutina se asigna a GRA(1,1)=TG
Tabla 19.13. Sintaxis de la instruccin GRATFI.

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 componente 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

F1

051

F2

015

Tipo de grfico (ser asignado en la instruccin GRATFI de


acuerdo con el valor de TG).
Color del fondo de la ventana grfica = blanco brillante.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

220

Captulo 19.
F3
F4
F5
F6
F7
F8
F9

000
012
000
000
000
040
020

F10

-001

F11

-001

F12

-001

F13

-001

F14

000

F15

005

F16

010

Instrucciones grficas

Color de las etiquetas de numeracin = negro.


Color de los nudos de la malla = rojo claro.
Color de las lneas de delimitan a los elementos = negro.
Tipo de puntero.
Estado de la ventana = normal
Nmero de iso-lneas dibujadas.
Nmero de etiquetas de las iso-lneas dibujadas.
Nmero del primer nudo numerado = se numeran todos los
nudos.
Nmero del ltimo nudo numerado = se numeran todos los
nudos.
Nmero del primer elemento numerado = se numeran todos
los elementos.
Nmero del ltimo elemento numerado = se numeran todos
los elementos.
Indicador del tipo de gama de tonos para los resultados =
escala rojo-amarillo-verde-cian-azul.
Nmero de pasos de carga NULD
Tiempo de retraso entre pasos de carga en dcimas de segundo.

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

221

PEFiCA Programa de elementos finitos a cdigo abierto

19.10.

GRATFE

Dibuja los resultados elementales de una cantidad o funcin de aproximacin definida por
el vector de valores en los elementos durante varios pasos de carga (o de pseudo-tiempo en
general). Previamente debe existir un archivo que contenga el vector de valores elementales por cada paso de carga. Los nombres de los archivos para los pasos de carga tendrn el
siguiente formato: FIE001.txt, FIE002.txt, FIE003.txt , La instruccin IOELDR
facilita la construccin de tales archivos.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GRATFE ELE(), GRA(), NULD, TG

Argumento

Tipo de variable

Descripcin

ELE()

Integer (entero)

Matriz de conectividades.

GRA()

Integer (entero)

Matriz de parmetros grficos (Tabla 19.2).

NULD

Integer (entero)

TG

Nmero de pasos de carga.


Identificador del tipo de grfico.
Si TG=55 grfico de regiones llenas, considerando
el rango de valores de cada paso (por defecto).
Optional Integer
(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 componente 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()

F1

(16x1)
C1
051

Tipo de grfico (ser asignado en la instruccin GRATFE de


acuerdo con el valor de TG).

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

222

Captulo 19.
F2
F3
F4
F5
F6
F7
F8
F9

015
000
012
000
000
000
040
020

F10

-001

F11

-001

F12

-001

F13

-001

F14

000

F15

005

F16

010

Instrucciones grficas

Color del fondo de la ventana grfica = blanco brillante.


Color de las etiquetas de numeracin = negro.
Color de los nudos de la malla = rojo claro.
Color de las lneas de delimitan a los elementos = negro.
Tipo de puntero.
Estado de la ventana = normal
Nmero de iso-lneas dibujadas (no aplica)
Nmero de etiquetas de las iso-lneas dibujadas (no aplica)
Nmero del primer nudo numerado = se numeran todos los
nudos.
Nmero del ltimo nudo numerado = se numeran todos los
nudos.
Nmero del primer elemento numerado = se numeran todos
los elementos.
Nmero del ltimo elemento numerado = se numeran todos
los elementos.
Indicador del tipo de gama de tonos para los resultados =
escala rojo-amarillo-verde-cian-azul.
Nmero de pasos de carga NULD
Tiempo de retraso entre pasos de carga en dcimas de segundo.

Si se ejecuta la instruccin:
GRATFE ELE(), GRA(), NULD, 56

se activa una ventana grfica que muestra una animacin del esfuerzo xx en el interior de los elementos de la estructura para cada paso de carga con una diferencia
de tiempo de 1 segundo. La Figura 19.13 presenta el final de la animacin. Los
coeficientes GRA(1,1) y GRA(15,1) toman un valor de 56 y NULD respectivamente.

Figura 19.13. Ejemplo de la instruccin GRATFE. Grfico del ltimo paso de carga.

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 elementos finitos de una regin especificada. Dichas subrutinas estn ubicadas en el mdulo
MdGE como lo indica la Tabla 2.17.

20.1. GEMARE
Genera una malla de elementos finitos rectangulares en una regin en forma de rectangular.
Crea la matriz de coordenadas de los nudos y la matriz de conectividades de los elementos
de la malla construida.
La sintaxis de la instruccin y la descripcin de sus respectivos argumentos se presentan
a continuacin.
GEMARE GEM(), XYZ(), ELE(), NNUD, NELE, NNUE, NDIM

Argumento
GEM()
XYZ()
ELE()
NNUD
NELE
NNUE
NDIM

Tipo de variable

Descripcin
Matriz que contiene los parmetros de generacin de
Double (real)
la malla indicados en la Tabla 20.1 (argumento de
entrada).
Matriz de coordenadas de los nudos de la malla (arDouble (real)
gumento de salida).
Matriz de conectividades de los elementos de la malla
Integer (entero)
(argumento de salida).
Integer (entero)
Nmero de nudos de la malla (argumento de salida).
Nmero de elementos finitos de la malla (argumento
Integer (entero)
de salida).
Nmero de nudos asociados a un elemento finito
Integer (entero)
(argumento de salida).
Nmero de dimensiones del problema (argumento de
Integer (entero)
salida).
Tabla 20.1. Sintaxis de la instruccin GEMARE.

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
de la matriz

Descripcin

Coordenada x del extremo inferior izquierdo de la regin


rectangular que se desea enmallar.
Coordenada
y del extremo inferior izquierdo de la regin
GEM(2,1)
rectangular que se desea enmallar.
Coordenada x del extremo superior derecho de la regin
GEM(3,1)
rectangular que se desea enmallar.
Coordenada
y del extremo superior derecho de la regin
GEM(4,1)
rectangular que se desea enmallar.
Nmero de elementos finitos en que se divide la regin
GEM(5,1)
rectangular en direccin x.
Nmero de elementos finitos en que se divide la regin
GEM(6,1)
rectangular en direccin y.
Tabla 20.2. Parmetros de generacin de malla contenidos en la matriz
GEM().
GEM(1,1)

Ejemplo 20.1 Una superficie rectangular de 9m por 6m se divide en elementos finitos rectangulares, que conforman una cuadrcula de 3 elementos en direccin x
por 2 elementos en direccin y. Los coeficientes de la matriz de parmetros de generacin de malla GEM() son:

GEM()

(16x1)
C1

F1

0.0000E+00

F2

0.0000E+00

F3

9.0000E+00

F4

6.0000E+00

F5

3.0000E+00

F6

2.0000E+00

Coordenada x del extremo inferior izquierdo de la regin


rectangular que se desea enmallar.
Coordenada y del extremo inferior izquierdo de la regin
rectangular que se desea enmallar.
Coordenada x del extremo superior derecho de la regin
rectangular que se desea enmallar.
Coordenada y del extremo superior derecho de la regin
rectangular que se desea enmallar.
Nmero de elementos finitos en que se divide la regin
rectangular en direccin x.
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

225

PEFiCA Programa de elementos finitos a cdigo abierto

(x,y)=GEM(3,1),GEM(4,1)
06

03
02

12

09
04

06

GEM(6,1)
05

02

GEM(5,1)
y

01

11

08
03

05

y
(x,y)=GEM(1,1),GEM(2,1)
x
superficie rectangular

01

04

x
malla de elementos finitos

Figura 20.1. Ejemplo de la instruccin GEMARE.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

07

10

Captulo 21
Instrucciones para crear el vector de
contribucin interelemental
Las instrucciones presentadas a continuacin crean el vector de contribucin interelemental
i (e ) de los elementos finitos para problemas de campo incluidos en el programa. Estas
subrutinas tienen el prefijo I y estn ubicadas en el mdulo MdINT del cdigo como lo indica la Tabla 2.18. La matriz columna i (e ) depende de la geometra y la funcin de aproximacin del elemento.
La contribucin interelemental representa a las condiciones de contorno de Neaumann o
de segundo tipo de una ecuacin diferencial de campo escalar (Zienkiewicz 1980; Hughes
2000). Aplicando el mtodo de Galerkin a la ecuacin diferencial de campo bidimensional
expresada en la Ecuacin (10.5) se plantea en el mtodo de los elementos finitos que:
K = f i

(21.1)

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 sistema. 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)
( e )=1

(21.2)

f = A f (e)
( e ) =1

(21.3)

i = A i (e)
( e )=1

(21.4)

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.

n =

Instrucciones para crear el vector de contribucin interelemental

=
nx +
ny
n x
x

( x, y )

(21.5)

siendo n el vector unitario en direccin normal al contorno y en sentido tal que sale del
dominio del problema.
Un elemento finito bidimensional que comparte por lo menos uno de sus lados con el
contorno del problema, podra tener un vector de contribucin interelemental i (e ) igual a la
integral de lnea en los lados del elemento que conforman el contorno, de la forma:

i (e ) = ( e ) N ( e)

S ( e ) dL

(21.6)

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 expresada en la Ecuacin (10.5).
Sustituyendo la matriz de funciones de forma del elemento N (e ) presentada en las Ecuaciones (8.14) a (8.16), en la Ecuacin (21.6) se obtiene el vector de contribucin interelemental sobre los tres lados de un elemento triangular lineal de nudos ijk de la forma:
i

(e)

1
Sij( e ) L(ije ) S (jke ) L(jke )
1 +
=
2
2
0

0
(e) (e )
1 + Sik Lik

2
1

1
0

1

(21.7)

donde Sij(e ) es la derivada direccional con respecto a la normal al lado ij de longitud L(eij ) ,
S (ejk ) es la derivada direccional con respecto a la normal al lado jk de longitud L(ejk) y Sik(e ) es
la derivada direccional con respecto a la normal al lado ik de longitud L(eik ) .
Sin embargo, la instruccin FTRIAN calcula el vector de contribucin interelemental por
cada lado c del elemento indicado en la Figura 11.1 de la forma:

Si c = 1 i

(e)

Si c = 2 i ( e ) =
Si c = 3 i ( e )

Sij( e ) L(ije )
2
S L

(e) (e)
jk
jk

[1

1 0]

[0

1 1]

2
(e) (e)
S L
T
= ik ik [1 0 1]
2

(21.8)

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

MX()

Double (real)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

Double (real)

Descripcin
Vector (creado) de trminos independientes del elemento i (e ) .
Matriz (existente) de coordenadas de los nudos de la
malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades
descrita en el Apartado 3.4.
Nmero del elemento finito.

Valor de la derivada direccional S (e ) en el lado c co-

mo lo indica la Ecuacin (21.8).


Indicador del lado que el elemento finito comparte
con el contorno del problema donde existe contribucin interelemental.
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.

LADO

Ejemplo 21.1 Sea un problema controlado por la Ecuacin (10.5), para el cual el
lado ik del elemento triangular lineal nmero 2 pertenece al contorno cuya condicin de Neumann indica que n = 5.2 . La contribucin interelemental dada por
el elemento nmero 2 se obtiene de la siguiente instruccin:
ITRIAN IEL(), XYZ(), ELE(), 2, -5.2, 3

Dadas las coordenadas de los nudos que definen el lado ik del elemento finito se tiene que L(ike ) = 2.0 . Por lo tanto, los coeficientes del vector de contribucin interelemental son los siguientes:
IEL()
F1
F2
F3

(3x1)
C1
-5.2000E+00
0.0000E+00
-5.2000E+00

21.2. IRECTA
Crea el vector de contribucin interelemental de un elemento finito rectangular bilineal
(Figura 8.7(a)), preparado para resolver una ecuacin diferencial de campo bidimensional
expresada en la Ecuacin (10.5).
Sustituyendo la matriz de funciones de forma del elemento N (e ) presentada en las Ecuaciones (8.19) y (8.20), en la Ecuacin (21.6) se obtiene el vector de contribucin interelemental sobre los cuatro lados de un elemento rectangular bilineal de nudos ijkm de la forma:
Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

230

Captulo 21.

i (e) =

(e)
ij

(e)
ij

S L
2

1
1 S ( e ) L( e )
+ jk jk
0
2

0

Instrucciones para crear el vector de contribucin interelemental

0
1
(e ) (e)
+ S km Lkm
1
2

0

0
0
(e ) (e)
+ S im Lim
1
2

1

1
0

0

1

(21.9)

donde Sij(e ) es la derivada direccional con respecto a la normal al lado ij de longitud L(eij ) ,
(e )
S es la derivada direccional con respecto a la normal al lado jk de longitud L(ejk) , S km
es la
derivada direccional con respecto a la normal al lado km de longitud L(ekm) y Sim(e ) es la derivada direccional con respecto a la normal al lado im de longitud L(eim) . Sin embargo, la instruccin IRECTA calcula el vector de contribucin interelemental por cada lado c del elemento indicado en la Figura 11.3 de la forma:
(e )
jk

Si c = 1 i

(e)

Si c = 2 i ( e ) =

Sij( e ) L(ije )
2
S L

(e) (e)
jk
jk

[1

1 0 0]

[0

1 1 0]

2
S L
[0 0 1 1]T
Si c = 3 i ( e ) =
2
(e) (e)
S L
T
Si c = 4 i ( e ) = im im [1 0 0 1]
2
(e) (e)
km km

(21.10)

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)

XYZ()

Double (real)

ELE()

Integer (entero)

IELE

Integer (entero)

Vector (creado) de trminos independientes del elemento i (e ) .


Matriz (existente) de coordenadas de los nudos de la malla descrita en el Apartado 3.4.
Matriz (existente) de elementos o de conectividades descrita en el
Apartado 3.4.
Nmero del elemento finito.

Double (real)

LADO

Valor de la derivada direccional S (e ) en el lado c como lo indica

la Ecuacin (21.8).
Indicador del lado que el elemento finito comparte con el contorno del problema donde existe contribucin interelemental.
Si LADO=1 corresponde al lado ij.
Integer (entero)
Si LADO=2 corresponde al lado jk.
Si LADO=3 corresponde al lado km.
Si LADO=4 corresponde al lado im.
Tabla 21.2. Sintaxis de la instruccin IRECTA.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

PEFiCA Programa de elementos finitos a cdigo abierto

Ejemplo 21.2 Sea un problema controlado por la Ecuacin (10.5), para el cual el
lado km del elemento rectangular bilineal nmero 1 pertenece al contorno cuya
condicin de Neumann indica que n = 5.2 . La contribucin interelemental dada
por el elemento nmero 1 se obtiene de la siguiente instruccin:
ITRIAN IEL(), XYZ(), ELE(), 1, -5.2, 3

Dadas las coordenadas de los nudos que definen el lado km del elemento finito se
tiene que L(kme ) = 2.0 . Por lo tanto, los coeficientes del vector de contribucin interelemental son los siguientes:
IEL()
F1
F2
F3
F3

(3x1)
C1
0.0000E+00
0.0000E+00
-5.2000E+00
-5.2000E+00

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

231

Referencias
Antia, H. M. (2002). Numerical Methods for Scientists and Engineers. Berlin, Birkhuser
Verlag.
Argyris, J. (1954). "Energy theorems ans structural analysis." Aircraft Engineering 26: 347356, 383-387.
Argyris, J. (1955). "Energy theorems ans structural analysis." Aircraft Engineering 27: 4258, 80-94, 125-134, 145-158.
Bathe, K. (1996). Finite elements procedures. New Jersey, Prentice Hall.
Belytschko, T., Liu, W. K. & Moran, B. (2000). Nonlinear finite elements for continua and
structures, John Wiley and Sons.
Bonet, J. & Wood, R. (1997). Nonlinear continuum mechanics for finite elements analysis,
Cambridge University Press.
Cervera, M., Agelet, C. & Chiumenti, M. (2001). COMET. Contact Mechanical and Thermal analysis. Multi purpose coupled nonlinear program for steady and transient
conditions. Barcelona.
Clough, R. (1960). The finite element in plane stress analysis. Conference on Electronic
Computation, Pittsburgh.
COMSOL (2007). COMSOL Multiphysics. Los Angeles, USA.
Cook, R., Malkus, D. & Plesha, M. (1989). Concepts and applications of finite elements
analysis. New York, John Wiley & Son.
Crisfield, M. A. (1991a). Non-linear finite elements analysis of solid and structures. 1 Essentials. John Wiley and Sons.
Crisfield, M. A. (1991b). Non-linear finite elements analysis of solid and structures. 2 Advanced topics, John Wiley and Sons.
Felippa, C. (1991). Nonlinear finite elements method. Boulder, University of Colorado.
Gere, W. & Weaver, J. (1990). Matrix Analysis of Framed Structures. New York, Van
Nostrand Reinhold.
Grossman, S. (1996). Algebra Lineal. Mxico D.F., Mc Graw Hill.
Herrera, L. (2007). Simulacin del comportamiento elstico del concreto reforzado sometido a torsin pura mediante el mtodo semi-inverso de Saint-Venant y el mtodo de
los elementos finitos. Tesis de pregrado en Ingeniera Civil, Universidad Nacional
de Colombia, Bogot.
Holzapfel, G. (2000). Nonlinear solid mechanics, John Wiley and Sons.
Horn, R. & Johnson, C. (1994). Topics in Matrix Analysis, Cambridge.
Hughes, T. J. R. (2000). The finite element method. New York, Dover.
Kojic, M. & Bathe, K. J. (2005). Inelastic Analysis of Solids and Structures. Berlin, Springer-Verlag.
Linero, D. (1999). Euler. Programa didctico de elementos finitos. Bogot, Facultad de
Ingeniera. Universidad Nacional de Colombia.
LundUniversity (1999). CALFEM. A finite element toolbox to MATLAB. Lund, Sweden,
Division of Structural Mechanics and Division of Solid Mechanics.
MacNeal, R. (1972). The NASTRAN Theorial Manual.

234

Referencias

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 bidimensional usando elementos finitos. Tesis de Maestra en Estructuras (en curso), Universidad 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 University 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 Nacional 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, Prentice Hall.
Zienkiewicz, O. (1980). El mtodo de los elementos finitos. Barcelona, Editorial Revert.

Dorian Luis Linero Segrera Universidad Nacional de Colombia, 2010

También podría gustarte