Você está na página 1de 15

UMA BIBLIOTECA COMPUTACIONAL PARA GERAO DE MALHAS BIDIMENSIONAIS E TRIDIMENSIONAIS DE ELEMENTOS FINITOS

Antonio C. de O. Miranda * e Luiz F. Martha *


Departamento de Engenharia Civil e Grupo de Tecnologia em Computao Grfica (Tecgraf) Pontifcia Universidade Catlica do Rio de Janeiro (PUC-Rio) 22453-900 - Rio de Janeiro - RJ - Brazil e-mail: amiranda, lfm@tecgraf.puc-rio.br, web page: http://www.tecgraf.puc-rio.br
*

Keywords: Finite Element, Mesh generation, Independent API. Abstract. This paper describes a computational library for finite element mesh generation algorithms that have been developed in the Applied Computer Graphics research group of the Department of Civil Engineering and Tecgraf (Computer Graphics Technology Group) of PUC-Rio. This library presents a consistent Application Program Interface (API) for all the algorithms. It includes two and three-dimensional algorithms of structured and non-structured mesh generation techniques that resulted from a research line of more than ten years of development. The API was devised so that the algorithms are independent of any particular data structure of the client modeler. As a consequence the meshing algorithms may be used in a large number of modelers. In addition, new algorithms may be incorporated in a consistent manner.

Antonio C. de O. Miranda e Luiz F. Martha.

INTRODUCO

A gerao de malhas de elementos finitos consiste, de uma forma geral, dividir um determinado domnio de interesse em sub-domnios. Domnios bidimensionais podem ser divididos em quadrilteros ou tringulos, enquanto que, domnios tridimensionais podem ser divididos em tetraedros, pentaedros ou hexaedros. Essa diviso feita com a aplicao de um mtodo de gerao de malhas. Diversos algoritmos de gerao foram desenvolvidos, e ainda so desenvolvidos, para atender a diversas finalidades. Com o crescimento do nmero de algoritmos torna-se necessrio que estes tenham uma interface comum, permitindo assim uma padronizao dos dados de entrada e sada. Uma forma de conseguir essa padronizao criar uma biblioteca computacional de gerao bidimensional e tridimensional de malhas. Uma biblioteca computacional neste contexto tem como finalidade integrar os algoritmos de gerao de malhas em uma API (Aplication Program Interface) consistente entre os algoritmos e os modeladores de malhas de elementos finitos. Desta forma, cria-se uma biblioteca com algoritmos de gerao de malhas que proporciona a incorporao dos algoritmos em diversos modeladores, principalmente tridimensionais, necessitando apenas o desenvolvimento de interface com o usurio para coleta de dados necessrio. Este trabalho descreve uma biblioteca computacional que integra os algoritmos de gerao de malhas de elementos finitos desenvolvidos no decorrer de anos da linha de pesquisa de Computao Grfica Aplicada do Departamento de Engenharia Civil e do Tecgraf/PUC-Rio. Os algoritmos considerados so bidimensionais e tridimensionais. Os algoritmos bidimensionais geram malhas estruturadas atravs de mapeamento transfinito linear, bilinear e trilinear, e tambm malhas noestruturadas com utilizao de trs procedimentos distintos de triangulao arbitrria. Os algoritmos tridimensionais geram malhas estruturadas com as tcnicas de sweep e mapeamento transfinito tridimensional. Malhas volumtricas no-estruturadas de tetraedros so geradas com utilizao de um algoritmo de avano da fronteira (contrao de contorno). O trabalho esta dividido em histrico, descrio da biblioteca, exemplos de aplicao da biblioteca, concluses e referncias utilizadas no trabalho. No histrico descreve-se os programas de anlise de elementos finitos e os trabalhos de gerao de malhas da linha de pesquisa. Na parte de descrio da biblioteca apresenta-se os objetivos da criao da biblioteca, as funes que a compem, formatos dos dados de entrada/sada e exemplo da API. Na seo de exemplos de aplicao so citados alguns programas que utilizam a biblioteca. Nas concluses so feitas as consideraes finais sobre o trabalho. 2 HISTRICO

