Revista Electrónica Multidisciplinaria Vol.2 Nº1. Enero - Abril 2019
pp. 25-35
Generación de mallas tridimensionales en 3D. Utilizando
elementos finitos mediante el lenguaje Matlab
Universidad del Zulia. Núcleo Costa Oriental del Lago.
Cabimas, estado Zulia. Venezuela
El análisis por elementos finitos es una técnica de simulación por computador usada en ingeniería. Su comprensión requiere conocimientos claros del análisis estructural de matrices de desplazamiento, el cual surge luego de varias décadas de investigación, principalmente en la industria aeroespacial inglesa, como una variante apropiada para computadoras. El propósito de esta investigación fue diseñar un programa de computación para generar mallas tridimensionales (3D), utilizando elementos finitos, mediante el lenguaje MATLAB. El mismo se diseñó para resolver problemas de análisis estructural para la obtención de desplazamientos, deformaciones y tensiones basándose en elementos tetraédricos y hexaédricos, donde las regiones se dividen en bloques que tendrán tantos nodos por elementos. El tipo de investigación fue proyectiva, logrando obtener un programa que arroja resultados en la generación de mallas, analizados por varias estructuras con lados curvos visualizadas en tercera dimensión.
RECIBIDO: 14/12/2018 • ACEPTADO: 18/02/2019
Generation of you enmesh three-dimensional in 3D. Using finite
elements by means of the language matlab
Finite element analysis is a computer simulation technique used in engineering. Its understanding requires clear knowledge of structural analysis of displacement matrices, which arises after several decades of research, mainly in the English aerospace industry, as a suitable variant for computers. The purpose of this research was to design a computer program to generate three-dimensional meshes (3D), using finite elements, using the MATLAB language. It was designed to solve engineering exercises based on tetrahedral and hexahedral elements, where the regions are divided into blocks that will have as many nodes per element. The type of research was projective, obtaining a program that yields results in the generation of meshes, analyzed by several structures with curved sides visualized in third dimension.
En la actualidad la mayoría de los programas de computadora existentes para generación de mallas a través de elementos finitos están basados en sistemas bidimensional (en el plano) y bajo lenguajes como BASIC, FORTRAN, QUICKBASIC, TURBOBASIC, PASCAL o C.
A partir de allí, se diseña un programa para generar mallas tridimensionales (en el espacio) a través de elementos finitos manejando MATLAB (laboratorio de matrices) que es un lenguaje moderno utilizado ampliamente en la Ingeniería. Según Oñate, (1995), MATLAB es un entorno de computación y desarrollo de aplicaciones totalmente integrado orientado para llevar a cabo proyectos en donde se encuentren implicados elevados cálculos matemáticos y la visualización grafica de los mismos. Se integran en él análisis numérico, cálculo matricial, proceso de señal y visualización gráfica en un entorno completo donde los problemas y sus soluciones son expresados del mismo modo en que se escribirían tradicionalmente, sin necesidad de hacer uso de la programación tradicional.
Entre las principales ventajas de este lenguaje se encuentran el amplio soporte matemático, la alta precisión, un amplio soporte de funciones ya desarrolladas , el rápido prototipo, tiene una integración con dispositivos hardware y una comunidad muy extendida, además posee magnifica ayuda y es muy comercial.
Ahora bien, tanto la graficación por computador como la geometría se encuentran entre las áreas de la informática de más reciente y vertiginoso desarrollo (Fonseca, 2001), gracias a los avances de algunos campos que son soporte tecnológico de la informática. Indiscutiblemente, el principal aspecto de este desarrollo, que ha dado paso al trabajo práctico en dichas áreas, es el sensible incremento en la velocidad de procesamiento y, en el caso de la computación grafica, la evolución del “hardware” de vídeo; aunque, aspectos teóricos como el análisis de algoritmos han hecho un valioso aporte en cuanto a la optimización de los procedimientos asociados a sus tareas fundamentales.
Por lo tanto este programa entre otras cosas permite desarrollar el modelado numérico de problemas tridimensionales utilizando para ello el método de elementos finitos. Según Dari y Venere (2008), en la actualidad se invierten importantes esfuerzos en el desarrollo de herramientas robustas para la generación automática de mallas en 3D. Hasta el momento, las técnicas que han mostrado un cierto grado de éxito en este objetivo, están restringidas a elementos tipo Tetraédricos y Hexaédricos y requieren como única información de entrada la especificación del tamaño de elemento deseado en todo el punto del espacio y una triangulación de la superficie de la pieza.
Sin embargo, a pesar de estos esfuerzos no existen suficientes programas específicos para generar mallas tridimensionales en 3D donde se utilicen elementos finitos para la solución de problemas de análisis estructural pala la obtención de desplazamientos, deformaciones y tensiones. Partiendo de estas consideraciones y entendiendo el importante papel que juegan los programas de computación se realizó el diseño de un programa de computación para generar mallas tridimensionales (3D), utilizando elementos finitos, mediante el lenguaje MATLAB.
Según Benito (2014), el método de los elementos finitos es un método numérico para resolver ecuaciones diferenciales por medio de aproximaciones discretas. Este método permite hacer análisis térmico, acústico, dinámico, electromagnético y de flujos de los casos más simples de comportamiento linear al no linear, como cuando se tienen grandes desplazamientos o contacto entre las partes de un conjunto.
Por su parte, Del Rey y col (2010) plantean que en el método de los elementos finitos, un sistema continuo se divide en una serie de porciones finitas delimitadas por nodos, cuyos grados de libertad constituyen las incógnitas del problema. La exactitud de los resultados depende del número de elementos utilizados en el mallado.
Desde estas perspectivas, la idea general del método de los elementos finitos es la división de un continuo en un conjunto de pequeños elementos interconectados por una serie de puntos llamados nodos. Las ecuaciones que rigen el comportamiento del continuo regirán también el del elemento. De esta forma se consigue pasar de un sistema continuo (infinitos grados de libertad), que es regido por una ecuación diferencial o un sistema de ecuaciones diferenciales, a un sistema con un número de grados de libertad finito cuyo comportamiento se modela por un sistema de ecuaciones, lineales o no. Este método puede ser aplicado a gran número de problemas de ingeniería (Oñate y Botello, 1995), reduciendo cada vez más la incertidumbre del comportamiento de diferentes formas y distribuciones de materiales. Con él se pueden evaluar las variables más significativas de los fenómenos que se quieren estudiar, así como cuantificar la interacción de los diferentes mecanismos existentes. Lo anterior permite reducir el número de ensayos de laboratorio; lo que evidentemente conduce a proyectos más baratos y eficientes, que se obtienen en un tiempo de estudio mucho más corto.
Según Thompson y col. (1999), un sistema generador de malla puede ser pensado como un procedimiento para la distribución ordenada de observadores, o estaciones de muestreo, sobre un campo físico, de tal manera que sea posible una comunicación eficiente entre los observadores y que todos los fenómenos físicos sobre ese campo puedan ser representados con suficiente exactitud por medio de esa colección finita de observaciones.
Por otra parte, la estructura de una red de familias de coordenadas permite a los observadores ser fácilmente identificados en relación a los otros, y esto conlleva a una codificación más simple que la que resultaría de una estructura triangular o de una distribución aleatoria de los puntos. El sistema de generación de mallas proporciona cierta influencia de un observador sobre los otros, así que si uno de ellos se mueve hacia una mejor posición para observar la solución, sus vecinos lo seguirán en cierta medida para mantener una cobertura suave del campo.
De igual manera, la solución numérica de ecuaciones diferenciales parciales requerirá cierta discretización del campo en una colección de puntos o volúmenes elementales (celdas). Las ecuaciones diferenciales son aproximadas por un conjunto de ecuaciones algebraicas sobre ésta colección, y este sistema de ecuaciones algebraicas es entonces resuelto para producir un conjunto discreto de valores, los cuales se aproximan a la solución del sistema diferencial parcial sobre el campo.
Esta discretización de la solución requiere de cierta organización para ser eficiente; esto es, debe ser posible identificar rápidamente los puntos o celdas. Mas aún, la discretización debe conformar la frontera de la región, de tal manera que las condiciones de frontera puedan ser representadas de manera precisa. Esta organización es proporcionada por un sistema de coordenadas, y la necesidad de conformar la frontera es reflejada en la elección que hace de coordenadas cartesianas para regiones rectangulares, coordenadas cilíndricas para regiones circulares, etc., todo dentro de los límites de los recursos que se puedan hallar en los manuales.
De ésta organización de la discretización del campo para regiones generales surge el interés actual en sistemas de coordenadas que conformen la frontera, generados numéricamente. Es decir, generar computacionalmente para regiones arbitrarias lo que está disponible en los manuales para regiones simples. Los sistema de coordenadas cubren el campo y tienen líneas (o superficies) coordenadas que coinciden con todas las fronteras. La distribución de las líneas debe ser suave, concentrándose en regiones donde la solución varía fuertemente, y el sistema debe ser capaz de sentir estas variaciones y auto-ajustarse dinámicamente para conseguir este objetivo.
Asimismo Tinoco (2007), considera que una malla generada numéricamente es pensada como el conjunto organizado de puntos formado por las intersecciones de las líneas de un sistema de coordenadas. La característica esencial de un sistema tal es que alguna línea coordenada (o en tres dimensiones, alguna superficie coordenada) sea coincidente con cada segmento de la frontera de la región física. El uso de intersecciones de líneas coordenadas para definir los puntos de la malla proporciona una estructura organizacional que permite que todos los cálculos sean realizados en una malla cuadrada fija cuando las ecuaciones diferenciales que se estén resolviendo hayan sido transformadas de tal manera que las coordenadas curvilíneas remplacen a las coordenadas cartesianas como variables independientes.
La malla libera a la simulación computacional de restringirse a ciertas formas de frontera y permite la generación de códigos de uso general en los cuales la forma de la frontera es especificada simplemente en la entrada de datos. Las fronteras también pueden estar en movimiento, ya sea por especificaciones externas o en repuesta al desarrollo de la solución física. Similarmente, el sistema de coordenadas puede ajustarse para seguir la variación en la solución física. En cualquier caso, la malla generada numéricamente permite que todos los cálculos sean realizados en una malla cuadrada fija en el campo computacional (también llamado espacio lógico), el cual es siempre rectangular por construcción.
Para Gázquez (2000), Matlab es un sistema de programación y cálculo basado en la manipulación de matrices. El nombre mismo del sistema o paquete de cómputo proviene de la abreviación Matriz Laboratory o Laboratorio de Matrices. Por lo tanto, la filosofía detrás de la computación por medio de este sistema es considerar a los objetos (tanto matemáticos como gráficos) como matrices de forma que se pueda usar el álgebra matricial y otras propiedades para ahorrar tiempo de cómputo.
De manera que, el lenguaje Matlab es un entorno de computación y desarrollo de aplicaciones totalmente integrado orientado para llevar a cabo proyectos en donde se encuentren implicados elevados cálculos matemáticos y la visualización gráfica de los mismos. MATLAB integra análisis numérico, cálculo matricial, proceso de señal y visualización gráfica en un entorno completo donde los problemas y sus soluciones son expresados del mismo modo en que se escribirían tradicionalmente, sin necesidad de hacer uso de la programación tradicional.
En la actualidad dispone de un amplio abanico de programas de apoyo especializados, denominados “toolboxes”, que extienden significativamente el número de funciones incorporadas en el programa principal. Estos “toolboxes” cubren en la actualidad prácticamente casi todas las áreas principales en el mundo de la ingeniería y la simulación, destacando entre ellos el 'toolbox' de proceso de imágenes, señal, control robusto, estadística, análisis financiero, matemáticas simbólicas, redes neuronales, lógica difusa, identificación de sistemas, simulación de sistemas dinámicos, etc. Es un entorno de cálculo técnico, que se ha convertido en estándar de la industria, con capacidades no superadas en computación y visualización numérica.
De forma coherente y sin ningún tipo de fisuras, integra los requisitos claves de un sistema de computación técnico: cálculo numérico, gráficos, herramientas para aplicaciones específicas y capacidad de ejecución en múltiples plataformas. Esta familia de productos proporciona al estudiante un medio de carácter único, para resolver los problemas más complejos y difíciles.
Para Calvo e Idelsohn (2002), una malla para el Método de Elementos Finitos (MEF) consiste en una partición adecuada del dominio geométrico, con dos propiedades básicas: la unión de los elementos que constituye el dominio y la intersección entre dos elementos que tiene medida nula. En la práctica habitual se utilizan elementos poliédricos irregulares, principalmente tetraedros,
hexaedros y a veces prismas triangulares. Los dos primeros tipos suelen utilizarse en exclusividad, es decir mallas sólo de tetraedros o sólo de hexaedros.
En las mallas poliédricas es común requerir también la “conformidad” de la malla exigiendo que la intersección entre dos elementos sea sólo una subunidad completa, entendiendo por subunidad de un poliedro a una cara, una arista, un nodo o el conjunto vacío. La restricción en el uso de determinados poliedros viene dada por las funciones de forma que se utilizarán como interpolantes. Para cada tipo de poliedro hay que construir la función que interpola el valor de una variable utilizando los valores nodales que toma la variable en los vértices del poliedro.
La idea básica de un esquema generador de mallas es generar los datos de conectividad de los elementos y los datos nodales coordenados, leyendo los datos de entrada de unos cuantos puntos clave. Aquí se presenta la teoría e implantación en computadora de un esquema de generación de mallas sugerido por Zienkiewicz y Philips (1971).
En este esquema una región completa se divide en cuadriláteros de ocho nodos que se ven luego en forma de un patrón rectangular de bloques. Considere la región mostrada en la fig. 1. El patrón completo de bloques rectangulares es conveniente para la numeración de los nodos. Para hacer concordar el patrón a la región, el bloque numero 4 será tratado como vacío y tienen que unirse los dos bordes rayados.
En general, una región compleja se considerara como un rectángulo, compuesto por bloques rectangulares, con algunos bloques que se dejan vacíos y algunos bordes identificados para ser unidos.
El esquema de numeración nodal se muestra en la fig. 2. Se tienen dos bloques en la dirección S y dos en la dirección W. El bloque 4 queda vacío. El arreglo NNAR(30) tiene todas las localizaciones definidas. Los bordes 18-20 y 18-28 tienen que unirse. Primero se inicia el arreglo NNAR(30) colocando -1 en cada una de sus localizaciones. Luego se cubren cada uno de los bloques vacíos y se coloca cero donde no existen nodos.
Para la unión lateral, en las localizaciones nodales del lado con números nodales mayores, se introducen los números de localizaciones de los nodos correspondientes del lado por unirse. La numeración nodal final es simple. Se barre a lo largo de S y luego se incrementa a lo largo de W. Los números nodales son incrementados en 1 siempre que la localización tenga un valor negativo. Cuando el valor es cero, se pasa por alto. Si la localización tiene un valor positivo, esto indica unión lateral y se inserta el correspondiente numero nodal de la localización indicada por el valor.
Las regiones tridimensionales complejas pueden llenarse en forma efectiva por elementos tetraédricos, en forma similar a como llenan los elementos triangulares una región bidimensional, pero resulta tedioso llevar a cabo la preparación manual de los datos. Para separar esto en regiones simples, se trabajara con elementos Tetraédricos y Hexaédricos; Para las mallas Hexaédricas las regiones se dividen en bloques de ocho (8) nodos por elemento, para las mallas Tetraédricas también las regiones se dividen en bloques, pero éstas a su vez se subdividen en cinco tetraedros como se muestra en las figuras 3 y 4, para éstas se utilizan cuatro (4) nodos por elementos.
Para realizar este trabajo se utilizaron elementos Tetraédricos y Hexaédricos, para las mallas Hexaédricas las regiones se dividieron en bloques de ocho (8) nodos por elemento, para las mallas Tetraédricas también las regiones se dividieron en bloques, pero éstas a su vez se subdividieron en cinco tetraedros para éstas se utilizaron cuatro (4) nodos por elementos.
Para la elaboración del trabajo se utilizó una investigación de tipo proyectiva, ya que integra todo aquello que analiza y describe un área de estudio en particular, para luego diseñar el programa que permita generar mallas en 3d con Matlab.
En este programa denominado (Meshgen3D), lo fundamental fue agregar la coordenada Z, para hacer la extensión de un programa en 2D a 3D. Para ello se obtuvo las funciones de forma, que fueron hechas para un elemento ladrillo de veinte (20) nodos. Esta modificación se realizó específicamente en una subrutina denominada (Shape3D), que es donde se colocan las funciones de forma. También se tuvo que realizar una subrutina denominada Blockxyz, que es donde se realiza el llenado de nodos de cada bloque. Dentro del programa Meshgen3D, se realizaron los siguientes pasos:
Se realizo un programa de archivo de datos denominado Meshdata3D
Evaluación de los puntos medios de los lados S , W y V.
Localización de los nodos globales de las esquinas.
Ordenación de la numeración final de los nodos.
Coordenadas nodales
Conectividad.
Con respecto a los puntos referentes a bloques vacíos y unión de lados, no se trabajo con
estos.
Se realizo un programa en Matlab, el cual es un graficador de mallas en 3D, denominado plot3d.
El programa Meshgen3D, es una herramienta bastante útil a la hora de generar mallas en 3D, ya que todos los cuerpos, elementos o estructuras analizadas para hacer estudios de comportamiento de esfuerzos, deflexiones, están en la realidad en 3D. La forma de utilizar el programa se realiza de la siguiente manera, en el subprograma Meshdata3D, se introducen las coordenadas globales, coordenadas mitad de lados y se especifican el número de divisiones que se quiera para cada lado.
Este programa arroja resultados en la generación de mallas, que se analizaron en varias estructuras, incluso con lados curvos y todas las mallas se visualizan. Con este programa, se pueden hacer refinaciones de ciertas partes de la estructura estudiada.
A continuación se presenta algunos ejemplos prácticos obtenidos a través del programa:
Con la realización de la investigación, se logró determinar la importancia del programa Meshegen 3D, como una herramienta útil a la hora de generar mallas en 3D, permitiendo que todos los cuerpos, elementos o estructuras analizadas para hacer estudios de comportamiento de esfuerzos, deflexiones estén en la realidad en 3D.
Se logró visualizar que la forma de utilizar el programa es exactamente igual a como se hace con el Meshgen2D, en el programa meshdata3D, se introducen las coordenadas globales, coordenadas mitad de lados y se especifican el numero de divisiones que se quiera para cada lado, la única diferencia que aquí se incluye una nueva dirección, que es el eje Z.
En este orden de ideas, se determinó que con este programa al igual que el Meshgen2D, se pueden hacer refinaciones de ciertas partes de la estructura estudiada.
Benito, J.; Álvarez, R.;Ureña, F.;Salete, E. y Aranda, Ernesto. (2014). Introducción al método de los
Calvo, N. y Idelsohn, S. (2002). Generación de mallas tridimensionales en tiempo lineal. Mecánica computacional. Vol XXI. pp 3048-3059.
Dari, EA; Venere, MJ (2008): A node placement method for 2D automatic mesh generation. Latin
Amer. Appl
Del Rey, R.; Alba, J.; Ramis, J. y Escuder, E. (2010). Aplicación del método de los elementos finitos para la simulación de las transmisiones por flanco en uniones con suelos flotantes. Información tecnológica, versión On-line ISSN 0718-0764. Vol. 21(6), 67-78
Fonseca, Z. (2001). El método de los elementos finitos. Escuela de ingeniería mecánica de la
Universidad del Zulia.
Gázquez, J. (2000). Introducción a MATLAB: aplicación a señales y comunicaciones. Editor
Universidad de Almería, Servicio de Publicaciones.
Hurtado de Barrera, Jacqueline(2006). El proyecto de investigación. Quirón Sypal
Oñate, E. (1995). Cálculo de estructuras por el método de elementos finitos. Análisis estático lineal. 2ª ed. Barcelona. CIMNE
Oñate, E., y Botello, S., (1995). “Modelización de problemas de gran tamaño en el sector transporte, utilizando métodos numéricos y supercomputadoras”. Acta Universitaria, Vol. 5:1, 15-25
Thompson, J., Warsi, Z., and Mastin, C. (1999). Numerical grid Generation. Foundations and
Applications. Elsevier Science, New York
Tinoco, J. (2007). Funcionales discretos para la generación de mallas suaves y convexas sobre
Zienkiewicz, O. y Philips, D. (1971). An automatic mesh generation scheme for plane and curved