El documento presenta el desarrollo de un modelo orientado a objetos independiente de la plataforma para el análisis de estructuras planas mediante el método de los elementos finitos. Se propone diseñar e implementar un modelo OO que simplifique la codificación del cálculo estructural y produzca resultados precisos. El modelo abstraerá los conceptos de nudos, elementos, cargas y otros para representar una estructura, ensamblar el sistema de ecuaciones, aplicar condiciones de contorno y calcular fuerzas internas de manera clara,
2. ESCENARIO
Ésta investigación se extiende en el
área del ADOO de las ciencias de
computación con campo de
aplicación en la ingeniería estructural;
en el análisis de estructuras planas
mediante el MEF.
Se presentará la implementación un
nuevo modelo OO para el cálculo
estructural mediante el MEF que
produce resultados independientes y
precisos para las fuerzas que sufren
los elementos de una estructura.
+calcArea() : double
‐area : double
Figura
+calcArea() : double
‐largo : double
‐ancho : double
Rectangulo
+calcArea() : double
‐radio : double
Circulo
3. METODOLOGIA
• Por tratarse de un proceso de producción de
conocimientos científicos se empleará el método
hipotético deductivo que es un proceso lógico:
• Partir de conocimientos previos.-
• Plantear el problema de investigación.-
• Formular la hipótesis.-
• Comparar la hipótesis con la evidencia de los hechos.-
• Tomar decisiones con respecto a la hipótesis.- Decidir si
se acepta o se rechaza la hipótesis en función de los
resultados que se halle.
4. ESTRUCTURAS EN INGENIERÍA
Las estructuras son muy importantes para la humanidad. Se
presentan como: cimentaciones, edificaciones, puentes, muros,
carreteras, torres de transmisión, presas, canales, vehículos,
aviones, barcos, máquinas, reactores nucleares, etc.
5. MÉTODO DE LOS ELEMENTOS FINITOS
El MEF es la manera más extendida para
simular sistemas de ingeniería en
computadoras. El MEF se usa para predecir
el comportamiento de sistemas
estructurales, mecánicos, térmicos, de flujo
de fluidos, eléctricos y químicos.
La tecnología MEF consiste básicamente
en: una librería de elementos modelo
básicos, un proceso (color azul) para
combinar todos estos modelos en un
modelo matemático global del sistema de
ingeniería en cuestión y un algoritmo para la
resolución numérica de las ecuaciones del
sistema.
6.
7. PROBLEMA IDENTIFICADO
Programar el MEF en lenguajes
procedimentales implica gran
extensión de código distribuido en
subrutinas. Se requieren
operaciones matriciales con las
propiedades del elemento que deben
implementarse mediante ciclos
explícitos elevando la “complejidad
ciclomática” por el grado de
profundidad de las anidaciones.
Debe reservarse bastantes variables para almacenar la geometría, las
propiedades de los materiales y las cargas aplicadas; esto, debido a
una falta de tipos de datos específicos que permitan un alto nivel de
abstracción. El código resultante es difícil de leer, escribir y depurar
8. El estado del arte refleja que los
trabajos así como los programas
realizados, por cuestiones de
simplificación, han empleado
ampliamente un mismo sistema
de ejes locales en ambos
extremos del elemento (a).
Entonces, cuando se llega a los resultados del análisis, hay que
hacer una serie de interpretaciones para llegar a las fuerzas
internas reales porque el uso de un mismo sistema de ejes en
ambos extremos genera ciertas ambigüedades como ser: ¿en
qué extremo el eje local x indica la dirección de la tensión?
algunos suponen que va de izquierda a derecha pero queda el
interrogante de cuál es el extremo izquierdo y así.
9. FORMULACIÓN DEL PROBLEMA
¿Existe un modelo conceptual orientado a objetos que pueda
abstraer y simplificar la complicada codificación del cálculo
estructural matricial de pórticos planos mediante MEF que a
su vez sea capaz de producir resultados completos según la
teoría de ejes locales de Kardestuncer?
10. OBJETIVOS
El objetivo general es proveer y probar una
nueva arquitectura OO para que el software
de análisis estructural de pórticos planos
mediante elementos finitos – elemento viga y
sistema de ejes locales Kardestuncer, sea
fácil de entender, implementar, extender y
modificar.
Los objetivos específicos son:
• Diseñar el modelo OO usando el UML.
• Implementar el modelo OO en Java.
• Resolver casos de estudios y
verificar/comparar los resultados.
11. HIPOTESIS
Independiente Moderante Dependiente
El diseño de un modelo
para la codificación de
un programa para el
análisis estructural de
pórticos planos a partir
del paradigma OO
mediante elementos
finitos – elemento viga y
sistema de ejes locales
Kardestuncer.
Mejora Claridad del código.
Minimiza La cantidad de ciclos
anidados explícitos de
cálculo.
Incrementa La eficiencia de
cómputo.
Mejora Los resultados de las
fuerzas internas que
sufren los elementos.
Permite Escalabilidad.
12. JUSTIFICACIÓN
Teórica
Con este modelo OO se aporta a la
ingeniería estructural.
Social
Se deja a estudiantes y profesionales
una técnica y herramienta para el
cálculo de estructuras.
Tecnológica
Se aplicará a la ingeniería estructural
tecnologías y lenguajes de última
generación (i.e. OO, Java, Web).
13. ESTADO DEL ARTE
• [Archer 2000] planteó un modelo OO generalizado para elementos finitos
• [Jun Lu 2000] desarrolló una plataforma OO universal para el análisis estructural
por elementos finitos
• [Jun Lu 2000] desarrolló una plataforma OO universal para el análisis estructural
por elementos finitos
• [Foley 2003] propuso un algoritmo evolutivo OO para el diseño de pórticos de
acero.
• [Bittencourt 2001] desarrolló en C++ una aplicación para el análisis y optimización
estructural 2D.
• [McKenna 2000] diseñó un modelo OO con una clase “Análisis” segmentada en
subclases para varios tipos de análisis por elementos finitos.
• [Patzak 2001] desarrolló un código OO para resolver problemas de mecánica,
transporte y fluidos mediante elementos finitos.
• [Biniaris 2004] desarrolló en Java un modelo OO para la solución de problemas 3D
por elementos finitos aplicando computación distribuida.
14. DECLARACIÓN DE TRABAJO (RESUMEN)
Una estructura se compone de nudos y elementos. Cada
elemento parte de un solo nudo y termina en un solo nudo.
Un elemento puede tener solo un conjunto de propiedades de
la sección. Un elemento puede tener solo un conjunto de
fuerzas internas. Un elemento puede tener varias
condiciones de carga puntual y/o distribuida.
Un nudo puede tener solo un conjunto de coordenadas
planas (X, Y). Un nudo puede tener varias solicitaciones de
carga puntual. Cada nudo puede tener solo un conjunto de
condiciones de borde o de frontera. Un nudo puede tener
solo un conjunto de desplazamientos. Un apoyo puede tener
solo un conjunto de reacciones.
15. La información de entrada de una estructura consiste en: una
descripción de la estructura, las coordenadas globales (X, Y) de
sus nudos, las incidencias de sus elementos, las cargas
puntuales sobre sus nudos, las cargas puntuales y/o distribuidas
sobre sus elementos, y las condiciones de contorno.
La información de cálculo de una estructura consiste en: la
matriz global de rigidez, el vector generalizado de fuerza, el
vector generalizado de desplazamiento, las fuerzas internas en
los elementos según los ejes locales Kardestuncer, las
reacciones en los apoyos y la deformada de la estructura.
El cálculo de una estructura deberá llevarse a cabo por medio
del método de los elementos finitos empleado en ingeniería
estructural conforme el extenso desarrollo de la sección “marco
teórico”.
16. REQUERIMIENTOS FUNCIONALES
Al usuario se le deberá proveer de un formato de
archivo estándar que permita la introducción de
manera tabulada de la información de entrada de la
estructura.
Al usuario se le deberá proveer un campo que permita
la introducción de la descripción literal de la estructura.
Al usuario se le deberá proveer de un campo que
permita la introducción de las coordenadas (X, Y) de los
nudos de la estructura.
Al usuario se le deberá proveer de un campo que
permita la introducción de las incidencias, de las
propiedades geométricas y de las propiedades
inerciales de los elementos de la estructura.
Al usuario se le deberá proveer de campo que permita
la introducción de las cargas puntuales aplicadas en los
nudos de la estructura.
Al usuario se le deberá proveer de un campo que
permita la introducción de las cargas puntuales y/o
distribuidas que actúan sobre los elementos de la
estructura.
Al usuario se le deberá proveer de un campo que
permita la introducción de las condiciones de borde
(apoyos) de la estructura.
Al usuario se le deberá proveer una interfaz para la
verificación gráfica de la geometría de la estructura.
Al usuario se le deberá proveer una interfaz para
solicitar el análisis de la estructura.
Al usuario se le deberá proveer archivos de un
formato estándar que permita acceder de manera
tabulada a los resultados numéricos del análisis de la
estructura.
Al usuario se le deberá proveer de un archivo para
acceder a los resultados numéricos de la matriz
global de rigidez de la estructura.
Al usuario se le deberá proveer de un archivo para
acceder a los resultados numéricos del vector
generalizado de fuerza de la estructura.
Al usuario se le deberá proveer de un archivo para
acceder a los resultados numéricos del vector
generalizado de desplazamiento de la estructura.
Al usuario se le deberá proveer de un archivo para
acceder a los resultados numéricos de las fuerzas
internas en los extremos de los elementos de la
estructura.
17. Al usuario se le deberá proveer de un archivo
para acceder a los resultados numéricos de las
reacciones en los apoyos (i. e. nudos restringidos
mediante las condiciones de contorno) de la
estructura.
Al usuario se le deberá proveer de una interfaz
gráfica para verificar la deformada resultante del
análisis de la estructura.
Al sistema se le deberá proveer la
implementación de un modelo que permita el
análisis de la estructura mediante el método de
los elementos finitos - elemento viga doblemente
empotrada sistema de ejes locales Kardestuncer
según el extenso desarrollo de la sección “marco
teórico” de éste documento.
Al sistema se le deberá proveer una rutina para
abrir la información de entrada de la estructura.
Al sistema se le deberá proveer una rutina para
graficar la geometría de la estructura.
Al sistema se le deberá proveer una rutina para
ensamblar el vector generalizado de fuerza de la
estructura.
Al sistema se le deberá proveer una rutina para
ensamblar la matriz global de rigidez la
estructura.
Al sistema se le deberá proveer una rutina para
aplicar las condiciones de contorno de la
estructura.
Al sistema se le deberá proveer una rutina para
resolver el sistema de ecuaciones de la
estructura.
Al sistema se le deberá proveer una rutina para
calcular las fuerzas internas en los extremos de
los elementos de la estructura.
Al sistema se le deberá proveer una rutina para
calcular las reacciones de los apoyos de la
estructura.
Al sistema se le deberá proveer una rutina para
guardar los resultados numéricos del análisis de
la estructura.
Al sistema se le deberá proveer una rutina para
graficar la deformada de la estructura.
18. MODELO DE CLASES
Del análisis de requerimientos, las clases se corresponden con los
sustantivos que a su vez son objetos: estructura, elementos, nudos,
cargas, etc. Los verbos se correlacionan con las responsabilidades
(operaciones) de los objetos como ser: ensamblar sistema de
ecuaciones, aplicar condiciones de contorno, resolver sistema de
ecuaciones, calcular fuerzas internas, calcular reacciones y otros.
Luego de una serie de revisiones, se ha llegado a un diseño de
clases robusto basado en encapsulación, herencia, abstracción,
polimorfismo, composición, clases abstractas, interface java y otros
conceptos OO.
Gracias a un adecuado conocimiento del dominio se ha llegado a un
alto grado de abstracción del modelo para dar lugar a futura
escalabilidad (e. g. estructuras 3D).
22. INCLUSIÓN Y EXTENSIÓN
DE CASO DE USO
Usuario
Introducir las
condiciones de frontera
Introducir código
de nudo
Introducir restricción
al desplazamiento
horizontal
Introducir restricción
al desplazamiento
vertical
« incluir »
« incluir »
« incluir »
Introducir
restricción al giro
« incluir »
Usuario
Acceder a los
resultados numéricos del
análisis
Ver los desplazamientos
de los nudos de la
estructura.
Ver las fuerzas
internas en los elementos.
Ver las reacciones
en los apoyos.
« incluir »
« incluir »
« extender »
Acceder a los
resultados gráficos del análisis
« incluir »
28. IMPLEMENTACION
Para la implementación
del modelo en Java todas
las clases han sido
codificadas con base a la
ventaja fundamental de
la POO: la
encapsulación.
El ocultamiento de las
propiedades y los
métodos ha sido
aplicado a todas las
clases.
29. CASO DE ESTUDIO
Cada ecuación del sistema de ecuaciones simultáneas de una estructura, corresponde
a cada grado de libertad de la misma. Esta estructura tiene 36 nudos y cada nudo tiene
3 grados de libertad (i. e. desplazamiento horizontal, vertical y rotacional) por lo tanto
su sistema es de 108 ecuaciones.
31. Por ejemplo, la columna 37 entre los nudos 18 y 22 sufre las siguientes fuerzas :
a) El sistema de fuerzas ni siquiera aparenta estar en equilibrio. Según los resultados, las
solicitaciones axiales en ambos extremos del elemento son de compresión; sin embargo, según
la figura, el extremo j (inferior) aparenta estar en tensión. Los resultados basados en un mismo
sistema de ejes para ambos extremos pueden ser confusos requerir una interpretación y
modificación de las fuerzas.
b) El sistema de fuerzas hasta aparenta estar en equilibrio. Ambos extremos del elemento
claramente se ven sufriendo compresión tal cual dictan los resultados del análisis. Las fuerzas
en ambos extremos del elemento se manifiestan en la dirección correcta y no dan lugar a
ninguna confusión ni requieren modificación alguna.
33. CASO DE ESTUDIO APLICADO A LA REALIDAD LOCAL
Se va a aplicar el modelo OO
propuesto en esta investigación
para que por medio del programa
se pueda calcular y determinar la
deformada de la estructura antes y
después del colapso de la
columna.
34.
35. CLARIDAD DE CODIGO
En el FORTRAN el orden de instrucciones debe ser secuencial o sea la programación
del algoritmo debe ser lineal. Para producir cualquier alteración del orden de la
lógica, se usa la instrucción GOTO. Sigue un modelo de programación procedimental
de contexto global.
En el paradigma OO un módulo cohesivo ejecuta una tarea sencilla y requiere poca
interacción con procedimientos que ejecutan otras partes del programa.
36. COMPLEJIDAD CICLOMÁTICA
En programación estructurada se requieren de 3 ciclos anidados explícitos
para ensamblar la matriz de rigidez de una estructura. En la programación
OO del modelo propuesto en ésta investigación, se requiere de un solo bucle
explícito de cálculo. Lo mismo para el ensamblado del vector fuerza y el
vector desplazamiento de la estructura.
37. EFICIENCIA DE COMPUTO
El enfoque empleado para medir la complejidad de un algoritmo será un
enfoque empírico o a posteriori. Interesa el comportamiento de un algoritmo
para tallas relativamente grandes: complejidades asintóticas.
38. Dado que un orden de complejidad lineal implica un algoritmo más eficiente
que uno potencial, se verifica la mejora de eficiencia de cómputo con el
modelo OO propuesto en ésta investigación. Hay que elegir siempre
algoritmos con el menor orden de complejidad.
39. CONCLUSIONES
Un solo sistema de ejes locales para ambos extremos de un elemento estructural puede inducir
a ambigüedades en la interpretación de los resultados del análisis. El sistema de ejes
Kardestuncer es mejor porque provee un sistema de ejes para cada extremo de los elementos
de una estructura.
El diseño del modelo OO propuesto en ésta investigación emerge del análisis del dominio a
partir de la cual se realiza un análisis de requerimientos para poder diseñar las distintas vistas
del modelo OO usando UML.
Del análisis de requerimientos, los sustantivos se convierten en clases y los verbos en
operaciones de los objetos. El modelo OO resultante está basado en conceptos como: clases,
encapsulación, herencia, superclases, subclases, abstracción, polimorfismo, composición,
clases abstractas, interfaces java, etc.; lo cual prueba que la naturaleza del análisis estructural
mediante el MEF - elemento viga sistema ejes locales Kardestuncer, es OO.
Los casos de estudio probaron las ventajas del modelo OO propuesto en cuanto a concepto y
resultados. En cuanto a conceptos porque el modelo mejora las fuerzas internas, la claridad de
código, la complejidad ciclomática, eficiencia de cómputo, etc. En cuanto a resultados porque
las verificaciones manuales basadas en conceptos fundamentales de equilibrio estructural
prueban la precisión del modelo y su implementación.
Finalmente, hay mejoras que realizar en el modelo OO como la inclusión de cargas distribuidas
triangulares sobre los elementos, apoyos elásticos, etc., en virtud de su escalabilidad y
extender su funcionalidad.
40. ¿QUÉ ES EL ANÁLISIS ESTRUCTURAL?
Los resultados del análisis se usan para determinar la deformación
de la estructura y verificar si son adecuadas para las cargas para las
cuales se las ha diseñado.
El análisis estructural trata
sobre el comportamiento de las
estructuras bajo condiciones
de diseño. Las estructuras son
sistemas que soportan carga y
el comportamiento se entiende
como su tendencia a
deformarse, vibrar, pandearse
o fluir dependiendo de las
condiciones a las cuales estén
sometidas.
41. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS
Un objeto es una entidad que contiene ambos: datos y
comportamiento. Un software OO consiste en una
colección de objetos. En la programación
procedimental el código y los datos están separados y
los datos pueden ser modificados por cualquier
subrutina haciendo que el acceso a los datos pueda
ser incontrolado. Las pruebas y depuración son muy
difíciles. Los objetos resuelven todos estos problemas
mediante la encapsulación. Otros conceptos
importantes son: herencia, polimorfismo, composición,
abstracción, dependencia, etc. Las tecnologías OO
llevan a reutilizar componentes de software lo que
conlleva a un desarrollo de software más rápido y de
mejor calidad.
Objeto: columna
Comportamiento:
deformarse