A linha de pesquisa da Computao Grfica Aplicada do Departamento de Engenharia Civil e do Tecgraf da PUC-Rio desenvolve h vrios anos programas de anlise de elementos finitos (FEMOOP1), juntamente com pr-processadores grficos bidimensionais (MTool2) e tridimensionais (MG3), e ps-processadores bidimensionais (MView4) e tridimensionais (POS3D5).

Antonio C. de O. Miranda e Luiz F. Martha.

Faz-se aqui um breve histrico da linha de pesquisa na rea de gerao de malhas. O trabalho de Paulino (1988)6 apresenta o desenvolvimento, implementao e funcionamento de um programa interativo para gerao de dados de modelos de elementos finitos de estruturas reticuladas espaciais. Tambm expe uma proposta de metodologia para elaborao da arquitetura do programa, os ambientes de desenvolvimento, interface e estrutura de dados. Na mesma filosofia de trabalho de Paulino, Fonseca7 apresenta um pr-processador de malhas transfinitas tridimensionais de elementos finitos que so criadas a partir de sees transversais do modelo. O trabalho de Campos (1991)8 aborda a gerao de malhas de elementos finitos bidimensionais baseada em uma estrutura de dados topolgica, consistindo de um pr-processador grfico interativo para discretizao numrica de modelos bidimensionais. O trabalho de Vianna (1992)9, que aborda a modelagem geomtrica estendida para modelos bidimensionais, juntamente com o trabalho de Guimares (1992)10 compem um sistema integrado para problemas de elasticidade plana. Vianna tambm aborda um gerador automtico de malhas bidimensionais baseado na tcnica de avano de fronteira. Um outro trabalho, de Cavalcante Neto (1994)11, descreve um ambiente computacional grfico interativo para anlise integrada auto-adaptativa de modelos bidimensionais de elementos finitos, com aplicao em problemas estruturais mecnicos, baseado em uma tcnica de enumerao espacial recursiva. Um gerador de malhas bidimensionais foi desenvolvido, combinando a tcnica de quadtree12 e a tcnica de triangulao por contrao do contorno. O algoritmo gera os elementos no interior da regio por quadtree e na faixa na fronteira da regio por triangulao. Em um trabalho mais recente dos autores, um outro algoritmo de gerao de malhas bidimensionais apresentado baseado na tcnica de enumerao espacial recursiva e contrao de contorno, mas que incorpora novas idias desenvolvidas por Cavalcante Neto (1998)13 em um algoritmo tridimensional de malhas no-estruturadas. Testes foram feitos com outros algoritmos anteriores descritos comparando tempo e qualidade de forma do elemento e se demonstra que este algoritmo apresenta melhores resultados tanto no tempo quanto na forma (1999)14. No que se refere modelagem tridimensional, como mencionado, o trabalho de Fonseca (1989)3 descreve um pr-processador grfico interativo para gerao de modelos de elementos finitos slidos atravs do mapeamento transfinito tridimensional. Gomes Coelho (1998)15 desenvolveu em seu trabalho o MG (Mesh Generator): um modelador de malhas de superfcies com geometria arbitrria, com enfoque na interseo entre retalhos de malhas de superfcie distintas. Cavalcante Neto (1998)13 descreve uma tcnica de gerao de malhas volumtricas de elementos tetradricos para domnios tridimensionais arbitrrios. Com o objetivo de escrever a Biblioteca Computacional de Gerao de malhas, os autores reescreveram o algoritmo de Fonseca3, tornando-o independente do pr-processador. Para isso nossos mtodos de construo da malhas foram desenvolvidos (1999)16. A mesma idia foi introduzida na modelagem de slidos atravs da tcnica de sweep onde feita o arrasto de uma seo transversal ao longo de uma trajetria no espao (1999)17.

Antonio C. de O. Miranda e Luiz F. Martha.

3 DESCRIO DA BIBLIOTECA Os objetivos no desenvolvimento desta biblioteca foram: (a) disponibilizar os algoritmos para programas que necessitem de gerao de malhas de elemento finitos; (b) tornar os algoritmos independentes dos programas de pr-processamento; (c) permitir a programao dos pr-processadores sem preocupao com os algoritmos especficos; (d) padronizar os argumentos de entrada e sada dos algoritmos. Os argumentos de entrada e sada dos pontos foram padronizados seguindo uma representao por um vetor, como mostra a Figura 1(a). As coordenadas bidimensionais seguem em duplas (x,y) e os tridimensionais em seguem triplas (x,y,z). A conectividade dos elementos representada por um vetor, Figura 1(b), onde o primeiro argumento representa o numero de ns (nn) do elemento e os argumentos seguintes indicam os ndices dos ns, no vetor de pontos, que representa o elemento. E assim seqencialmente para todos os elementos. Apresenta-se um exemplo dos argumentos de entrada e sada na Figura 2, com um pseudo-cdigo similar linguagem C.

(a) Vetor de coordenadas dos pontos: x0 \ (ponto 0) y0 / x1 \ (ponto 1) y1 / x2 \ (ponto 2) y2 / ... x n-1 y n-1

\ / (ponto n-1)

(b) Vetor de conectividade dos elementos: nn1 id1 id2 id 3 Id4 id5 id6 nn2 \/ nmero de ns id1 id2 id 3 ...

\/ Nmero de ns

\ / conectividade do elemento

\ conectividade do elemento

Figura 1 - Vetores de coordenadas e conectividade.

Antonio C. de O. Miranda e Luiz F. Martha.

Msh2DShape Argumentos de entrada:


int n_loops, int *loop_segs, double *bdry_pts, int type_mesh, /* /* /* /* /* /* /* /* /* nmero de circuitos vetor com o nmero de segmentos em cada circuito vetor de coordenadas do contorno Tipo de elemento: T3 (3) ou T6 (6) nmero de ns gerados coordenadas dos ns da malha nmero de elementos gerados conectividade dos elementos */ */ */ */ */ */ */ */ */

Argumentos de sada:
int *n_node, double **coords, int *n_elem, int **conn

Figura 2 - Exemplo dos argumentos de entrada e sada de uma funo de gerao de malha. A seguir faz-se uma descrio das funes que geram as malhas de elementos finitos. A Figura 3 mostra de forma resumida as funes contidas na biblioteca.

Figura 3 - Resumo da Biblioteca Computacional.

Antonio C. de O. Miranda e Luiz F. Martha.

3.1 Gerao de Malhas Bidimensionais


Msh2DBilinear

Mapeamento transfinito bilinear para regies quadrilaterais com qualquer forma para os lados . O nmero de segmentos em lados opostos devem ser iguais.
8, 18

Figura 4 Exemplo de gerao de malha utilizando Msh2DBilinear.


Msh2DCollBilinear

Mapeamento transfinito bilinear para uma regio triangular que conceitualmente formada por uma regio quadrilateral com um dos lados colapsado para um ponto8, 18. Os trs lados podem ter qualquer forma e os lados adjacentes ao lado colapsado devem ter o mesmo nmero de segmentos.
Msh2DLoft

Mapeamento transfinito linear entre dois lados opostos de uma regio quadrilateral8, 18. Os outros dois lados devem ser linhas retas. O nmero de segmentos nos lados opostos devem ser iguais.

Figura 5 Exemplo de gerao de malha utilizando Msh2DLoft.


Msh2DCollLoft

Mapeamento transfinito linear entre um ponto e uma curva, que forma uma regio triangular8, 18 . Os dois lados da regio que so adjacentes ao ponto de lofting tem de ser linhas retas e ter o mesmo nmero de pontos.

Antonio C. de O. Miranda e Luiz F. Martha.

Msh2DTrilinear

Mapeamento transfinito trilinear para uma regio triangular com qualquer forma para os lados . O nmero de segmentos em todos os lados devem ser iguais.
8, 18

Figura 6 Exemplo de gerao de malha utilizando Msh2DTrilinear.


Msh2DBoundContraction

Triangulao genrica aplicvel a contornos fechados sem auto-interseo9. Os pontos do circuito externo devem estar orientados em sentido horrio e circuitos internos (furos) em sentido anti-horrio. A triangulao feita usando uma tcnica de contrao de contorno. Os pontos interiores da triangulao podem ser gerados pelo algoritmo e/ou fornecidos. Dois procedimentos so utilizados para gerar os pontos interiores. O primeiro procedimento utiliza-se de uma estrutura quadtree para gerar pontos no centro de cada clula e depois faz-se uma contrao do contorno. O outro procedimento gera os pontos interiores em uma grade regular.

Figura 7 Exemplo de gerao de malha utilizando Msh2DBoundContraction.


Msh2DQuadTree

Triangulao genrica aplicvel a contornos fechados sem auto-interseo11. Os pontos do circuito externo devem estar orientados em sentido horrio e circuitos internos (furos) em sentido anti-horrio. Para elementos Q4 e Q8, o nmero de segmentos (lados de elementos) deve ser par

Antonio C. de O. Miranda e Luiz F. Martha.

em cada circuito. O algoritmo utiliza-se de uma estrutura quadtree e constri os elementos do interior do domnio utilizando padres de elementos para cada configurao da quadtree; para a faixa do contorno gera os elementos por uma tcnica de contrao de contorno.

Figura 8 Exemplo de gerao de malha utilizando Msh2DQuadTree.


Msh2DShape

Triangulao genrica aplicvel a contornos fechados sem auto-interseo14. Os pontos do circuito externo devem estar orientados em sentido horrio e circuitos i nternos (furos) em sentido anti-horrio. O algoritmos utiliza uma estrutura de quadtree para dar uma gradao de transio na gerao dos ns interiores. Os pontos do domnio so gerados conjuntamente com o avano da fronteira e de acordo com o gradiente dado pela rvore quadtree. O algoritmo contm adicionalmente um procedimento de melhoria local da malha.

Figura 9 Exemplo de gerao de malha utilizando Msh2DShape.

Antonio C. de O. Miranda e Luiz F. Martha.

3.2 Gerao de Malhas Tridimensionais


Msh3DExtrusion

Sweep de uma seo transversal ao longo de um segmento reto17. A superfcie geradora deve ter elementos triangulares ou quadrilaterais.

Figura 10 Exemplo de gerao de malha utilizando Msh3DExtrusion.


Msh3DCurveSweep

Sweep de uma seo transversal ao longo de uma curva no espao17. Os vetores u, v e w dever estar normalizados e ortogonais entre si. O vetores tangentes a trajetria do sweep, wi, devem seguir a mesmo sentido da trajetria do sweep.

Figura 11 Exemplo de gerao de malha utilizando Msh3DCurveSweep.

Antonio C. de O. Miranda e Luiz F. Martha.

Msh3DMapp

Mapeamento transfinito tridimensional a partir de superfcies que representam as sees transversais de um modelo16. As sees transversais so interpoladas com uso de uma curva spline cbica. As sees transversais devem ter elementos triangulares e quadrilaterais e serem topogicamente idnticas. Os pontos bases so os pontos conhecidos em cada seo transversal onde uma curva spline ir percorrer. O ponto base deve situar-se no contorno da seo transversal.

Figura 12 Exemplo de gerao de malha utilizando Msh3DMapp.


Msh3DGeneration

Algoritmo para gerao de malhas volumtricas no-estruturadas de tetraedros para domnios arbitrrios13. A entrada de dados deve ser feita por representao de fronteira, por faces triangulares. O modelo deve estar fechado e as orientaes das normais das faces da fronteira devem apontar para dentro do modelo

Figura 13 Exemplo de gerao de malha utilizando Msh3DGeneration.

10

Antonio C. de O. Miranda e Luiz F. Martha.

3.3 Funes Auxiliares


Msh2DFreeNodes e Msh3DFreeNodes

Libera a memria do vetor de coordenadas dos pontos passada como argumento de sada pelos algoritmos bidimensionais e tridimensionais, respectivamente.
Msh2DFreeConn e Msh3DFreeConn

Libera a memria do vetor de conectividade dos elementos passada como argumento de sada pelos algoritmos bidimensionais e tridimensionais, respectivamente.

EXEMPLOS DE USO DA BIBLIOTECA

Esta seo apresenta alguns exemplos de programas que se utilizaram da biblioteca computacional. Como mencionado anteriormente, h apenas a necessidade de obteno dos dados de entrada para as funes e em seguida retornada uma malha. Desta forma no somente prprocessadores de elementos finitos utilizam as funes. Os seguintes programas utilizam-se das funes de gerao de malhas: MTool2 (Mesh Tool) - Programa completo para anlise bidimensional de elementos finitos. Quebra2D19 - Programa bidimensional para anlise de fadiga e propagao de trincas. MG3 (Mesh Generator) - Pr-processador tridimensional de malhas de elementos finitos. FRANC3D20, Fracture Analysis Code 3D - Programa tridimensional de anlise de propagao de trincas. RECON21 - Simulador do processo reverso de sees geolgicas. MM22, Multi-Mesher - Programa para gerao de malhas tridimensionais para geologia estrutural.

CONCLUSO

Este trabalho descreve uma biblioteca computacional de gerao de malhas de elementos finitos que inclui algoritmos desenvolvidos pela linha de pesquisa da Computao Grfica Aplicada do Departamento de Engenharia Civil e do Tecgraf/PUC-Rio, em uma API genrica. Esto includos algoritmos de gerao de malhas estruturas e no-estruturadas bidimensionais e tridimensionais. Apresenta tambm alguns exemplos de aplicao da biblioteca em programas de anlise e prprocessamento. Os argumentos de entrada e sada so padronizados em vetores, existentes em qualquer linguagem de programao no utilizando assim tipos especficos, que torna a idia aplicvel em outras linguagens. Tambm, no h vnculos entre a gerao da malha e as estruturas de dados existentes nos pr-processadores. Logo a primeira conseqncia da biblioteca que o usurio programador pode trocar uma funo por outra, de acordo com sua finalidade, sem a necessidade de mudana nos argumentos de entrada e sada. Outra conseqncia que permite incluir novos

11

Antonio C. de O. Miranda e Luiz F. Martha.

algoritmos de gerao de malhas na biblioteca, que importante para continuidade da linha de pesquisa. Apesar que a biblioteca ter sua principal utilizao em elementos finitos, ela pode ser utilizada em qualquer programa que necessite uma discretizao do domnio. A principal conseqncia deste trabalho disponibilizar de imediato uma ferramenta para gerao de malhas com muitas facilidades, como j mencionado no corpo do trabalho. Um fato importante neste trabalho que ele s foi possvel com a continuidade de trabalhos anteriores dentro da linha de pesquisa. Isso fica demonstrado na seo histrico deste trabalho que comea com algoritmos simples, como mapeamento transfinito bidimensional, at algoritmos mais complicados como gerao de malhas genricas tridimensionais. Portanto, de fato os autores deste trabalho so todos aqueles que contriburam com os seus algoritmos para a biblioteca computacional de gerao de malhas.

Figura 14 Exemplo do uso da biblioteca no MTool.

12

Antonio C. de O. Miranda e Luiz F. Martha.

Figura 15 Exemplo do uso da biblioteca no Quebra2D.\

Figura 16 Exemplo do uso da biblioteca no MG.

13

Antonio C. de O. Miranda e Luiz F. Martha.

Figura 17 Exemplo do uso da biblioteca no FRANC3D.

REFERNCIAS [1] Martha, L.F.; Menezes, I.F.M.; Lages, E.N.; Parente Jr., E.; Pitangueira, R.L.S., An OOP Class Organization for Materially Nonlinear Finite Element Analysis, Join Conference of Italian Group of Computational Mechanics and Ibero-Latin American Association of Computational Methods in Engineering, Padua, Italia, Set. 1996, pp. 229-232, 1996. [2] MTool - Bidimensional Mesh Tool - Manual do Usurio, PUC-Rio, 1992. [3] MG Mesh Generation , Manual do Usurio, verso 3.0, PUC-Rio, 1996. [4] MVIEW - Bidimensional Mesh View, (Verso 3.0) - PUC-Rio, 1997. [5] Celes Filho, W.; Martha, L. F. e Gattass, M. - An Efficient Data Structure for Solid Finite Element Analysis Post-Processor (in Portuguese), XI Brazilian Congresss of Mechanic Engineering, pp. 105-108, 1991. [6] Paulino, G. H. - Pr-Processamento de Estruturas Reticulares Espaciais, Dissertao de Mestrado, Departamento de Engenharia Civil, PUC/Rio, 1988. [7] Fonseca, G L. - Editor Grfico de Malhas Transfinitas Tridimensionais para Elementos Finitos, Dissertao de Mestrado, Departamento de Engenharia Civil, PUC/Rio, 1989. [8] Campos, J. A. P. - Gerao de Malhas de Elementos Finitos Bidimensionais Baseada em uma Estrutura de Dados Topolgica, Dissertao de Mestrado, Departamento de Engenharia Civil, 1991. [9] Vianna, A. C. - Modelagem Geomtrica Estendida para Modelos Bidimensionais de Elementos Finitos, Dissertao de Mestrado, Departamento de Engenharia Civil, 1992.

14

Antonio C. de O. Miranda e Luiz F. Martha.

[10] Guimares, L. G. S. - Disciplina de Programao Orientada a Objetos para Anlise e Visualizao Bidimensional de Modelos de Elementos Finitos, Dissertao de Mestrado, Departamento de Engenharia Civil, PUC/Rio, 1992. [11] Cavalcante Neto, J. B. - Simulao Auto-Adaptativa Baseada em Enumerao Espacial Recursiva de Modelos Bidimensionais de Elementos Finitos, Dissertao de Mestrado, Departamento de Engenharia Civil, PUC/Rio, 1994. [12] Baehmann, P. L.; Wittchen, S. L.; Shephard, M. S.; et al - Robust Geometrically Based, Automatic Two-Dimensional Mesh Generation, International Journal for Numerical Methods in Enginnering, vol. 24, pp. 1043-1078, 1987. [13] Cavalcante Neto, J. B. - Gerao de Malha e Estimativa de Erro para Modelos Tridimensionais de Elementos Finitos com Trincas, Dissertao de Doutorado, Departamento de Engenharia Civil, PUC/Rio, 1998. [14] Miranda, A.C. de O.; Cavalcante Neto, J.B.; Martha, L.F., An Algorithm for Twodimensional Mesh Generation for Arbitrary Regions with Cracks, SIBGRAPI99 XII Brazilian Symposium on Computer Graphics, Image Processing and Vision, UNICAMP/SBC, Campinas, SP, Out. 1999, IEEE Computer Society Order Number PRO0481, ISBN 0-7695-0481-7, Eds.: J. Stolfi & C. Tozzi, pp. 29-38, 1999. [15] Gomes Coelho, L. C. - Modelagem de Cascas com Intersees Paramtricas, Dissertao de Doutorado, Departamento de Informtica, PUC/Rio, 1998. [16] Miranda, A.C. de O.; Martha, L.F., Mapeamento Transfinito Tridimensional, 20th Iberian Latin-American Congress on Computational Methods in Enginnering, 1999. [17] Miranda, A. C. de O. - Integrao de Algoritmos de Gerao de Malhas de Elementos Finitos, Dissertao de Mestrado, Departamento de Engenharia Civil, PUC-Rio, 1999. [18] Haber, R.; Shephard, M. S.; Greenberg, D. P.; Abel, J. F. and Gallagher, R. H. - A General Two-dimensional, Graphical Finite Element Preprocessor, International Journal for Numerical Methods in Enginnering, vol.17, pp. 1015-1044, 1981. [19] Arajo, T.D.P.; Cavalcante Neto, J.B.; Carvalho, M. T. M.; Bittencourt, T.N.; Martha, L.F., Adaptive Simulation of Fracture Processes Based on Spatial Enumeration Techniques, International Journal of Rock Mechanics and Mining Sciences, vol. 34, no. 3/4, p. 551 (abstract) and CD-rom (full paper), 1997. [20] Carter, B. J.; Wawrzynek, P. A.; Ingraffea, A. R.- Automatic 3-D Growth Simulation, International Jornal For Numerical Methods in Enginnering, vol. 47, pp. 229-253, 2000. [21] Martha, L.F.; Carvalho, P.C.P.; Bender, A.A., A Topological Data Structure as a Framework for Balancing of Geological Cross-Sections, Proceedings of the 8th International Conference of the International Association for Computer Methods and Advances in Geomechanics, Edited by H.J. Siriwardane, A.A. Balkema, pp. 477-482, 1994. [22] Cavalcanti, P. R. and U. T. Mello, 1999, Three-dimensional constrained Delaunay Triangulation: a minimalist approach, 8th International Meshing Roundtable Proceedings, p. 119- 129.

15