Anda di halaman 1dari 150

DESENVOLVIMENTO DE UM PROGRAMA

DE ELEMENTOS FINITOS VERSTIL

ANDR FILIPE MARTINS DE SOUSA

Dissertao submetida para satisfao parcial dos requisitos do grau de


MESTRE EM ENGENHARIA CIVIL ESPECIALIZAO EM ESTRUTURAS

Orientador: Professor Doutor lvaro Ferreira Marques Azevedo

OUTUBRO DE 2014

MESTRADO INTEGRADO EM ENGENHARIA CIVIL 2013/2014


DEPARTAMENTO DE ENGENHARIA CIVIL
Tel. +351-22-508 1901
Fax +351-22-508 1446

miec@fe.up.pt

Editado por

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO


Rua Dr. Roberto Frias
4200-465 PORTO
Portugal
Tel. +351-22-508 1400
Fax +351-22-508 1440

feup@fe.up.pt

http://www.fe.up.pt

Reprodues parciais deste documento sero autorizadas na condio que seja


mencionado o Autor e feita referncia a Mestrado Integrado em Engenharia Civil 2013/2014 - Departamento de Engenharia Civil, Faculdade de Engenharia da
Universidade do Porto, Porto, Portugal, 2014.

As opinies e informaes includas neste documento representam unicamente o ponto


de vista do respetivo Autor, no podendo o Editor aceitar qualquer responsabilidade
legal ou outra em relao a erros ou omisses que possam existir.

Este documento foi produzido a partir de verso eletrnica fornecida pelo respetivo
Autor.

Desenvolvimento de um Programa de Elementos Finitos Verstil

O nico lugar onde sucesso


vem antes do trabalho no dicionrio.
Albert Einstein

Desenvolvimento de um Programa de Elementos Finitos Verstil

Desenvolvimento de um Programa de Elementos Finitos Verstil

RESUMO
A importncia da simulao numrica justifica a realizao de um trabalho que faa uso das
possibilidades computacionais para desenvolver uma soluo informtica que implemente o Mtodo do
Elementos Finitos na resoluo de diversos problemas na rea da engenharia estrutural.
Nesta dissertao so descritas diversas teorias e formulaes de elementos finitos usadas correntemente
na anlise de problemas estruturais. Das diversas formulaes e tipos de elementos finitos disponveis
so focados os elementos finitos unidimensionais, bidimensionais, tridimensionais, de viga e de laje.
So apresentados elementos finitos de viga formulados pela teoria de Euler-Bernoulli e pela teoria de
Timoshenko. Os elementos finitos de laje apresentados abrangem a teoria de Kirchhoff e a teoria de
Reissner-Mindlin.
De modo a implementar computacionalmente o Mtodo dos Elementos Finitos so discutidos os
fundamentos do mtodo e o seu mbito de aplicabilidade. alvo de pormenorizao a obteno das
funes de forma, das matrizes de rigidez elementares e dos vetores de foras nodais equivalentes.
focada a construo da equao de equilbrio global e a sua resoluo. A integrao numrica e a gerao
de malhas uma das partes constituintes da anlise estrutural pelo Mtodo dos Elementos Finitos.
Assim, so abordadas algumas tcnicas de gerao de malhas e discutidos alguns requisitos que as
malhas devem cumprir.
So abordados alguns conceitos sobre desenvolvimento de programas informticos, discutido o modo
como o programa desenvolvido foi construdo e apresentados alguns cdigos exemplificativos de
algumas das tarefas realizadas.
apresentado o programa de modelao e anlise estrutural pelo Mtodo dos Elementos Finitos
desenvolvido no mbito desta dissertao. So referidas e apresentadas algumas classes e mtodos do
programa. apresentada a interface grfica do utilizador e as funcionalidades disponveis. De modo a
exemplificar o funcionamento do programa so detalhadas todas as etapas desde a modelao da
estrutura at visualizao grfica dos resultados.

PALAVRAS-CHAVE: Mtodo dos Elementos Finitos, Elementos Unidimensionais, Elementos


Bidimensionais, Elementos Tridimensionais, Vigas, Lajes, Desenvolvimento de Software, Java, FEM
for Students.

Desenvolvimento de um Programa de Elementos Finitos Verstil

ii

Desenvolvimento de um Programa de Elementos Finitos Verstil

ABSTRACT
The importance of numerical simulation justifies a work that makes use of computational possibilities
to develop a software solution that implements the Finite Element Method to solve various problems in
the area of structural engineering.
This dissertation describes several theories and formulations currently used in finite element structural
analysis problems. From the different formulations and types of finite elements available, the focus is
on one-dimensional, two-dimensional, three-dimensional finite element, beams and slabs. Finite beam
elements formulated by the Euler-Bernoulli theory and the Timoshenko theory are presented. The finite
element slab presented covers the Kirchhoff theory and Reissner-Mindlin theory.
In order to implement computationally the Finite Element Method, the fundamentals of the method and
its scope of applicability are discussed. The acquisition of shape functions, the elementary stiffness
matrix and equivalent nodal forces vector are detailed. The construction of the global equilibrium
equation and its resolution is focused on. The numerical integration and mesh generation is one of the
constituent parts of the structural analysis by Finite Element Method. Thus, some techniques for mesh
generation are addressed and requirements that the meshes must meet are discussed.
Concepts on the development of computer programs are referred to, how the software was built is
discussed and illustrative codes of some of the tasks performed are presented.
Program modelling and structural analysis by Finite Element Method developed in the context of this
dissertation is presented. Classes and methods of the program are referred to and presented. The
graphical user interface and functionalities are addressed. In order to demonstrate the operation of the
program, all the steps from the structure modelling to the graphic display of results are detailed.

KEYWORDS: Finite Element Method, One-dimensional Elements, Two-dimensional Elements, Tree-dimensional Elements, Beams, Slabs, Software Development, Java, FEM for Students.

iii

Desenvolvimento de um Programa de Elementos Finitos Verstil

iv

Desenvolvimento de um Programa de Elementos Finitos Verstil

NDICE GERAL

RESUMO .................................................................................................................................. i
ABSTRACT .............................................................................................................................................. iii

1. INTRODUO .......................................................................................................................... 1
1.1. MBITO E OBJETIVOS DO TRABALHO ............................................................................................ 1
1.2. ESTRUTURAO DA DISSERTAO................................................................................................ 2

2. FUNDAMENTOS DO MTODO DOS ELEMENTOS FINITOS ................. 3


2.1. DESCRIO DO MTODO DOS ELEMENTOS FINITOS..................................................................... 3
2.2. ANLISE DE MEIOS DISCRETOS E MEIOS CONTNUOS ................................................................. 4
2.3. METODOLOGIA DE CLCULO .......................................................................................................... 5
2.4. ABORDAGEM DE ENGENHARIA ....................................................................................................... 5
2.4.1. SELEO DO MODELO ESTRUTURAL .................................................................................................. 5
2.4.2. DISCRETIZAO DO MODELO ............................................................................................................. 6
2.4.3. SISTEMA DE EQUAES ELEMENTARES ............................................................................................. 7
2.4.4. ASSEMBLAGEM ................................................................................................................................. 8
2.4.5. CONDIES DE FRONTEIRA E CARREGAMENTOS ................................................................................ 9
2.4.6. RESOLUO DO SISTEMA DE EQUAES ........................................................................................... 9
2.4.7. VERIFICAO E VALIDAO DOS RESULTADOS ................................................................................. 10

2.5. PRINCPIO DOS TRABALHOS VIRTUAIS......................................................................................... 10


2.6. REQUISITOS PARA A CONVERGNCIA DA SOLUO ................................................................... 12
2.6.1. CONDIO DE CONTINUIDADE ......................................................................................................... 12
2.6.2. CONDIO DE DERIVABILIDADE........................................................................................................ 13
2.6.3. CONDIO DE INTEGRABILIDADE ...................................................................................................... 13
2.6.4. CONDIO DE CORPO RGIDO ......................................................................................................... 13
2.6.5. CONDIO DE DEFORMAO CONSTANTE........................................................................................ 13

3. FORMULAO DE ELEMENTOS FINITOS.......................................................15


3.1. ELEMENTOS FINITOS UNIDIMENSIONAIS ...................................................................................... 15
3.1.1. TENSO ......................................................................................................................................... 15
3.1.2. PRINCPIO DOS TRABALHOS VIRTUAIS .............................................................................................. 16

Desenvolvimento de um Programa de Elementos Finitos Verstil

3.1.3. FUNES DE FORMA ...................................................................................................................... 16


3.1.4. CAMPO DE DESLOCAMENTOS.......................................................................................................... 17
3.1.5. CAMPO DE DEFORMAES ............................................................................................................. 17
3.1.6. CAMPO DE TENSES ...................................................................................................................... 17
3.1.7. ESFOROS INTERNOS .................................................................................................................... 18
3.1.8. TRANSFORMAO DE COORDENADAS ............................................................................................. 18

3.2. ELEMENTOS FINITOS BIDIMENSIONAIS ........................................................................................ 19


3.2.1. ESTADO PLANO DE TENSO/DEFORMAO ..................................................................................... 19
3.2.2. PRINCPIO DOS TRABALHOS VIRTUAIS ............................................................................................. 20
3.2.3. FUNES DE FORMA ...................................................................................................................... 21
3.2.4. CAMPO DE DESLOCAMENTOS.......................................................................................................... 21
3.2.5. CAMPO DE DEFORMAES ............................................................................................................. 22
3.2.6. CAMPO DE TENSES ...................................................................................................................... 23
3.2.7. TENSES E DIREES PRINCIPAIS .................................................................................................. 23

3.3. ELEMENTOS FINITOS TRIDIMENSIONAIS ...................................................................................... 24


3.3.1. ESTADO GERAL DE TENSO............................................................................................................ 24
3.3.2. PRINCPIO DOS TRABALHOS VIRTUAIS ............................................................................................. 25
3.3.3. FUNES DE FORMA ...................................................................................................................... 26
3.3.4. CAMPO DE DESLOCAMENTOS.......................................................................................................... 27
3.3.5. CAMPO DE DEFORMAES ............................................................................................................. 27
3.3.6. CAMPO DE TENSES ...................................................................................................................... 28
3.3.7. FAMLIAS DE ELEMENTOS FINITOS ................................................................................................... 28

3.4. ELEMENTOS FINITOS DE VIGA ...................................................................................................... 29


3.4.1. VIGAS PELA TEORIA DE EULER-BERNOULLI...................................................................................... 29
3.4.1.1. Breve Descrio da Teoria ....................................................................................................... 29
3.4.1.2. Princpio dos Trabalhos Virtuais ............................................................................................... 29
3.4.1.3. Funes de Forma ................................................................................................................... 30
3.4.1.4. Campo de Deslocamentos ....................................................................................................... 30
3.4.1.5. Campo de Deformaes ........................................................................................................... 31
3.4.1.6. Campo de Tenses .................................................................................................................. 31
3.4.1.7. Esforos Internos ...................................................................................................................... 32
3.4.2. VIGAS PELA TEORIA DE TIMOSHENKO .............................................................................................. 32
3.4.2.1. Breve Descrio da Teoria ....................................................................................................... 32

vi

Desenvolvimento de um Programa de Elementos Finitos Verstil

3.4.2.2. Princpio dos Trabalhos Virtuais ............................................................................................... 32


3.4.2.3. Funes de Forma .................................................................................................................... 33
3.4.2.4. Campo de Deslocamentos ........................................................................................................ 33
3.4.2.5. Campo de Deformaes ........................................................................................................... 34
3.4.2.6. Campo de Tenses ................................................................................................................... 35
3.4.2.7. Esforos Internos ...................................................................................................................... 35

3.5. ELEMENTOS FINITOS DE LAJE ...................................................................................................... 36


3.5.1. LAJES PELA TEORIA DE KIRCHHOFF ................................................................................................. 36
3.5.1.1. Breve Descrio da Teoria ........................................................................................................ 36
3.5.1.2. Princpio dos Trabalhos Virtuais ............................................................................................... 36
3.5.1.3. Funes de Forma .................................................................................................................... 37
3.5.1.4. Campo de Deslocamentos ........................................................................................................ 38
3.5.1.5. Campo de Deformaes ........................................................................................................... 39
3.5.1.6. Campo de Tenses ................................................................................................................... 39
3.5.1.7. Esforos Internos ...................................................................................................................... 40
3.5.2. LAJES PELA TEORIA DE REISSNER-MINDLIN...................................................................................... 40
3.5.2.1. Breve Descrio da Teoria ........................................................................................................ 40
3.5.2.2. Princpio dos Trabalhos Virtuais ............................................................................................... 41
3.5.2.3. Funes de Forma .................................................................................................................... 42
3.5.2.4. Campo de Deslocamentos ........................................................................................................ 42
3.5.2.5. Campo de Deformaes ........................................................................................................... 43
3.5.2.6. Campo de Tenses ................................................................................................................... 44
3.5.2.7. Esforos Internos ...................................................................................................................... 44

4. ELEMENTOS FINITOS COM SUBSTITUIO DE VARIVEL .............47


4.1. SUBSTITUIO DE VARIVEL EM UMA DIMENSO ...................................................................... 47
4.2. SUBSTITUIO DE VARIVEL EM DUAS DIMENSES .................................................................. 49
4.3. SUBSTITUIO DE VARIVEL EM TRS DIMENSES ................................................................... 52

5. INTEGRAO NUMRICA ...........................................................................................55


5.1. SELEO DO MTODO DE INTEGRAO NUMRICA ................................................................... 55
5.2. QUADRATURA DE GAUSS-LEGENDRE .......................................................................................... 55
5.2.1. FUNDAMENTOS DA QUADRATURA DE GAUSS-LEGENDRE................................................................... 55

vii

Desenvolvimento de um Programa de Elementos Finitos Verstil

5.2.2. INTEGRAO NUMRICA EM UMA DIMENSO ................................................................................... 56


5.2.3. INTEGRAO NUMRICA EM DUAS DIMENSES ................................................................................ 57
5.2.4. INTEGRAO NUMRICA EM TRS DIMENSES ................................................................................ 58

5.3. OUTRAS QUADRATURAS .............................................................................................................. 58


5.4. AVALIAO DA MATRIZ DE DEFORMAO.................................................................................. 59

6. GERAO DE MALHAS DE ELEMENTOS FINITOS ................................. 61


6.1. MALHAS DE ELEMENTOS FINITOS................................................................................................ 61
6.2. TCNICAS DE GERAO DE MALHAS .......................................................................................... 61
6.2.1. GERAO POR SOBREPOSIO DE GRELHA .................................................................................... 61
6.2.2. GERAO POR TRANSFORMAO DE COORDENADAS ...................................................................... 62
6.2.3. GERAO POR MAPEAMENTO CONFORME ....................................................................................... 62
6.2.4. GERAO POR MAPEAMENTO ISOPARAMTRICO .............................................................................. 63
6.2.5. GERAO POR MAPEAMENTO TRANSFINITO .................................................................................... 63
6.2.6. GERAO POR TRIANGULAO DE DELAUNAY ................................................................................. 63
6.2.7. GERAO POR QUADTREES............................................................................................................ 63

6.3. TIPOS DE REFINAMENTO .............................................................................................................. 64


6.4. REFINAMENTO DA MALHA DE ELEMENTOS FINITOS ................................................................... 64
6.5. QUALIDADE DAS MALHAS DE ELEMENTOS FINITOS ................................................................... 65

7. NOES SOBRE DESENVOLVIMENTO DE SOFTWARE ..................... 69


7.1. PROJETO DE SOFTWARE .............................................................................................................. 69
7.2. LINGUAGENS DE PROGRAMAO ................................................................................................ 70
7.2.1. CRITRIOS DE AVALIAO DA LINGUAGEM ....................................................................................... 70
7.2.2. CATEGORIAS DE LINGUAGENS DE PROGRAMAO ........................................................................... 71
7.2.3. MTODOS DE IMPLEMENTAO ....................................................................................................... 71
7.2.3.1. Compilao ............................................................................................................................... 71
7.2.3.2. Interpretao............................................................................................................................. 72
7.2.3.3. Sistemas de Implementao Hbridos ...................................................................................... 72

7.3. PRINCPIOS DE DESENVOLVIMENTO ............................................................................................ 72


7.4. DESENVOLVIMENTO DE SOFTWARE ............................................................................................. 73
7.4.1. PROCESSO DE DESENVOLVIMENTO DE SOFTWARE........................................................................... 73
7.4.2. PRINCPIOS FUNDAMENTAIS ............................................................................................................ 74

viii

Desenvolvimento de um Programa de Elementos Finitos Verstil

7.4.3. CONCEITOS DE PROJETO ................................................................................................................ 74


7.4.3.1. Abstrao .................................................................................................................................. 74
7.4.3.2. Arquitetura ................................................................................................................................. 75
7.4.3.3. Padres ..................................................................................................................................... 75
7.4.3.4. Modularidade ............................................................................................................................. 75
7.4.3.5. Encapsulamento ........................................................................................................................ 76
7.4.3.6. Independncia Funcional .......................................................................................................... 76
7.4.3.7. Refinamento .............................................................................................................................. 76
7.4.3.8. Refatorao ............................................................................................................................... 76
7.4.3.9. Projeto Orientado a Objetos ...................................................................................................... 77
7.4.3.10. Projeto de Classes .................................................................................................................. 77
7.4.4. AMBIENTES DE DESENVOLVIMENTO ................................................................................................. 77

7.5. INTERFACE GRFICA DO UTILIZADOR .......................................................................................... 77

8. IMPLEMENTAO COMPUTACIONAL ...............................................................79


8.1. FOCO E FUNCIONALIDADES DO PROGRAMA ................................................................................ 79
8.2. PROGRAMAO EM JAVA ............................................................................................................. 79
8.3. MTODO DOS ELEMENTOS FINITOS ............................................................................................. 81
8.3.1. CRIAO DOS ELEMENTOS FINITOS ................................................................................................. 81
8.3.2. ASSEMBLAGEM E RESOLUO DO SISTEMA DE EQUAES ............................................................... 87
8.3.3. EXTENSES, TENSES E ESFOROS INTERNOS ............................................................................... 90

8.4. INTERFACE GRFICA DO UTILIZADOR .......................................................................................... 93


8.4.1. ELEMENTOS DA INTERFACE DO UTILIZADOR ..................................................................................... 93
8.4.2. DESENHO DOS ELEMENTOS DO MODELO ESTRUTURAL ..................................................................... 96
8.4.3. APRESENTAO GRFICA DOS RESULTADOS ................................................................................. 101

8.5. PERSISTNCIA DE DADOS ........................................................................................................... 103

9. APRESENTAO DO PROGRAMA FEM FOR STUDENTS ................105


9.1. DESCRIO DO PROGRAMA ....................................................................................................... 105
9.2. PAINEL INICIAL E SEPARADORES ............................................................................................... 106
9.3. ETAPA DE MODELAO .............................................................................................................. 107
9.4. TIPOS DE ANLISE ....................................................................................................................... 110
9.5. APRESENTAO DOS RESULTADOS .......................................................................................... 112

ix

Desenvolvimento de um Programa de Elementos Finitos Verstil

9.6. OUTRAS FUNCIONALIDADES ...................................................................................................... 113

10. CONCLUSO .................................................................................................................... 115


10.1. CONSIDERAES FINAIS .......................................................................................................... 115
10.2. SUGESTES PARA DESENVOLVIMENTOS FUTUROS ............................................................... 116

BIBLIOGRAFIA ..................................................................................................................................... 117

ANEXOS........................................................................................................................................ 119
A. PACOTES E CLASSES DO PROJETO DO FEM FOR STUDENTS ................................................... 121
A.1. PACOTES DO PROJETO ................................................................................................................... 121
A.2. CLASSES DE CADA PACOTE ............................................................................................................. 121

B. MODELAO E ANLISE DE UM PRTICO.................................................................................... 127


C. MODELAO E ANLISE DE UMA PAREDE................................................................................... 129

Desenvolvimento de um Programa de Elementos Finitos Verstil

NDICE DE FIGURAS

Fig.2.1 Discretizao de uma viga com elementos finitos retangulares ............................................... 6


Fig.2.2 Malha constituda por elementos finitos unidimensionais ......................................................... 8
Fig.2.3 Corpo sujeito a diversos tipos de aes exteriores ................................................................ 11
Fig.3.1 Elemento finito unidimensional sujeito a uma carga axial ...................................................... 16
Fig.3.2 Elemento finito unidimensional de n ns................................................................................. 17
Fig.3.3 Elemento finito retangular de quatro ns ................................................................................ 20
Fig.3.4 Definio de tenses, tenses principais e respetivas direes ............................................ 23
Fig.3.5 Slido sujeito a um estado tridimensional de tenso .............................................................. 24
Fig.3.6 Elemento finito paralelepipdico de oito ns .......................................................................... 26
Fig.3.7 Elemento finito de viga sujeito a um carregamento transversal ............................................. 29
Fig.3.8 Elemento finito de viga com n ns .......................................................................................... 30
Fig.3.9 Elemento finito de viga com n ns .......................................................................................... 33
Fig.3.10 Graus de liberdade e orientaes das rotaes ................................................................... 36
Fig.3.11 Elemento finito retangular de quatro ns .............................................................................. 37
Fig.3.12 Representao do deslocamento de um ponto no plano xz ................................................. 38
Fig.3.13 Elemento finito retangular de quatro ns. ............................................................................. 42
Fig.3.14 Representao do deslocamento de um ponto no plano xz. ................................................ 42
Fig.4.1 Elemento finito unidimensional de n ns com substituio de varivel .................................. 47
Fig.4.2 Transformao de um elemento real para um elemento normalizado ................................... 49
Fig.4.3 Transformao de um elemento real para um elemento normalizado ................................... 52
Fig.6.1 Gerao de malhas por sobreposio de grelha .................................................................... 62
Fig.6.2 Gerao de malhas por transformao de coordenadas ........................................................ 62
Fig.6.3 Gerao de malhas por mapeamento isoparamtrico ............................................................ 63
Fig.6.4 Gerao de malhas pela tcnica de quadtree ........................................................................ 64
Fig.6.5 Transio entre elementos finitos de dimenses diferentes ................................................... 65
Fig.6.6 Ligaes no conformes entre elementos finitos .................................................................... 66
Fig.6.7 Elementos finitos de geometria desproporcionada ou distorcida ........................................... 66
Fig.9.1 Visualizao da janela e do painel inicial do programa ........................................................ 106
Fig.9.2 Ferramentas do separador Draw .......................................................................................... 108
Fig.9.3 Ferramentas do separador View ........................................................................................... 108
Fig.9.4 Ferramentas do separador Geometry ................................................................................... 108

xi

Desenvolvimento de um Programa de Elementos Finitos Verstil

Fig.9.5 Contedo do painel lateral Materials .................................................................................... 109


Fig.9.6 Ferramentas do separador Loads ........................................................................................ 109
Fig.9.7 Contedo do painel lateral Uniformly Distributed Loads ...................................................... 110
Fig.9.8 Funcionalidades do separador Analysis ............................................................................... 111
Fig.9.9 Contedo do painel lateral Numerical Analysis .................................................................... 111
Fig.9.10 Funcionalidades do separador Results .............................................................................. 112
Fig.9.11 Contedo do painel lateral Displacements ......................................................................... 112
Fig.B.1 Visualizao do painel inicial do programa .......................................................................... 127
Fig.B.2 Representao do prtico em anlise ................................................................................. 127
Fig.B.3 Visualizao da matriz de rigidez da estrutura .................................................................... 128
Fig.B.4 Visualizao do diagrama de momentos fletores ................................................................ 128
Fig.C.1 Visualizao do painel inicial do programa .......................................................................... 129
Fig.C.2 Desenho de um retngulo para representar a parede ........................................................ 129
Fig.C.3 Refinamento da malha de elementos finitos ........................................................................ 130
Fig.C.4 Escolha da quadratura e do nmero de pontos de integrao ............................................ 130
Fig.C.5 Visualizao da deformada da parede ................................................................................ 131
Fig.C.6 Visualizao do mapa de tenses na parede ...................................................................... 131

xii

Desenvolvimento de um Programa de Elementos Finitos Verstil

NDICE DE TABELAS

Tabela 5.1 Posies dos pontos de amostragem e respetivos pesos ................................................ 56


Tabela 5.2 Pesos e posies dos pontos de amostragem para quadrilteros ................................... 57
Tabela 5.3 Pesos e posies dos pontos de amostragem para hexaedros ....................................... 59
Tabela A.1 Pacotes e nmero de classes em cada pacote .............................................................. 121
Tabela A.2 Descrio das classes do pacote backend .................................................................... 121
Tabela A.3 Descrio das classes do pacote calculations ............................................................... 122
Tabela A.4 Descrio das classes do pacote finiteelement .............................................................. 122
Tabela A.5 Descrio das classes do pacote frontend ..................................................................... 123
Tabela A.6 Descrio das classes do pacote gausslegendre .......................................................... 124
Tabela A.7 Descrio das classes do pacote gausslobatto .............................................................. 124
Tabela A.8 Descrio das classes do pacote matrices .................................................................... 124
Tabela A.9 Descrio das classes do pacote shapefunctions .......................................................... 125
Tabela A.10 Descrio das classes do pacote variablesubstitution ................................................. 125

xiii

Desenvolvimento de um Programa de Elementos Finitos Verstil

xiv

Desenvolvimento de um Programa de Elementos Finitos Verstil

1
INTRODUO

1.1. MBITO E OBJETIVOS DO TRABALHO


A simulao numrica fundamental para a competitividade do projeto de estruturas. O projeto de
estruturas necessita de ferramentas informticas que auxiliem o seu desenvolvimento. A dificuldade ou
a impossibilidade de construir modelos fsicos para validar os pressupostos do projeto impulsionou o
desenvolvimento de ferramentas de simulao numrica. O Mtodo dos Elementos Finitos uma destas
ferramentas ao alcance dos projetistas.
O Mtodo dos Elementos Finitos um mtodo matemtico de anlise e resoluo de problemas
cientficos e de engenharia. De uma forma geral, o Mtodo dos Elementos Finitos utilizado na busca
de solues para problemas complexos, para os quais no se conhece uma soluo exata que possa ser
expressa de forma analtica. A grande quantidade de clculo associada aplicao deste mtodo requer
a utilizao de computadores capazes de dar resposta ao elevado nmero de clculos efetuados. Surge,
deste modo, a necessidade de transformar a formulao matemtica do Mtodo dos Elementos Finitos
num conjunto de instrues que possam ser interpretadas pelos computadores.
Antes de implementar computacionalmente o Mtodo dos Elementos Finitos necessrio fazer um
estudo aprofundado da sua formulao. Assim, so apresentadas diversas formulaes de elementos
finitos, nomeadamente, as formulaes de elementos finitos unidimensionais, bidimensionais,
tridimensionais, de viga e de laje. considerado que os materiais apresentam comportamento linear
elstico e que as estruturas e cargas estruturais so estticas. Esta simplificao reflete a forma de muitos
dos problemas estruturais encontrados na prtica de engenharia. O uso da integrao numrica tambm
abordado na medida do uso recorrente que tem no mbito do Mtodo dos Elementos Finitos. Como a
anlise de um problema requer a decomposio do domnio em estudo numa malha de elementos finitos,
so abordadas algumas tcnicas para gerao de malhas de elementos finitos e discutida a sua qualidade.
O desenvolvimento de ferramentas de simulao numrica orientadas para uso profissional tem
renegado a componente acadmica para segundo plano. A componente prtica desta dissertao consiste
no desenvolvimento de uma ferramenta orientada para o ensino do Mtodo dos Elementos Finitos. Esta
ferramenta disponibiliza a experincia de modelar com elementos finitos e face multiplicidade de
plataformas e velocidade com que evoluem, o programa desenvolvido foi construdo utilizando a
linguagem de programao Java.
Relativamente ao Mtodo dos Elementos Finitos so discutidos alguns dos seus fundamentos e
apresentadas as metodologias para obteno das funes de forma, clculo das matrizes de rigidez
elementares e vetores de foras nodais equivalentes. abordada a gerao de malhas de elementos
finitos, a resoluo do sistema de equaes global e o clculo dos esforos e tenses ao nvel de cada

Desenvolvimento de um Programa de Elementos Finitos Verstil

elemento finito. Do ponto de vista de programao so apresentados alguns conceitos sobre o projeto
de programas informticos. Como referido, a componente prtica desta dissertao consiste no
desenvolvimento de um programa de modelao e anlise estrutural por elementos finitos. Assim,
discutido o modo como o Mtodo dos Elementos Finitos est implementado computacionalmente no
programa desenvolvido.
Finalmente, o programa desenvolvido apresentado pelas ticas do programador e utilizador. Do ponto
de vista do programador discutido o modo como o programa foi construdo e exemplifica-se com a
apresentao de excertos de algumas das classes e mtodos do projeto. Esta exemplificao consiste na
apresentao de alguns dos cdigos construdos para realizar operaes de clculo associadas ao Mtodo
dos Elementos Finitos e outras relativas interface grfica do utilizador. Na tica de utilizao do
programa descrita a sua interface grfica com especificao do modo como as etapas associadas a uma
anlise por elementos finitos so realizadas.

1.2. ESTRUTURAO DA DISSERTAO


A presente dissertao est organizada em dez captulos. Esta diviso resultante da distribuio de
assuntos abordados.
O segundo captulo apresenta os fundamentos do Mtodo dos Elementos Finitos necessrios para a
compreenso dos assuntos abordados nos captulos seguintes.
No terceiro e quarto captulo so apresentados os mais comuns tipos de elementos finitos e teorias
associadas. Estes captulos so dedicados apresentao das formulaes de elementos finitos
unidimensionais, bidimensionais, tridimensionais, de viga e de laje. Pretende-se apresentar a informao
necessria compreenso das diversas formulaes de elementos finitos.
O quinto e o sexto captulo so dedicados integrao numrica e gerao de malhas de elementos
finitos, respetivamente. Procura-se completar a informao apresentada nos captulos anteriores sobre o
Mtodo dos Elementos Finitos.
No stimo captulo so referidos alguns conceitos fundamentais para as fases de planeamento e
desenvolvimento de programas informticos. So transmitidos alguns conhecimentos especficos sobre
programao e informaes necessrias correta tomada de decises ao longo do projeto de software.
O oitavo captulo dedicado implementao computacional. Neste captulo feita a apresentao do
programa na tica do programador, ou seja, apresentado o modo como o programa est construdo
com a incluso de alguns cdigos para exemplificao.
O nono captulo refere-se apresentao da interface grfica do programa de modelao e anlise
estrutural por elementos finitos desenvolvido no mbito desta dissertao.
Por fim, so apresentadas algumas concluses e sugestes para desenvolvimentos futuros.

Desenvolvimento de um Programa de Elementos Finitos Verstil

2
FUNDAMENTOS DO MTODO DOS
ELEMENTOS FINITOS

2.1. DESCRIO DO MTODO DOS ELEMENTOS FINITOS


O Mtodo dos Elementos Finitos uma excelente ferramenta numrica de resoluo de problemas do
meio contnuo. Hoje em dia, impensvel projetar estruturas inovadoras e/ou arrojadas sem se recorrer
a este mtodo de anlise estrutural.
A formulao do Mtodo dos Elementos Finitos apresentada neste trabalho uma extenso da
formulao matricial do Mtodo dos Deslocamentos. Desta forma, muitos dos conceitos associados ao
Mtodo dos Deslocamentos tm correspondncia com os da formulao do Mtodo dos Elementos
Finitos [2]. Por exemplo, destacam-se as noes de grau de liberdade, deslocamento generalizado, fora
generalizada, matriz de rigidez elementar, vetor de foras nodais equivalentes, assemblagem, introduo
das condies de apoio, equao de equilbrio, etc.
No mbito da Engenharia de Estruturas, o Mtodo dos Elementos Finitos tem como finalidade a
determinao do estado de tenso e de deformao de um elemento ou estrutura sujeita a aes
exteriores. , assim, til recorrer a uma sucesso de anlises e modificaes das suas caractersticas,
com o objetivo de se alcanar uma soluo otimizada, quer em termos econmicos, quer na verificao
dos requisitos funcionais e regulamentares [2].
O meio contnuo de carcter estrutural , em geral, muito complexo para ser analisado de forma exata,
por isso, so adotadas hipteses simplificadoras para criar um modelo matemtico aproximado em
relao ao sistema fsico original. O comportamento esttico, por exemplo, pressupe que as foras so
aplicas de forma suficientemente lenta de maneira a se poder desprezar as foras de inrcia e de
amortecimento. A linearidade material corresponde adoo de uma relao linear entre tenses e
deformaes. A linearidade geomtrica implica que os deslocamentos nas estruturas sejam
suficientemente pequenos de forma que as equaes de equilbrio possam ser escritas na configurao
indeformada. Deste modo, a escolha do tipo de anlise parte integrante do procedimento de modelao.
A modelao de um problema genrico que envolve meios contnuos, atravs da anlise de partes
discretas desses meios, em detrimento do todo d-se o nome de discretizao. Cada elemento finito e as
leis que regem o seu comportamento contribuem para o conhecimento e a anlise do problema global
[21]. A passagem da escala de anlise ao nvel de cada elemento finito para a anlise do todo d-se o
nome de assemblagem. Assim, na tica do utilizador, a resoluo de um problema complexo, ou sem
soluo analtica conhecida, pelo Mtodo dos Elementos Finitos passa pela resoluo sequencial e
estruturada de vrios problemas mais simples com soluo matemtica conhecida que, quando
agrupados, conduzem a uma soluo do problema global inicial.

Desenvolvimento de um Programa de Elementos Finitos Verstil

O Mtodo dos Elementos Finitos um mtodo aproximado e por este motivo a realizao de uma
simulao numrica sempre um modo aproximado para resolver um problema complexo. Assim, a sua
utilizao deve ser limitada a problemas para os quais no existam abordagens ou solues analticas
para a sua resoluo. Quando se recorre ao Mtodo dos Elementos Finitos para resolver problemas de
engenharia importante identificar as possveis fontes de erro e estimar a sua magnitude. A qualidade e
o rigor que empregue na modelao do problema estrutural vai influenciar os resultados obtidos da
anlise.

2.2. ANLISE DE MEIOS DISCRETOS E MEIOS CONTNUOS


Correntemente a anlise de estruturas feita com recurso a modelos de sistemas discretos. Este tipo de
anlise carateriza-se por fazer uso de um conjunto de elementos que modelam o domnio em estudo e
que se encontram unidos pelas suas extremidades. Estes elementos podem estar sujeitos a um conjunto
diversificado de aes exteriores. So exemplo de sistemas discretos as estruturas articuladas, as
estruturas reticuladas e as grelhas.
As estruturas articuladas caraterizam-se pelo facto dos seus membros transmitirem, unicamente,
esforos axiais. A ligao dos membros das estruturas articuladas feita por meio de articulaes da a
designao de estrutura articulada. Este facto leva a que haja liberdade de rotao nas articulaes. Uma
estrutura reticulada caracteriza-se pelo facto dos ns das suas barras estarem ligados de forma rgida ao
contrrio das estruturas articuladas em que estes esto ligados por meio de articulaes. Os membros de
uma estrutura reticulada podem ser submetidos a foras axiais, como os membros das estruturas
articuladas, bem como a esforos transversos e a momentos fletores, como os elementos de vigas. As
relaes de rigidez para os elementos de uma estrutura reticulada podem ser convenientemente obtidas
pela combinao das relaes de rigidez da estrutura articulada com os membros de viga. Uma grelha
uma estrutura onde as foras so aplicadas perpendicularmente ao seu plano, ao contrrio do que
acontece com os prticos planos onde as foras so aplicadas no seu plano.
A utilizao do Mtodo dos Elementos Finitos no se cinge anlise de sistemas discretos como os
referidos anteriormente. De facto, a sua generalizao permite cobrir a anlise do comportamento de
meios contnuos. A soluo matemtica da maioria dos problemas na Engenharia de Estruturas passa
pela determinao de um conjunto de incgnitas que representam variveis fsicas [21]. Estas variveis
so os graus de liberdade do problema.
Na sua essncia, a anlise de uma estrutura pelo Mtodo dos Elementos Finitos uma aplicao do
Mtodo dos Deslocamentos. Em prticos, trelias e grelhas, os elementos so barras ligadas pelos ns.
Estes elementos de barra so considerados como sendo unidimensionais. Elementos finitos
bidimensionais ou tridimensionais so utilizados na anlise de paredes, lajes, reservatrios e estruturas
de massa. Sendo a soluo obtida pelo Mtodo dos Elementos Finitos aproximada, a convergncia para
a soluo exata conseguida quando o nmero de parmetros desconhecidos aumentado. Estes
parmetros desconhecidos correspondem aos deslocamentos nodais da malha de elementos finitos. Por
outras palavras, quando utiliza uma malha de elementos finitos mais refinada, mais deslocamentos
nodais desconhecidos so envolvidos sendo, deste modo, alcanada uma maior preciso.
A formulao matemtica do Mtodo do Elementos Finitos aplicada a meios contnuos consiste em
substituir o integral sobre um domnio complexo por um somatrio de integrais estendidos a
subdomnios de geometria mais simples [2]. Se for possvel calcular todos os integrais estendidos aos
subdomnios, no final, basta efetuar o somatrio para se obter o valor do integral estendido a todo o
domnio.

Desenvolvimento de um Programa de Elementos Finitos Verstil

2.3. METODOLOGIA DE CLCULO


A aplicao do Mtodo dos Elementos Finitos na anlise estrutural consiste na criao de um modelo
que aproxime as propriedades geomtricas e mecnicas da estrutura real com um nmero infinito de
graus de liberdade por um modelo com um nmero finito de graus de liberdade.
Simplificadamente, os passos necessrios para realizar uma anlise pelo Mtodo dos Elementos Finitos
so os seguintes:
1.
2.
3.
4.
5.
6.
7.
8.

Seleo do modelo estrutural adequado anlise pretendida e definio das propriedades


dos materiais;
Diviso do domnio da estrutura recorrendo a linhas, superfcies ou volumes, gerando uma
malha de elementos finitos;
Clculo das matrizes de rigidez elementares e dos vetores de foras nodais equivalentes
para cada elemento finito;
Assemblagem das contribuies de cada elemento finito na matriz de rigidez e vetor de
foras globais da estrutura;
Introduo das condies de fronteira e resoluo do sistema de equaes;
Clculo das extenses e tenses para cada elemento finito a partir do conhecimento dos
deslocamentos nodais;
Interpretao e apresentao dos resultados graficamente;
Avaliao da necessidade de considerar alteraes ao modelo ou aumento do refinamento
da malha de elementos finitos de modo a precisar as zonas onde existam variaes de
tenses acentuadas.

A sequncia de passos apresentada pretende mostrar o encadeamento usado numa anlise por elementos
finitos. Ao longo dos captulos 2 a 6 so pormenorizados cada um destes passos de modo a no final
estarem reunidas as condies necessrias implementao computacional do mtodo. Importa destacar
a importncia das decises que se tomam ao longo do cumprimento destes passos, pois, os resultados
obtidos da anlise vm afetados por essas decises.

2.4. ABORDAGEM DE ENGENHARIA


2.4.1. SELEO DO MODELO ESTRUTURAL

O primeiro passo para resoluo de um problema a identificao do prprio problema. Para se poder
analisar corretamente um problema necessrio identifica-lo corretamente. A correta identificao de
todos os fenmenos fsicos envolvidos que influenciam o comportamento da estrutura, a natureza
esttica ou dinmica, as propriedades dos materiais, entre outros, so fundamentais para a escolha
adequada do modelo estrutural. Quando se pretende modelar um problema por elementos finitos
necessrio escolher, por exemplo, se a anlise vai ser bidimensional ou tridimensional. A escolha tem
implicaes na quantidade de clculos realizados.
Os modelos, no mbito de uma anlise por elementos finitos, costumam ser classificados como
conceptuais, estruturais ou computacionais [13].
Os modelos computacionais so aplicados aos modelos conceptuais de um problema real e no ao
problema real em si [13]. Um modelo conceptual pode ser desenvolvido no seguimento da compreenso
da natureza fsica de um problema. Um modelo conceptual deve excluir os detalhes suprfluos e incluir
todas as caractersticas relevantes do problema em anlise de modo a descrever a realidade com preciso
adequada.

Desenvolvimento de um Programa de Elementos Finitos Verstil

Um modelo conceptual para o estudo de uma estrutura deve incluir todos os dados necessrios para a
sua representao e anlise. Depois de se selecionar um modelo conceptual adequado para uma estrutura,
o passo seguinte para o seu estudo a definio de um modelo estrutural. Um modelo estrutural deve
incluir a descrio geomtrica da estrutura por meio dos seus componentes geomtricos, a expresso
matemtica das leis fsicas bsicas que regem o comportamento da estrutura e a especificao das
propriedades dos materiais e das cargas que atuam sobre a estrutura [13]. perfeitamente possvel que
o mesmo modelo conceptual de uma estrutura possa ser analisado utilizando diferentes modelos
estruturais, dependendo do rigor e/ou simplicidade procurada na anlise.
O passo seguinte na sequncia da anlise estrutural a escolha de um mtodo numrico. A aplicao do
Mtodo dos Elementos Finitos , normalmente, feita com a sua implementao num programa de
computador. No Captulo 9 apresentado o programa desenvolvido no mbito desta dissertao que
possibilita a modelao e a anlise estrutural pelo Mtodo dos Elementos Finitos.

2.4.2. DISCRETIZAO DO MODELO

A discretizao de um modelo em elementos finitos constitui uma das primeiras tarefas na anlise por
elementos finitos. A figura 2.1 mostra a discretizao de uma viga de espessura h com recurso a
elementos finitos retangulares.

Fig.2.1 Discretizao de uma viga com elementos finitos retangulares.

Todo o conhecimento sobre problemas fsicos, elementos finitos e algoritmos de resoluo contribui
para a experincia de modelao. A principal dificuldade enfrentada nesta etapa consiste em no
entender a ao fsica e as condies fronteira da estrutura real, bem como as limitaes da teoria
aplicvel, para criar um modelo adequado. Outra dificuldade de no compreender o comportamento
dos vrios elementos finitos para se selecionar os adequados resoluo do problema. O resultado pode
ser uma m pormenorizao do problema. Um modelo que no incorpore as caractersticas importantes
do problema fsico, uma discretizao imprpria dos carregamentos ou uma introduo de condies de
apoio inadequadas conduz a que os resultados obtidos no tenham correspondncia com os observados
na realidade.
Os utilizadores de programas de modelao por elementos finitos esto habituados utilizao de
ferramentas que geram automaticamente as malhas para o domnio em estudo. Contudo, a qualidade da
malha depende da qualidade dos algoritmos programados para a gerar. Logo, esto dependentes do
conhecimento que o programador tem sobre a modelao com elementos finitos. Portanto, o
procedimento de modelao no dever nunca ser menosprezado independentemente da sua dimenso
ou importncia. Face importncia que a modelao por elementos finitos apresenta esta costuma ser
considerada uma arte [3].

Desenvolvimento de um Programa de Elementos Finitos Verstil

adequado que uma malha de elementos finitos seja composta por elementos finitos pouco distorcidos,
com dimenses semelhantes e refinada o suficiente para a obteno de resultados com qualidade
aceitvel. A melhor preciso est associada modelao com muitos elementos finitos e de ordem de
interpolao mais elevada. Igual preciso pode ser obtida com elementos de baixa ordem recorrendo a
um elevado refinamento da malha. A escolha do elemento finito tambm dependente do problema em
anlise. Um elemento ou malha que funcione bem numa situao pode funcionar mal noutra. A escolha
est dependente do conhecimento sobre cada elemento finito e da compreenso fsica do problema.
O principal problema associado ao custo computacional de uma anlise que as capacidades
computacionais so limitadas. Isto pode no ser evidente na anlise de pequenos problemas mas tornase relevante nos grandes problemas. Deve-se procurar usar modelos simples de modo a que os possveis
erros sejam mais facilmente detetveis. uma boa prtica usar dois modelos na anlise. Um modelo
mais simples que fornece resultados aproximados que depois pode ser usado para orientar a construo
de um novo modelo mais refinado e validar os seus resultados.
Existem algumas orientaes a seguir no processo de modelao de uma estrutura com elementos finitos,
nomeadamente:

Procurar incluir toda a estrutura real no modelo;


Modelar adequadamente os limites curvos do domnio;
Usar elementos que modelam o campo de deslocamentos real;
Evitar o uso de elementos desproporcionados ou distorcidos;
Usar malhas regulares e sem variaes bruscas de refinamento;
Modelar adequadamente as cargas;
Usar condies de apoio que simulem as condies reais;
Aumentar o refinamento nas zonas onde se prevejam grandes variaes nos gradientes de
tenses.

A escolha dos elementos a usar tem influncia na preciso dos resultados obtidos. H elementos que no
so capazes de modelar alguns modos de deformao ou distores [6]. Elementos diferentes tm
diferentes sensibilidades para modelar distores. Deve-se procurar que a seleo dos elementos a usar
esteja em conformidade com o tipo de deformao esperada. Os elementos finitos vizinhos do mesmo
tipo devem ter uma geometria semelhante e as transies entre elementos diferentes devem ser graduais.
As condies de apoio do modelo so to relevantes como a prpria malha de elementos finitos. No
adianta recorrer a refinamentos elevados se os apoios usados no modelo no modelem as condies de
apoio reais da estrutura. Normalmente, em teoria, os apoios estruturais so idealizados como
completamente rgidos ou como articulados. Os apoios reais, em geral, situam-se entre um apoio rgido
e um apoio articulado. Esta diferena pode levar a que exista uma alterao significativa da distribuio
de esforos na estrutura. No final de uma anlise deve-se procurar verificar a consistncia dos resultados
obtidos.

2.4.3. SISTEMA DE EQUAES ELEMENTARES

Assumindo que o material de que constitudo o modelo de elementos finitos homogneo e tem um
comportamento linear elstico, as foras nodais dependem de forma direta e proporcional dos
deslocamentos dos ns associados ao desenvolvimento de deformaes.
A relao entre o vetor de foras nodais equivalentes e o vetor de deslocamentos nodais, que se assume
ser de proporcionalidade direta, pode ser expressa atravs da relao matricial

Desenvolvimento de um Programa de Elementos Finitos Verstil

11
21
31

[1

12
22
32

13
23
33

1
1 1
2
2 2
3 3 = 3

] { } { }

(2.1)

onde n representa o nmero total de graus de liberdade do elemento finito. Colocando (2.1) numa forma
mais compacta,
=

(2.2)

em que k designa a matriz de rigidez elementar, a o vetor de deslocamentos e f o vetor de foras nodais
equivalentes. Determinadas todas as matrizes de rigidez elementares para o problema em estudo, tornase necessrio agrup-las de forma a construir a matriz de rigidez global do problema. Esta operao
frequentemente designada por assemblagem. Uma operao semelhante tem de ser efetuada com os
vetores de foras nodais equivalentes dos elementos finitos.

2.4.4. ASSEMBLAGEM

Uma anlise por elementos finitos de um problema genrico que envolve meios contnuos, atravs da
anlise de partes discretas desses meios, implica que se proceda juno dos contributos de cada uma
das partes de modo a se conhecer o comportamento do problema global. A passagem da anlise ao nvel
de cada elemento finito para a anlise do todo d-se o nome de assemblagem. Com a operao de
assemblagem construda a matriz de rigidez e o vetor de foras nodais globais para todo o domnio do
problema. Note-se que na essncia desta operao est o facto de que uma qualquer fora externa
aplicada num determinado n da malha partilhada por todos os elementos finitos que tm esse n em
comum.

Fig.2.2 Malha constituda por elementos finitos unidimensionais.

Um vez construdas as matrizes de rigidez elementares e os vetores de foras nodais equivalentes


associados s cargas aplicadas nos elementos finitos procede-se assemblagem das suas contribuies
na matriz de rigidez e no vetor de foras nodais globais. Para realizar a assemblagem necessrio definir
a conetividade da malha de elementos finitos, isto , a relao existente entre a numerao dos graus de
liberdade dos elementos finitos e a numerao dos graus de liberdade da malha. Para isso construda,
para cada elemento finito, uma matriz de assemblagem do tipo
1
2
3

|
|

(2.3)

onde a primeira coluna contm a numerao local dos n graus de liberdade do elemento finito e a
segunda coluna a correspondncia destes com a numerao global dos graus de liberdade da malha de
elementos finitos.
O procedimento de assemblagem no mais do que o espalhamento dos termos da matriz de rigidez
elementar e do vetor de foras nodais equivalentes do elemento finito pelas posies globais que estes

Desenvolvimento de um Programa de Elementos Finitos Verstil

ocupam na matriz de rigidez e vetor de foras nodais globais, respetivamente. A assemblagem de


elementos finitos em tudo idntico assemblagem das contribuies das barras no Mtodo dos
Deslocamentos. De acordo com o exposto e atendendo figura 2.2, anteriormente apresentada, o nmero
total de graus de liberdade de uma malha de elementos finitos menor ou igual que o nmero total de
graus de liberdade dos elementos finitos. Note-se que no momento da assemblagem as contribuies
dos vrios elementos finitos que partilham o mesmo n so somadas.
Depois de realizada a operao de assemblagem obtm-se a representao fsica do comportamento de
uma estrutura na forma de um sistema global de equaes. Este sistema de N equaes, onde N
representa o nmero total de graus de liberdade da malha de elementos finitos, pode ser escrito na forma
genrica
1
1

11

21

12

22

= 1
2

]{ } { }

(2.4)

onde
e , ,=1,, , correspondem aos termos da matriz de rigidez elementar e do vetor de foras
nodais equivalentes, respetivamente, do elemento finito e. A matriz de rigidez global uma matriz
quadrada com dimenso correspondente ao nmero total de graus de liberdade do problema, enquanto,
os vetores de deslocamentos e foras nodais tm N linhas. Colocando o sistema de equaes (2.4) numa
forma mais compacta,

=.

(2.5)

2.4.5. CONDIES DE FRONTEIRA E CARREGAMENTOS

Na forma como o sistema de equaes (2.4) apresentado no so considerados os apoios e fixaes do


problema e nem as condies particulares de carregamento.
O vetor F constitudo pelos carregamentos que atuam no interior e/ou na fronteira de cada elemento
finito com os carregamentos atuantes nos ns da malha de elemento finitos. Os carregamentos
concentrados e distribudos atuantes em cada elemento finito so considerados no clculo dos vetores
de foras nodais equivalentes. Os carregamentos aplicados nos ns da malha so adicionados
diretamente ao vetor de foras nodais globais.
Atendendo a que os graus de liberdade do sistema so as componentes de deslocamento dos ns da
estrutura, sem a substituio de um nmero mnimo de deslocamentos prescritos, para prevenir os
movimentos de corpo rgido da estrutura, no se pode resolver o sistema de equaes. Isto advm do
facto dos deslocamentos no poderem ser unicamente determinados pelo vetor F se a este no
corresponder uma situao de equilbrio esttico. Matematicamente interpretado com a singularidade
da matriz K. Assim, para que o sistema de equaes tenha uma soluo admissvel necessrio definir
deslocamentos prescritos correspondentes fixao da estrutura.

2.4.6. RESOLUO DO SISTEMA DE EQUAES

Aps a introduo das condies de apoio e a prescrio dos deslocamentos, o sistema de equaes (2.5)
pode ser escrito na forma

Desenvolvimento de um Programa de Elementos Finitos Verstil

=+

(2.6)

em que o vetor R armazena a informao relativa s condies de apoio da estrutura. Para facilitar a sua
resoluo do ponto de vista computacional conveniente organiz-lo de modo a separar os termos
associados aos graus de liberdade no prescritos dos graus de liberdade prescritos, isto , colocando-o
na forma
[

] { } = { } + { }

(2.7)

onde o ndice L se refere aos graus de liberdade no prescritos ou livres e o ndice F aos graus de
liberdade prescritos ou fixos. O vetor r corresponde s reaes de apoio da estrutura que at esta fase
so uma incgnita do problema como, tambm, os deslocamentos nodais associados aos ns no
prescritos. Este novo sistema de equaes pode ser resolvido do seguinte modo.
= 1 ( )

(2.8a)

= +

(2.8b)

Este procedimento genrico permite determinar o valor dos deslocamentos nodais associados aos ns
no prescritos e sucessivamente o valor das reaes de apoio na estrutura. Se no existirem
assentamentos de apoio na estrutura, o vetor nulo, pelo que as expresses (2.8) so simplificadas
nas seguintes expresses.
= 1

(2.9a)

(2.9b)

2.4.7. VERIFICAO E VALIDAO DOS RESULTADOS

De forma a se ter confiana nos resultados obtidos conveniente efetuar a sua validao. A validao
assenta fundamentalmente em duas partes distintas que so realizadas em fases diferentes e normalmente
por pessoas diferentes. A primeira parte consiste em verificar o cdigo de modo a estabelecer a confiana
que tudo foi corretamente programado. A segunda parte consiste em verificar os clculos de modo a
estabelecer a confiana no modelo criado para a anlise.
Como a discretizao introduz uma aproximao [13], existem duas fontes de erro desde o incio, ou
seja, o erro de modelao e o erro de discretizao. O primeiro pode ser reduzido, melhorando os
modelos conceptuais e estruturais que descrevem o comportamento real da estrutura. O erro de
discretizao pode ser reduzido pelo uso de uma malha mais refinada ou usando elementos finitos de
ordens superiores. Os computadores tambm introduzem erros numricos associados sua limitao
para representar os dados com elevada preciso. O erro numrico apesar de pequeno somado aos erros
associados modelao e discretizao.

2.5. PRINCPIO DOS TRABALHOS VIRTUAIS


Define-se como virtual algo que no real, portanto, imaginrio. Um deslocamento virtual ou uma fora
virtual so, respetivamente, um deslocamento imaginrio ou uma fora imaginria, arbitrariamente
impostos sobre um sistema estrutural.
Considere-se o corpo representado na figura 2.3 sujeito a um conjunto de foras de volume, de
superfcie, de linha e concentradas que lhe provocam deformao. Com base no seu estado de equilbrio

10

Desenvolvimento de um Programa de Elementos Finitos Verstil

esttico, a configurao do corpo modificada por um conjunto de deslocamentos muito pequenos e


compatveis com as condies de fronteira.

Fig.2.3 Corpo sujeito a diversos tipos de aes exteriores (Adaptado de [2]).

O Princpio dos Trabalhos Virtuais estabelece que o trabalho realizado pelas tenses internas na
deformao virtual do corpo igual ao trabalho realizado pelas foras exteriores nos deslocamentos
virtuais dos seus pontos de aplicao.
(2.10)

Para um corpo tridimensional contnuo representado pela figura 2.3, o Princpio dos trabalhos Virtuais
pode ser escrito na forma
= + + +

(2.11)

onde indica as deformaes virtuais, as tenses reais aproximadas e os deslocamentos virtuais.


Na formulao do Mtodo dos Elementos Finitos, o campo de deformaes interpolado a partir dos
deslocamentos nodais com a expresso
=

(2.12)

onde B a matriz de deformao e a o vetor de deslocamentos nodais. Quando esta equao se refere
aos deslocamentos virtuais e correspondentes deformaes virtuais, tem-se
=

(2.13)

= .

(2.14)

que equivalente a

As tenses, para um material isotrpico com comportamento linear elstico, podem ser obtidas atravs
da relao constitutiva
=

(2.15)

onde a matriz D designada por matriz de elasticidade e na isotropia funo das propriedades elsticas
do material, isto , do mdulo de elasticidade, E, e do coeficiente de Poisson, v. Substituindo (2.12) em
(2.15) obtm-se

11

Desenvolvimento de um Programa de Elementos Finitos Verstil

(2.16)

=.

Na formulao do Mtodo dos Elementos Finitos considera-se que a interpolao do campo de


deslocamentos a partir dos deslocamentos nodais efetuada com a expresso
(2.17)

em que N agrupa as funes de forma que dependem do elemento finito considerado e a contm os
deslocamentos nodais cujo nmero depende do nmero total de graus de liberdade que o elemento finito
apresenta. Quando esta equao se refere aos deslocamentos virtuais, tem-se
=

(2.18)

= .

(2.19)

que equivalente a

Substituindo em (2.11) as equaes (2.14), (2.16) e (2.19), o Princpio dos Trabalhos Virtuais expresso
na forma
= + + + .

(2.20)

Uma vez que os vetores de deslocamentos nodais virtuais e de deslocamentos nodais so constantes,
podem passar-se para fora do integral. Assim, aps alguma manipulao algbrica, obtm-se
= ( + + + ) .

(2.21)

Considerando que, para alm destes serem constantes, o campo de deslocamentos nodais virtuais
sempre no-nulo nos domnios considerados, ento da equao anterior pode concluir-se que
= + + + .

(2.22)

Comparando esta equao com a relao de rigidez que utilizada no Mtodo dos Deslocamentos,
conclui-se que
=.

(2.23)

Este procedimento genrico pode facilmente ser utilizado para determinar os sistemas de equaes
elementares de todos os elementos finitos.

2.6. REQUISITOS PARA A CONVERGNCIA DA SOLUO


2.6.1. CONDIO DE CONTINUIDADE

Os deslocamentos devem ser contnuos dentro de cada elemento finito. Esta condio automaticamente
satisfeita usando aproximaes polinomiais para o campo de deslocamentos. necessrio tambm que
exista continuidade do campo de deslocamentos na fronteira de cada um dos elementos que lhe so
adjacentes na malha de elementos finitos.
Elementos que satisfazem a condio de continuidade do campo de deslocamentos so denominados
elementos finitos conformes. No entanto, em alguns casos particulares, tais como, em alguns elementos
flexo baseados na teoria de Kirchhoff, esta condio no satisfeita. Estes elementos, em que a
condio de continuidade no satisfeita, so denominados elementos finitos no conformes. Elementos

12

Desenvolvimento de um Programa de Elementos Finitos Verstil

no conformes podem convergir para a soluo exata se passarem no patch test. Em algumas ocasies
estes elementos finitos fornecem boas solues com malhas relativamente grosseiras.

2.6.2. CONDIO DE DERIVABILIDADE

As derivadas das funes de forma devem existir at s derivadas que aparecem nos elementos da matriz
de deformao B. Por exemplo, para uma matriz que contenha derivadas de primeira ordem, as funes
forma devem ser, pelo menos, de primeira ordem.
Uma funo contnua com a primeira derivada descontnua designada por funo com continuidade
C0. Por outro lado, uma funo contnua com primeira derivada contnua e segunda derivada descontnua
possui continuidade C1. Desta forma, uma funo possui continuidade Cn quando todas as suas derivadas
at ordem n so contnuas, mas a sua derivada de ordem n + 1 descontnua.

2.6.3. CONDIO DE INTEGRABILIDADE

No caso de uma funo ter continuidade C0, a sua primeira derivada apresentar descontinuidades
pontuais, correspondendo a uma funo de continuidade C-1. Contudo, tais descontinuidades no
impedem que esta derivada seja integrvel em todo o seu domnio.
A integrabilidade de funes de continuidade C-1 torna admissvel a utilizao de funes com
continuidade C0. Nesta situao, tal significa que o campo de deslocamentos tem continuidade C0, pelo
que o campo de deformao, definido com base na primeira derivada do deslocamento, possui
continuidade C-1. Devido simplicidade das funes de continuidade C0, este tipo de funes
usualmente utilizado na resoluo de problemas pelo Mtodo dos Elementos Finitos [21].

2.6.4. CONDIO DE CORPO RGIDO

As funes de forma devem ser capazes de representar um movimento de translao sem deformao,
isto , um movimento de corpo rgido. Isto significa que todos os pontos pertencentes ao elemento finito
tm um deslocamento igual ao dos ns. Esta condio fsica satisfeita para um nico elemento finito,
se a soma das suas funes de forma avaliadas em qualquer ponto do elemento finito for igual unidade,
isto , se
1 () + 2 () + 3 () + + () = 1

(2.24)

onde () a funo de forma do elemento finito para o n i.


2.6.5. CONDIO DE DEFORMAO CONSTANTE

Quando se impem deslocamentos nodais correspondentes a um estado de deformao constante, o


campo de deslocamentos deve originar um campo de deformaes constantes no interior do elemento
finito. O critrio de deformao constante incorpora o requisito de corpo rgido. A funo de
deslocamento tem que ser de tal modo que se os deslocamentos nodais forem compatveis com um
campo de deformao constante, o estado de deformao obtido no interior do elemento finito deve ser
tambm constante.

13

Desenvolvimento de um Programa de Elementos Finitos Verstil

14

Desenvolvimento de um Programa de Elementos Finitos Verstil

3
FORMULAO DE ELEMENTOS
FINITOS

3.1. ELEMENTOS FINITOS UNIDIMENSIONAIS


3.1.1. TENSO

A generalidade dos elementos estruturais aplicados nas estruturas de edifcios so do tipo barra e muitos
destes esto submetidos a cargas axiais aplicadas nas extremidades. O estudo dos elementos finitos
unidimensionais prende-se com a necessidade de apresentar uma formulao que permita o estudo destes
elementos estruturais.
De modo a se poder calcular a distribuio de tenso que atua na seco transversal da barra so adotadas
as seguintes hipteses simplificadoras [4]:
A barra permanece reta tanto antes como depois da aplicao da carga, e, alm disso, a
seco transversal permanece plana durante a deformao;
A carga aplicada segundo o eixo longitudinal da barra e o material homogneo e
isotrpico.

Considere-se uma barra reta de seco transversal constante e sujeita a um carregamento axial centrado
nas suas extremidades. Como a barra sofre uma variao de comprimento aps aplicao da carga, a
deformao axial calculada recorrendo expresso
=

(3.1)

em que designa a variao de comprimento e L o comprimento indeformado da barra. Pela definio


de tenso,
=

(3.2)

em que P corresponde carga axial e A rea da sua seco transversal da barra. A partir do valor da
deformao possvel calcular o valor da tenso em qualquer seco transversal da barra. Admitindo
que o material da barra apresenta um comportamento linear elstico possvel definir a relao entre
tenses e deformaes
=

(3.3)

em que E designado por mdulo de elasticidade do material. Atravs da formulao de elementos


finitos possvel usar esta relao nas situaes em que as extenses variam ao longo da barra.

15

Desenvolvimento de um Programa de Elementos Finitos Verstil

3.1.2. PRINCPIO DOS TRABALHOS VIRTUAIS

O estudo dos elementos finitos unidimensionais justifica-se com a necessidade de introduzir as tcnicas
usadas para formular os diversos elementos finitos, nomeadamente, os elementos finitos bidimensionais
e tridimensionais.

Fig.3.1 Elemento finito unidimensional sujeito a uma carga axial.

O Princpio dos Trabalhos Virtuais estabelece que o trabalho realizado pelas tenses internas na
deformao virtual do corpo igual ao trabalho realizado pelas foras exteriores nos deslocamentos
virtuais dos seus pontos de aplicao.
(3.4)

Para o caso de um elemento finito unidimensional definido segundo o eixo Ox, de comprimento L e
sujeito a uma carga axial p uniformemente distribuda ao longo do seu comprimento, pelo Princpio dos
Trabalhos Virtuais, tem-se
= u .

(3.5)

Atendendo ao apresentado no Captulo 2 sobre o Princpio dos Trabalhos Virtuais, a relao (3.5), aps
alguma manipulao algbrica, equivalente a
+/2

+/2

/2

(3.6)

/2

onde B a matriz de deformao, a o vetor de deslocamentos nodais e N agrupa as funes de forma


que dependem do elemento finito considerado. Colocando (3.6) numa forma mais compacta,
(3.7)

=.

3.1.3. FUNES DE FORMA

As funes de forma do tipo polinomial para um elemento finito de n ns podem ser determinadas
recorrendo ao polinmio de Lagrange. Conhecidas as n coordenadas dos n ns do elemento finito
unidimensional, a expresso genrica do polinmio de Lagrange de grau n - 1, associado ao n i,

() =

=1 ()

( )
( )

(3.8)

em que e correspondem coordenada associada ao n i e ao n j, respetivamente. Os parmetros


i () designam-se por funes de forma para o n i e interpolam dentro de cada elemento finito o
deslocamento do n i. Uma das caractersticas das funes de forma de valerem um no n i e zero em
todos os outros ns do elemento finito. Note-se que recorrendo a um polinmio de grau n o respetivo
elemento finito tem n + 1 ns.

16

Desenvolvimento de um Programa de Elementos Finitos Verstil

3.1.4. CAMPO DE DESLOCAMENTOS

Considere-se o elemento finito unidimensional com n ns representado na figura 3.2, de comprimento


L, rea da seco transversal A, mdulo de elasticidade E e sujeito a um carregamento axial p
uniformemente distribudo ao longo de todo o seu comprimento.

Fig.3.2 Elemento finito unidimensional de n ns.

Sendo apenas considerado o eixo Ox, todos os deslocamentos ocorrem paralelamente a ele. Se se
conhecer os deslocamentos nodais do elemento finito, o campo de deslocamentos u() do elemento
finito pode ser interpolado a partir desses mesmos deslocamentos, ou seja,
u() = 1 ()1 + 2 ()2 + + ()

(3.9)

ou, de forma mais compacta,

u() = i ()

(3.10)

=1

onde os parmetros correspondem ao valor do deslocamento nodal no n i do elemento finito.


3.1.5. CAMPO DE DEFORMAES

Sendo o campo de deslocamentos aproximado com recurso a funes interpoladoras, conhecido o campo
de deslocamentos para o elemento finito suficiente derivar as suas funes de forma e multiplic-las
pelos respetivos deslocamentos nodais.
=

(3.11)

Na forma matricial, derivando as n funes de forma do elemento finito com n ns, o campo de
deformaes obtido pela multiplicao da matriz de deformao pelo vetor de deslocamentos nodais
do elemento finito, isto ,
1
2
1 2
= [
]{ }
(3.12)

ou, de forma mais compacta,


=

(3.13)

sendo a matriz B designada por matriz de deformao ou, correntemente designada, matriz das derivadas
das funes de forma.

3.1.6. CAMPO DE TENSES

As tenses, para um material isotrpico com comportamento linear elstico, podem ser obtidas atravs
da relao constitutiva (3.3) que aps a substituio de (3.13) resulta em

17

Desenvolvimento de um Programa de Elementos Finitos Verstil

(3.14)

sendo E designado por mdulo de elasticidade.


Note-se que o clculo da tenso num dado ponto do elemento finito est dependente do conhecimento
dos deslocamentos nodais e da avaliao da matriz B nesse ponto. Como o campo de deslocamentos do
elemento finito determinado a partir dos deslocamentos nodais com recurso a um polinmio
interpolador, verifica-se que existem pontos onde os resultados obtidos se aproximam da soluo terica
esperada e pontos onde o resultado obtido se afasta.

3.1.7. ESFOROS INTERNOS

Conhecida a tenso instalada num dado ponto do elemento finito, o esforo axial obtido atravs da
multiplicao do valor da tenso pela rea da seco transversal do elemento finito. Se o esforo axial
obtido positivo, a seco transversal est tracionada, caso contrrio, a seco transversal est
comprimida.

3.1.8. TRANSFORMAO DE COORDENADAS

Na forma como foi apresentada esta formulao de elementos finitos, estes s podem ser aplicados ao
clculo de estruturas em que todos os seus elementos estejam alinhados, ou seja, na situao em que
todos os graus de liberdade dos elementos da estrutura sejam colineares.
Uma vez que os membros da estrutura podem ter diferentes direes, necessrio definir um sistema de
eixos global para a estrutura. Como consequncia desta definio de sistema de eixos, cada grau de
liberdade de um elemento de barra decomposto nos respetivos graus liberdade dependentes para cada
direo do novo referencial. Esta decomposio dos graus de liberdade do elemento finito nas duas
direes ortogonais do sistema de eixos global realizada com recurso a uma matriz de transformao
coordenadas.
A transformao da matriz de rigidez elementar do referencial local para o referencial global feita com
recurso expresso
=

(3.15)

onde T a matriz de transformao de coordenadas. Para o vetor de foras nodais equivalentes a


mudana de referencial realizada com a expresso seguinte.
=

(3.16)

Determinadas as matrizes de rigidez elementares e os vetores de foras nodais equivalentes dos vrios
elementos finitos no referencial global procede-se ao seu espalhamento de forma a formar o sistema de
equaes globais. Resolvido o sistema de equaes globais, para determinar os deslocamentos nodais
no referencial local de cada elemento finito necessrio realizar um procedimento oposto ao apresentado
para os passar do referencial local para o global.
Conhecidos os deslocamentos no sistema de eixos global da estrutura, os deslocamentos nodais para
cada elemento finito no respetivo sistema de eixos local so calculados do seguinte modo.
=

(3.17)

A metodologia de transformao de coordenadas apresentada pode ser aplicada a qualquer quantidade


e vlida para meios discretos e meios contnuos.

18

Desenvolvimento de um Programa de Elementos Finitos Verstil

3.2. ELEMENTOS FINITOS BIDIMENSIONAIS


3.2.1. ESTADO PLANO DE TENSO/DEFORMAO

Na anlise bidimensional de estruturas em estado plano de tenso admitido que a componente de


tenso ao longo da direo Oz e as tenses de corte nessa mesma direo so nulas. No caso de um
estado plano de deformao, a componente de deformao e as distores associadas direo
perpendicular a esse plano so consideradas nulas. Assim, possvel realizar uma anlise modelando e
discretizando apenas a seco representativa do problema com recurso, tipicamente, a elementos finitos
bidimensionais de geometria triangular e/ou retangular.
Considera-se que um corpo est em estado plano de tenso quando [9]:
Todas as cargas aplicadas atuam no plano mdio do corpo, sendo ainda simtricas
relativamente a este;
A espessura do corpo desprezvel em relao s outras dimenses;
Todas as condies de apoio so simtricas relativamente ao plano mdio;
As tenses normal e de corte segundo a direo z podem ser desprezadas.

Tipicamente, um corpo sujeito a um estado plano de deformao apresenta uma das dimenses
significativamente superior s restantes, isto , a espessura deixa de ser desprezvel, bem como a
componente de tenso . Aplicando o conceito de deformao infinitesimal da Mecnica dos Slidos,
as componentes cartesianas da extenso e da distoro so dadas por

= { }
(3.18)

em que se considera = = 0. A componente de deformao segundo a direo perpendicular ao


plano Oxy, isto , a componente de deformao pode ser nula. Este caso caracteriza-se por representar
um estado plano de deformao. Alternativamente, esta componente de deformao pode ser diferente
de zero, representando um estado plano de tenso.
O campo de tenses associado ao campo de deformaes pode ser escrito pelas seguintes componentes
cartesianas.

= { }
(3.19)

Para materiais que apresentem comportamento linear elstico, homogeneidade e isotropia, as tenses
podem ser obtidas atravs da relao entre tenses e deformaes
(3.20)

onde a matriz D designada por matriz de elasticidade e funo das propriedades elsticas do material,
isto , do mdulo de elasticidade, E, e do coeficiente de Poisson, . Num estado plano de tenso, para
um material isotrpico com comportamento linear elstico,

1 2

=
1 2
[

1 2

1 2
0

0
0

(3.21)

2(1 + )]

enquanto que, para um estado plano de deformao

19

Desenvolvimento de um Programa de Elementos Finitos Verstil

=
[
(1 + )(1 2)
0

1
0

0
0
1 2 ] .
2

(3.22)

3.2.2. PRINCPIO DOS TRABALHOS VIRTUAIS

Na figura 3.3 encontra-se representado um elemento finito retangular de quatro ns, de comprimento a,
altura b e espessura h. Do ponto de vista de implementao computacional conveniente numerar os
ns do elemento finito no sentido anti-horrio, numerando, em primeiro lugar, os ns que se encontram
na sua fronteira e depois, se existirem, os ns interiores.

Fig.3.3 Elemento finito retangular de quatro ns.

O Princpio dos Trabalhos Virtuais estabelece que o trabalho realizado pelas tenses internas na
deformao virtual do corpo igual ao trabalho realizado pelas foras exteriores nos deslocamentos
virtuais dos seus pontos de aplicao.
=

(3.23)

No caso geral, a expresso anterior que relaciona o trabalho interno com o trabalho externo pode ser
expressa na forma
=

(3.24)

onde indica as deformaes virtuais, as tenses reais aproximadas e os deslocamentos virtuais


no elemento finito. Atendendo ao apresentado no Captulo 2 sobre o Princpio dos Trabalhos Virtuais,
para um elemento finito bidimensional de espessura h e sujeito a um carregamento especfico q por
unidade de superfcie no plano Oxy, a relao expressa em (3.24), aps alguma manipulao algbrica,
equivalente a
= .

(3.25)

Atendendo s dimenses do elemento finito representado na figura 3.3, os integrais de superfcie,


expressos anteriormente, para um elemento finito retangular sujeito a um carregamento por unidade de
superfcie no plano Oxy, so equivalentes a

20

Desenvolvimento de um Programa de Elementos Finitos Verstil

+/2

/2

+/2

+/2

/2

+/2

/2

(3.26)

/2

Na situao em que o elemento finito bidimensional est sujeito a carregamentos distribudos ao longo
da sua fronteira, o segundo membro de (3.26) reduz-se a um integral de linha. Colocando (3.26) numa
forma mais compacta,
(3.27)

=.

Note-se que a expresso apresentada em (3.26) apenas permite o clculo da matriz de rigidez elementar
e do vetor de foras nodais equivalentes para elementos finitos retangulares.

3.2.3. FUNES DE FORMA

As funes de forma para os elementos finitos bidimensionais de geometria e distribuio de ns


qualquer, em que e so as coordenadas do n i e n representa o nmero total de ns, so
determinadas atravs da expresso matricial
1
1
2
1
{ }=[
1
3

1
2
2

1 1 1

] { }

(3.28)

ou, de forma mais compacta,


= 1 .

(3.29)

Os elementos finitos bidimensionais costumam ser divididos em duas famlias, isto , em elementos da
famlia lagrangeana e em elementos da famlia serendipity.
Os elementos finitos da famlia lagrangeana so quadrilteros que tm em comum o facto das suas
funes de forma poderem ser obtidas atravs do polinmio de Lagrange e de possurem o mesmo
nmero de ns segundo cada uma das duas direes do sistema de coordenadas. A funo de forma
(, ) para o n i determinada pela multiplicao dos polinmios interpoladores obtidos para cada
uma das duas direes do sistema de coordenadas. Os elementos finitos bidimensionais da famlia
lagrangeana tm p2 ns, sendo p o nmero de ns de um bordo.
Os elementos finitos da famlia serendipity so caraterizados por apenas possurem ns sobre a sua
fronteira. O nmero de ns de cada elemento finito bidimensional quadriltero da famlia serendipity
4(p - 1), sendo p o nmero de ns de um bordo. Estes elementos finitos apresentam um bom
compromisso entre o nmero de ns e a qualidade dos resultados obtidos.

3.2.4. CAMPO DE DESLOCAMENTOS

A anlise de problemas estruturais em duas dimenses baseia-se na descrio cinemtica do movimento


atravs de um campo de deslocamentos bidimensional. Este campo de deslocamentos pode ser escrito
na forma seguinte.
(, )
={
}
(, )

(3.30)

O polinmio que descreve a aproximao elementar de uma determinada componente do campo de


deslocamentos definido por um nmero de parcelas igual ao nmero de ns do elemento finito. A

21

Desenvolvimento de um Programa de Elementos Finitos Verstil

seleo dos termos que compem o polinmio feita com recurso ao tringulo de Pascal. Se se conhecer
os n deslocamentos nodais para cada uma das direes, cada componente de (, ) interpolada
separadamente com base nas funes de forma (, ) e nos deslocamentos nodais.
(, ) = 1 (, )1 + 2 (, )2 + + (, )

(3.31a)

(, ) = 1 (, )1 + 2 (, )2 + + (, )

(3.31b)

Na forma matricial, (3.31) equivalente a

{ }=[ 1

0
1

2
0

0
2

1
1
2
0
] 2

{ }

(3.32)

ou, de forma mais compacta,


(3.33)

=.

Como referido anteriormente, a matriz N agrupa as funes de forma e o vetor a os deslocamentos


nodais que dependem do elemento finito considerado.

3.2.5. CAMPO DE DEFORMAES

Conhecidas as funes de forma, o campo de deslocamentos num qualquer ponto do elemento finito
bidimensional pode ser determinado a partir das suas funes de forma e dos valores dos seus
deslocamentos nodais. Sendo o campo de deformaes do elemento finito obtido por derivao do
campo de deslocamentos, ento, o campo de deformaes definido da seguinte forma.

(3.34)


+
{ }
Como o campo de deslocamentos aproximado com recurso a funes interpoladoras, conhecido o
campo de deslocamentos suficiente derivar as funes de forma e multiplic-las pelos respetivos
deslocamentos nodais. Assim,
1
0
0
0
1
2

1
1 2
2
0
0
2

= 0
(3.35)
1 1 2 2

] { }

ou, de forma mais compacta,


=.

(3.36)

A matriz B designada por matriz de deformao e obtida apenas com recurso derivao das funes
de forma do elemento finito associadas a cada n.

22

Desenvolvimento de um Programa de Elementos Finitos Verstil

3.2.6. CAMPO DE TENSES

As tenses, para um material isotrpico com comportamento linear elstico, podem ser obtidas atravs
da relao constitutiva (3.20) que aps a substituio de (3.36) resulta em
=

(3.37)

onde a matriz D designada por matriz de elasticidade. Como se pode constatar, o clculo das tenses
no elemento finito est dependente do conhecimento dos deslocamentos nodais e da avaliao da matriz
B no ponto onde se pretende conhecer o estado de tenso.

3.2.7. TENSES E DIREES PRINCIPAIS

O estado plano de tenses num determinado ponto de uma estrutura em estudo representado pelo
elemento da figura 3.4, onde tambm esto definidas as tenses principais e as suas direes.

Fig.3.4 Definio de tenses, tenses principais e respetivas direes.

Na prtica da engenharia importante determinar a orientao dos planos que fazem a tenso normal
atingir o mximo e o mnimo, bem como a orientao dos planos que fazem a tenso de corte chegar ao
mximo.
1,2 =

+
2
(
) + 2
2
2

(3.38)

Dependendo do sinal escolhido obtm-se o valor para as tenses 1 e 2 . As tenses principais 1 e 2


representam, respetivamente, a tenso normal mxima e a mnima no ponto. Quando o estado de tenso
representado pelas tenses principais, nenhuma tenso de corte atua sobre o elemento. O ngulo
formado pela direo da tenso principal 1 com a horizontal definido por
2 =

2
.

(3.39)

Da anlise de (3.38) pode-se referir que as duas parcelas que permitem obter o valor das tenses
principais correspondem, respetivamente, s tenses normais mdias e tenso de corte mxima. O
elemento que representa a tenso de corte mxima est orientado a 45 da posio do elemento que
representa as tenses principais.

23

Desenvolvimento de um Programa de Elementos Finitos Verstil

3.3. ELEMENTOS FINITOS TRIDIMENSIONAIS


3.3.1. ESTADO GERAL DE TENSO

A generalidade dos problemas encontrados na prtica da engenharia so tridimensionais. Correntemente


recorre-se a simplificaes que permitem analisar o meio tridimensional atravs de uma abordagem
bidimensional. Contudo, em muitos casos no possvel ou desejvel adotar as simplificaes do estado
plano de tenso ou outros.
A utilizao de elementos finitos tridimensionais proporciona uma maior abrangncia de possibilidades
de modelao de meios contnuos que no so fornecidas pelos elementos finitos bidimensionais. As
necessidades que levam exigncia de se utilizar elementos tridimensionais podem ser [21], por
exemplo:
A geometria do meio em estudo ser tridimensional;
Aplicao de cargas em trs planos ortogonais;
Necessidade de conhecer o comportamento do meio em trs direes ortogonais;
Utilizao de materiais com propriedades distintas em cada direo ortogonal.

No estudo dos meios contnuos, independentemente do comportamento mecnico, pretende-se conhecer


as tenses e extenses num qualquer slido contnuo. No caso tridimensional, a tenso resultante num
dado ponto pode ser decomposta nas tenses que atuam nas faces do elemento de volume representado
na figura 3.5 e que est orientado segundo o sistema de eixos ortogonal Oxyz.

Fig.3.5 Slido sujeito a um estado tridimensional de tenso.

O elemento representado tem lados com dimenses infinitesimais dx, dy e dz, encontrando-se em
equilbrio de tenses. Este elemento representa o estado de tenso num dado ponto considerando
desprezvel a variao das tenses ao longo das suas faces. Para haver equilbrio, o momento de todas
as foras deve ser nulo [4].
Deste modo, considerando individualmente cada um dos eixos e calculando os momentos em relao a
esse eixo conclui-se o seguinte.

24

(3.40)

(3.41)

(3.42)

Desenvolvimento de um Programa de Elementos Finitos Verstil

Deste modo, no caso tridimensional, obtm-se seis parmetros independentes de tenso, ou seja, trs
tenses normais e trs tenses tangenciais. Assim, as componentes cartesianas da extenso e da
distoro, para o estado geral de tenso, so as seguintes.

=
(3.43)

{ }
O campo de tenses associado ao campo de deformaes pode ser escrito pelas seguintes componentes
cartesianas.

=
(3.44)

{ }
Para materiais que apresentem comportamento linear elstico, homogeneidade e isotropia, as tenses
podem ser obtidas atravs da relao constitutiva
(3.45)

onde a matriz D designada por matriz de elasticidade e funo das propriedades elsticas do material,
isto , do mdulo de elasticidade, E, e do coeficiente de Poisson, . Para um material isotrpico com
comportamento linear elstico,
1

=
(1 + )(1 2) 0
0
[ 0

0
0
0

1
0
0
0

0
0
0
1 2
2
0
0

0
0
0
0
1 2
2
0

0
0
0
.
0
0
1 2
2 ]

(3.46)

3.3.2. PRINCPIO DOS TRABALHOS VIRTUAIS

O Princpio dos Trabalhos Virtuais estabelece que o trabalho realizado pelas tenses internas na
deformao virtual do corpo igual ao trabalho realizado pelas foras exteriores nos deslocamentos
virtuais dos seus pontos de aplicao.
=

(3.47)

Para um elemento finito tridimensional sujeito a um carregamento de volume, o Princpio dos trabalhos
Virtuais pode ser escrito na forma
=

(3.48)

em que indica as deformaes virtuais, as tenses reais aproximadas e os deslocamentos


virtuais. De acordo com o apresentado no Captulo 2, para um elemento finito tridimensional sujeito a
um carregamento de volume caraterizado atravs do vetor b, tem-se

25

Desenvolvimento de um Programa de Elementos Finitos Verstil

(3.49)

onde B a matriz de deformao, D a matriz de elasticidade, a o vetor de deslocamentos nodais, N a


matriz que agrupa as funes de forma do elemento finito e b o vetor caraterizador da fora de volume
que atua no elemento finito.
Para o caso de um elemento finito tridimensional paralelepipdico de largura a, comprimento b e altura
c tem-se
+/2

/2

+/2

/2

+/2

+/2

/2

+/2

/2

+/2

/2

(3.50)

/2

ou, de forma mais compacta,


(3.51)

=.

Note-se que (3.50) apenas permite o clculo da matriz de rigidez elementar e do vetor de foras nodais
equivalentes para elementos finitos hexadricos de geometria regular. Para elementos finitos distorcidos
habitual recorrer-se a elementos finitos isoparamtricos e integrao numrica.

3.3.3. FUNES DE FORMA

Na figura 3.6 encontra-se representado o elemento finito paralelepipdico com oito ns, largura a,
comprimento b e altura c.

Fig.3.6 Elemento finito paralelepipdico de oito ns.

As funes de forma para os elementos finitos tridimensionais, em que , e so as coordenadas


do n i e n representa o nmero total de ns, so determinadas atravs da expresso matricial
1
1
2
1
3 = 1
1
4
[

{ }
ou, de forma mais compacta,

26

1
2
2
2

1 1 1

] {}

(3.52)

Desenvolvimento de um Programa de Elementos Finitos Verstil

= 1

(3.53)

em que Q uma matriz quadrada, que se supe no singular, que aps a substituio das respetivas
coordenadas dos ns do elemento finito permite calcular as funes de forma.

3.3.4. CAMPO DE DESLOCAMENTOS

A anlise de problemas estruturais em trs dimenses baseia-se na descrio cinemtica do movimento


atravs de um campo de deslocamentos tridimensional. Este campo de deslocamentos pode ser escrito
na forma seguinte.
(, , )
= { (, , ) }
(, , )

(3.54)

Se se conhecer os n deslocamentos nodais para cada direo, cada uma das componentes de (, , )
interpolada separadamente com base nas funes de forma (, , ) e nos deslocamentos nodais. Na
forma matricial equivalente a
1
1
1
2

0 2 0
0 0
0
1 0

{ } = [ 0 1 0
0 2 0 0 0 ] 2
(3.55)
2

0
0
0
0
0
0
1
2

{ }
ou, de forma mais compacta,
=.

(3.56)

6.3.5. CAMPO DE DEFORMAES

O campo de deformaes do elemento finito obtido por derivao do campo de deslocamentos. Deste
modo, o campo de deformaes num estado tridimensional de tenso definido derivando cada uma das
componentes do campo de deslocamentos.

=
+


+


+
{ }

(3.57)

27

Desenvolvimento de um Programa de Elementos Finitos Verstil

Sendo o campo de deslocamentos aproximado com recurso a funes interpoladoras, conhecido o campo
de deslocamentos para o elemento finito suficiente derivar as suas funes de forma e multiplic-las
pelos respetivos deslocamentos nodais. Assim, para um elemento finito tridimensional de n ns,
1
0 0

1
0
0

1
0 0

=
1
1
0

1
1
0

1 1
0

|
|
|
|

2
0 0

2
0
0

2
0 0

2 2
0

2
2
0

2 2
0

0 0

1
0
0

2
0 0
2


2
0

{ }

0

(3.58)

ou, de forma mais compacta,


=.

(3.59)

Como j referido, a matriz B designada por matriz de deformao e obtida apenas com recurso s
derivadas das funes de forma do elemento finito associadas a cada n.

3.3.6. CAMPO DE TENSES

As tenses, para um material isotrpico com comportamento linear elstico, podem ser obtidas atravs
da relao constitutiva (3.45) que aps a substituio de (3.59) conduz a
=

(3.60)

onde a matriz D designada por matriz de elasticidade. Como se pode constatar, o clculo das tenses
no elemento finito est dependente do conhecimento dos deslocamentos nodais e da avaliao da matriz
B no ponto onde se pretende conhecer os seus valores. A dificuldade desta metodologia reside em
escolher o ponto adequado para avaliar a matriz B de modo a se obter resultados precisos.

3.3.7. FAMLIAS DE ELEMENTOS FINITOS

Do mesmo modo que os elementos finitos bidimensionais, os elementos finitos tridimensionais tambm
costumam ser divididos em duas famlias, isto , em elementos da famlia lagrangeana e em elementos
da famlia serendipity.
Os elementos finitos hexadricos da famlia lagrangeana so obtidos pela extenso dos elementos finitos
bidimensionais quadrilaterais ao caso tridimensional. As funes de forma dos elementos desta famlia
podem ser obtidas de duas maneiras. A primeira metodologia para a obteno das funes de forma
consiste em recorrer expresso geral (3.53). A outra metodologia resulta da combinao dos
polinmios de Lagrange deduzidos para cada direo ortogonal.
Os elementos finitos hexadricos da famlia serendipity possuem apenas ns sobre a sua fronteira. As
funes de forma para os elementos finitos desta famlia, em que n representa o nmero total de ns,
so determinadas atravs da expresso geral (3.53).

28

Desenvolvimento de um Programa de Elementos Finitos Verstil

3.4. ELEMENTOS FINITOS DE VIGA


3.4.1. VIGAS PELA TEORIA DE EULER-BERNOULLI
3.4.1.1. Breve Descrio da Teoria

A teoria Euler-Bernoulli considera que as seces transversais se mantm planas e normais ao eixo da
barra aps a deformao, pelo que, as deformaes por corte so desprezadas. Considera-se somente a
existncia de cargas transversais ao eixo da viga e so desprezadas as cargas axiais.
Considere-se uma viga de comprimento L, momento de inrcia , sob ao de cargas verticais e
momentos que atuam no plano xz e que o eixo x da viga coincide com a linha que une o centro de
gravidade das seces transversais. A teoria de Euler-Bernoulli para vigas estabelece as seguintes
hipteses [14]:
O deslocamento vertical, w, dos pontos contidos numa seco transversal so iguais ao
valor de deflexo da viga;
O deslocamento lateral v ao longo do eixo y nulo;
As seces transversais normais ao eixo da viga permanecem planas e ortogonais ao eixo
da viga aps deformao.

3.4.1.2. Princpio dos Trabalhos Virtuais

O Princpio dos Trabalhos Virtuais estabelece que o trabalho realizado pelas tenses internas na
deformao virtual do corpo igual ao trabalho realizado pelas foras exteriores nos deslocamentos
virtuais dos seus pontos de aplicao.
=

(3.61)

Para deduo da equao de equilbrio considere-se a figura 3.7 relativa a um elemento finito de viga
sujeito a um carregamento transversal distribudo ao longo do seu comprimento que origina foras
nodais concentradas e momentos fletores.

Fig.3.7 Elemento finito de viga sujeito a um carregamento transversal.

As cargas verticais so consideradas positivas se atuarem na sentido do eixo vertical z. Os momentos


fletores concentrados so tomados como positivos se atuarem no sentido anti-horrio, em coerncia com
a rotao . Para o caso do elemento finito representado na figura 3.7, de comprimento L e sujeito a uma
carga transversal p uniformemente distribuda ao longo do seu comprimento,
= .

(3.62)

29

Desenvolvimento de um Programa de Elementos Finitos Verstil

De acordo com o Captulo 2, o Princpio dos Trabalhos Virtuais, aps as devidas manipulaes
algbricas, pode-se escrever na forma
+/2

+/2

/2

(3.63)

/2

em que representa o momento de inrcia em relao ao eixo y. Colocando (3.63) numa forma mais
compacta,
(3.64)

=.

3.4.1.3. Funes de Forma

Considere-se o elemento finito de viga com n ns representado na figura 3.8 de comprimento L, mdulo
de elasticidade E e momento de inrcia .

Fig.3.8 Elemento finito de viga com n ns.

Os elementos finitos de viga possuem dois graus de liberdade por n, isto , um deslocamento segundo
z e uma rotao no plano xz. Num elemento finito com n ns existem 2n graus de liberdade. Quanto
numerao dos ns, para efeitos de implementao computacional, conveniente que seja feita da
esquerda para a direita.
A obteno das funes de forma para o elemento finito de viga de Euler-Bernoulli feita com recurso
interpolao hermitiana. Simplificadamente, a obteno das funes de forma realizada atravs da
expresso matricial
1
1
1
2
{
}=[

2
1

0
1

1
2

0
1

0 1 1
1

] { }

(3.65)

com = 2 1 e = 2 2 ou, de forma mais compacta,


= 1 .

(3.66)

3.4.1.4. Campo de Deslocamentos

Um dado ponto que se encontre distncia z do eixo da viga no estado indeformado, permanece mesma
distncia aps deformao da viga. No estado deformado, a seco transversal da viga sobre apenas uma
rotao
=

(3.67)

Desta forma, o campo de deslocamentos num ponto qualquer do elemento finito de viga pode ser
determinado atravs das igualdades seguintes.

30

Desenvolvimento de um Programa de Elementos Finitos Verstil

(, , ) =

(3.68)

(, , ) = 0

(3.69)

(, , ) = ()

(3.70)

Nas expresses anteriores, u, v e w so os deslocamentos nas direes x, y e z, respetivamente. Assim,


encontrado o valor de w, o campo de deslocamentos do problema fica determinado, pois, a rotao
obtida a partir da derivada de w. Conhecidos os deslocamentos verticais e as rotaes nodais nos ns do
elemento finito, o campo de deslocamentos verticais pode ser interpolado a partir desses mesmos
deslocamentos, ou seja,
() = 1 ()1 + 2 ()2 + + 2 ()2

(3.71)

em que () so as funes de forma do elemento finito para o grau de liberdade i. Colocando (3.71)
em notao matricial,
1

= [1 2 2 ] { 2 }
(3.72)

2
ou, de forma mais compacta,
(3.73)

=.

3.4.1.5. Campo de Deformaes

A partir do campo de deslocamentos descrito, conclui-se que s existe deformao segundo a direo
horizontal paralela ao eixo longitudinal x. Sendo o campo de deformaes do elemento finito obtido
pela derivao do campo de deslocamentos, ento,
=

u
2
= 2 .

(3.74)

Devido presena de segundas derivadas em (3.74) necessrio considerar elementos finitos de


continuidade C1, ou seja, com continuidade da funo e das suas primeiras derivadas. Como se pode
verificar, para caracterizar de forma completa o estado de deformao numa viga apenas necessrio
conhecer uma curvatura de flexo.
De acordo com a expresso (3.74), o campo de deformaes para um elemento finito com n ns na
forma matricial obtm-se pela expresso
1
2 2 2
2 1 2 2
= [
]{
}
(3.75)

2
2
2

ou, de forma mais compacta,


= .

(3.76)

3.4.1.6. Campo de Tenses

As tenses, para um material isotrpico com comportamento linear elstico, so obtidas atravs da
relao constitutiva

31

Desenvolvimento de um Programa de Elementos Finitos Verstil

(3.77)

em que E o mdulo de elasticidade do material. Aps a substituio de (3.76) chega-se a


= z .

(3.78)

3.4.1.7. Esforos Internos

Para vigas flexo, as tenses variam linearmente ao longo da altura e os valores mximos ocorrem nos
planos limite da viga. Assim, o momento fletor obtido a partir da integrao da tenso ao longo da
seco transversal da viga.
=

(3.79)

Aps as devidas substituies em (3.79) e resolvendo o integral, o momento fletor na viga obtido
atravs da expresso
=

(3.80)

onde a matriz B deve ser avaliada no ponto onde se pretende calcular o momento fletor. Note-se que
esta formulao de elementos finitos no permite considerar esforos axiais. Esta limitao ultrapassa
com a combinao desta formulao com a do elemento finito unidimensional.

3.4.2. VIGAS PELA TEORIA DE TIMOSHENKO


3.4.2.1. Breve Descrio da Teoria

A teoria de Timoshenko considera que as seces se mantm planas aps deformao mas, ao contrrio
da formulao de Euler-Bernoulli, estas no se mantm normais ao eixo da barra. A formulao de
Timoshenko considera o contributo das deformaes por corte. Considera-se somente a existncia de
cargas transversais ao eixo da viga aplicadas segundo a direo z e que as cargas axiais so desprezadas.
A teoria de Timoshenko para vigas estabelece as seguintes hipteses [14]:
O deslocamento vertical, w, dos pontos contidos numa seco transversal so iguais ao
valor de deflexo da viga;
O deslocamento lateral v ao longo do eixo y nulo;
As seces transversais normais ao eixo da viga permanecem planas mas no
necessariamente ortogonais ao eixo da viga aps deformao.

3.4.2.2. Princpio dos Trabalhos Virtuais

Considere-se um elemento finito de comprimento L, com uma rea de seco transversal A, sujeito a um
carregamento distribudo ao logo do seu comprimento no plano xz e que o eixo x do elemento finito
coincide com a linha que une o centro de gravidade de todas as seces transversais.
O Princpio dos Trabalhos Virtuais estabelece que o trabalho realizado pelas tenses internas na
deformao virtual do corpo igual ao trabalho realizado pelas foras exteriores nos deslocamentos
virtuais dos seus pontos de aplicao.
=

32

(3.81)

Desenvolvimento de um Programa de Elementos Finitos Verstil

Para o elemento finito descrito, a relao entre trabalho virtual interno e externo equivalente a
+ = .

(3.82)

Atendendo ao comprimento do elemento finito e de acordo com o que j foi expresso para os elementos
finitos de viga pela teoria Euler-Bernoulli, aps alguma manipulao algbrica, chega-se a
+/2

/2

+/2

+/2

/2

(3.83)

/2

ou, de forma mais compacta,


=.

(3.84)

3.4.2.3. Funes de Forma

Considere-se o elemento finito de viga com n ns representado na figura 3.9, de comprimento L, rea
da seco transversal A, momento de inrcia , mdulo de elasticidade E e mdulo de distoro .

Fig.3.9 Elemento finito de viga com n ns.

Como o elemento finito de viga possui dois graus de liberdade por n, isto , um deslocamento segundo
z e uma rotao no plano xz, ento, no elemento finito com n ns existem 2n graus de liberdade. As
funes de forma para o elemento finito de viga de Timoshenko so obtidas do mesmo modo que as
funes de forma para os elementos finitos unidimensionais.

3.4.2.4. Campo de Deslocamentos

Um dado ponto que se encontra distncia z do eixo da viga no estado indeformado, permanecer
mesma distncia aps deformao da viga mas no necessariamente ortogonal. No estado deformado, a
seco transversal da viga sobre apenas uma rotao dada por
=

+.

(3.85)

Pela anlise de (3.85), a rotao obtida pela soma da inclinao do eixo da viga com uma rotao
adicional . Note-se que o valor da rotao no coincide com a inclinao da viga como acontece na
teoria de Euler-Bernoulli. O campo de deslocamentos num qualquer ponto do elemento de viga de
Timoshenko pode ser determinado atravs das igualdades seguintes.
(, , ) =

(3.86)

(, , ) = 0

(3.87)

(, , ) = ()

(3.88)

33

Desenvolvimento de um Programa de Elementos Finitos Verstil

Nas expresses anteriores, u, v e w so os deslocamentos nas direes x, y e z, respetivamente. A


interpolao do deslocamento vertical w e da rotao efetuado separadamente para cada uma destas
variveis. Uma vez que w e apresentam n valores nodais cada utilizada a seguinte interpolao
unidimensional com n ns.
() = 1 ()1 + 2 ()2 + + ()

(3.89a)

() = 1 ()1 + 2 ()2 + + ()

(3.89b)

Onde em (3.89) () a funo de forma do elemento finito para o n i. Colocando (3.89) em notao
matricial, chega-se a
1
1
2
0 2 0 0

{ }=[ 1
] 2
(3.90)

0 1 0 2 0

{ }
ou, de forma mais compacta,
=.

(3.91)

3.4.2.5. Campo de Deformaes

O campo de deformaes do elemento finito dado por derivao do campo de deslocamentos, ou seja,

(3.92)


+
=
.

(3.93)

=
e
=

Da anlise de (3.92) conclui-se que os elementos finitos pela teoria de Timoshenko exigem apenas
continuidade C0 para a deflexo e campo de rotaes. Por conseguinte, so mais simples do que os
elementos de viga de Euler-Bernoulli. Infelizmente, sofrem geralmente do chamado locking, defeito que
produz excesso de rigidez em vigas esbeltas.
Na forma matricial, as extenses para um elemento finito com n ns so obtidas pela expresso
1
1
2
1
2

= [0
0
] 2
(3.94)
0

{ }
ou, de forma mais compacta,
= .

(3.95)

De igual modo, para um elemento finito com n ns, o clculo das distores efetuado com recurso
expresso

34

Desenvolvimento de um Programa de Elementos Finitos Verstil

=[

1
1
2
] 2

{ }

(3.96)

ou, de forma mais compacta,


= .

(3.97)

3.4.2.6. Campo de Tenses

As tenses axiais e de corte, para um material isotrpico com comportamento linear elstico, so obtidas
atravs das relaes
=

(3.98)

(3.99)

em que E o mdulo de elasticidade e o de distoro. Assim, aps as correspondentes substituies,


chega-se a
= z

(3.100)

= .

(3.101)

3.4.2.7. Esforos Internos

Para vigas flexo, as tenses axiais variam linearmente ao longo da altura e os valores mximos
ocorrem nos planos limite da viga. O momento fletor obtido a partir da integrao da tenso ao longo
da seco transversal da viga.
= =

(3.102)

As tenses de corte pela teoria de Timoshenko permanecem constantes ao longo da espessura, pelo que,
o esforo transverso atuante calculado pela expresso
= =

(3.103)

em que corresponde rea reduzida da seco transversal. Para seces macias de forma retangular
= (5/6) e para circulares = (6/7).
As matrizes Bb e Bs devem ser avaliadas nos pontos onde se pretende calcular o momento fletor e o
esforo transverso, respetivamente. Importa referir que, quer o momento fletor, quer o esforo
transverso, calculados pelas expresses (3.102) e (3.103) s apresentam valores aceitveis em
determinados pontos do elemento finito. Normalmente, estes pontos so coincidentes com os utilizados
no procedimento de integrao numrica pela quadratura de Gauss-Legendre.

35

Desenvolvimento de um Programa de Elementos Finitos Verstil

3.5. ELEMENTOS FINITOS DE LAJE


3.5.1. LAJES PELA TEORIA DE KIRCHHOFF
3.5.1.1. Breve Descrio da Teoria

A teoria de Kirchhoff, semelhana dos elementos de viga pela teoria Euler-Bernoulli, no permite
considerar o efeito da deformabilidade por esforo transverso. A teoria de Kirchhoff adequada para o
estudo de lajes onde a razo entre a espessura e a menor dimenso da superfcie mdia inferior a 1/10,
ou seja, adequada ao estudo de lajes finas.

Fig.3.10 Graus de liberdade e orientaes das rotaes.

No estudo de elementos finitos de laje pela teoria de Kirchhoff, alm da condio da espessura ser muito
inferior s outras dimenses, considerado que as cargas so aplicadas transversalmente ao plano mdio
da laje. Esta teoria estabelece as seguintes hipteses simplificadoras [17]:
Nos pontos do plano mdio os deslocamentos u e v so nulos;
Todos os pontos normais ao plano mdio possuem o mesmo deslocamento vertical;
A tenso desprezvel;
As retas normais ao plano mdio indeformado da laje permanecem retas e normais ao plano
mdio aps deformao.

Na teoria de Kirchhoff para lajes, o polinmio interpolador para o deslocamento vertical do plano mdio,
w(x, y), definido em funo do nmero de graus de liberdade existentes em cada n e da quantidade
de ns do elemento finito. Uma das particularidades na formulao dos elementos finitos pela teoria de
Kirchhoff prende-se com a continuidade das funes de forma. Se as funes de forma do elemento
finito garantem continuidade das rotaes entre elementos, estes designam-se por elementos finitos
conformes. Caso no exista continuidade das rotaes entre elementos finitos, estes designam-se por
elementos finitos no conformes.

3.5.1.2. Princpio dos Trabalhos Virtuais

O domnio de uma laje pode ser descrito na forma



= {(, , ) 3 : [ , + ] , (, ) 2 }
2 2

36

(3.104)

Desenvolvimento de um Programa de Elementos Finitos Verstil

onde e h representam o plano mdio e a espessura da laje, respetivamente. O Princpio dos Trabalhos
Virtuais estabelece que o trabalho realizado pelas tenses internas na deformao virtual do corpo
igual ao trabalho realizado pelas foras exteriores nos deslocamentos virtuais dos seus pontos de
aplicao.
=

(3.105)

Considerando um elemento finito submetido a um carregamento q distribudo no seu plano mdio


atuando na direo z, a relao existente entre trabalho virtual interno e o trabalho virtual externo pode
ser escrita na forma
= .

(3.106)

Atendendo ao apresentado no Captulo 2 sobre o Princpio dos Trabalhos Virtuais, a relao (3.106),
aps alguma manipulao algbrica, equivalente a
+/2 +/2
3 +/2 +/2


12 /2 /2
/2 /2

(3.107)

onde B a matriz de deformao, a o vetor de deslocamentos nodais e N agrupa as funes de forma


que dependem do elemento finito considerado. Colocando a relao (3.107) numa forma mais compacta,
=.

(3.108)

3.5.1.3. Funes de Forma

As funes de forma em elementos finitos de laje pela teoria de Kirchhoff so definidas em funo do
nmero de graus de liberdade dos ns do elemento finito. As diversas formulaes de elementos finitos
desta teoria podem apresentar trs ou quatro graus de liberdade por n. O significado fsico deste quarto
grau de liberdade corresponde ao valor da curvatura de toro no n em causa [5].
Na figura 3.11 encontra-se representado um elemento finito retangular de comprimento a, largura b e
espessura h.

Fig.3.11 Elemento finito retangular de quatro ns.

O polinmio interpolador que descreve a aproximao elementar para o deslocamento vertical do plano
mdio, w(x, y), definido por um nmero de termos igual ao nmero de graus de liberdade do elemento
finito.

37

Desenvolvimento de um Programa de Elementos Finitos Verstil

(, ) = 1 + 2 + 3 + 4 2 + 5 + 6 2 + 7 3 + 8 2 + 9 2 + 10 3

(3.109)

Para determinar o valor das constantes ci (i = 1, 2, n), com n a representar o nmero de graus de
liberdade do elemento finito, necessrio reescrever estas mesmas equaes para cada uma das
componentes de deslocamento dos ns.

3.5.1.4. Campo de Deslocamentos

Na figura 3.12 mostrado o posicionamento de um qualquer ponto nos estados indeformado e


deformado da laje. A figura representada tambm permite percecionar que as seces se mantm planas
e normais ao plano mdio da laje aps deformao.

Fig.3.12 Representao do deslocamento de um ponto no plano xz.

Segundo as hipteses simplificadoras adotadas, um dado ponto que se encontre distncia z do plano
mdio no estado indeformado, permanece mesma distncia aps deformao da laje. No estado
deformado, qualquer segmento reto perpendicular ao plano mdio sofre apenas rotao. Assim,
analisando a figura 3.12, para o plano xz
=

(3.110)

(3.111)

e de forma anloga para o plano yz

Desta forma, o campo de deslocamentos num ponto qualquer do elemento de laje pode ser determinado
atravs das seguintes igualdades.
(, , ) = (, )

(3.112a)

(, , ) = (, )

(3.112b)

(, , ) = (, )

(3.112c)

Nas expresses (3.112), u, v e w so os deslocamentos nas direes x, y e z, respetivamente. Atendendo


a que no plano mdio os deslocamentos u e v so nulos, conclui-se que, encontrado o valor de w, o
campo de deslocamentos do problema est determinado, pois, as rotaes so obtidas a partir das
derivadas de w em relao a x ou y. Como os campos (, ) e (, ) no so independentes do
campo de deslocamentos transversais (, ), ento, quando se formulam elementos finitos pela teoria
de Kirchhoff apenas necessrio definir uma aproximao conveniente para o campo de deslocamentos

38

Desenvolvimento de um Programa de Elementos Finitos Verstil

transversais. O deslocamento transversal para elementos finitos da teoria de Kirchhoff pode ser
interpolado a partir dos seus deslocamentos nodais, isto ,
1
2
3
4
= [1 2 3 4 3 2 1 ]

(3.113)
3
2
1
{ }
ou, de forma mais compacta,
=.

(3.114)

3.5.1.5. Campo de Deformaes

A partir do campo de deslocamentos descrito, a teoria da elasticidade no domnio dos pequenos


deslocamentos e deformaes estabelece as seguintes relaes entre deformao e deslocamento.
=

2
2

(3.115a)

2
2

(3.115b)

(3.115c)

= 2

Devido presena de segundas derivadas em (3.115) necessrio considerar elementos finitos de


continuidade C1, ou seja, com continuidade da funo e das suas primeiras derivadas. Para caracterizar
de forma completa o estado de deformao numa laje fina so necessrias duas curvaturas de flexo e
uma curvatura de toro.
Na forma matricial, o campo de deformaes do elemento finito de laje com n graus de liberdade
obtido pela relao matricial
2 1
2
2 1
=
2
2 1
2
[

2 2
2
2 2
2
2 2
2

2
2
1
2
2

{}
2
2 n
2
]

(3.116)

ou, de forma mais compacta,


= .

(3.117)

3.5.1.6. Campo de Tenses

Uma vez que a laje est livre para se deformar na direo z e que a tenso desprezvel, pode-se
admitir que a relao entre tenso e deformao anloga dos problemas de Estado Plano de Tenso.

39

Desenvolvimento de um Programa de Elementos Finitos Verstil

Assim, para materiais isotrpicos e com comportamento linear elstico, estabelece-se a seguinte a
relao constitutiva entre o campo de tenses e o campo de deformaes.
(3.118)

=
Aps as devidas substituies, (3.118) equivalente a

(3.119)

onde matriz D designada por matriz de elasticidade e funo das propriedades elsticas do material,
isto , do mdulo de elasticidade, E, e do coeficiente de Poisson, . Em problemas de lajes pela teoria
de Kirchhoff,

1 2

=
1 2
[

1 2

1 2

0
0

(3.120)

2(1 + )]

O campo de tenses associado ao campo de deformaes pode ser escrito pelas seguintes componentes
cartesianas.

={ }
(3.121)

3.5.1.7. Esforos Internos

Para lajes sujeitas flexo, as tenses variam linearmente ao longo da espessura e os valores mximos
ocorrem nos planos limite da laje. Os esforos internos so, assim, obtidos a partir da integrao das
tenses ao longo da espessura da laje.

+/2
{ } =
{ }
/2

(3.122)

Em (3.122), , e so, respetivamente, os momentos fletores por unidade de comprimento nas


direes x e y e o momento de toro. Numa forma mais compacta,
=

3
.
12

(3.123)

3.5.2. LAJES PELA TEORIA DE REISSNER-MINDLIN


3.5.2.1. Breve Descrio da Teoria

A teoria de Reissner-Mindlin, semelhana dos elementos de viga pela teoria de Timoshenko, permite
considerar o efeito da deformabilidade devido ao esforo transverso. Nesta teoria considerado que as
retas perpendiculares ao plano mdio se mantm retas aps deformao mas no necessariamente
normais ao plano mdio da laje. Esta teoria adequada ao estudo de lajes espessas, mas, dada a
simplicidade e facilidade de utilizao dos elementos finitos formulados por esta teoria tambm se
utilizam em situaes em que se deixa de considerar a laje como espessa.

40

Desenvolvimento de um Programa de Elementos Finitos Verstil

O estudo do elemento finito de laje pela teoria de Reissner-Mindlin pressupe que a espessura muito
inferior s outras dimenses e que as cargas so aplicadas transversalmente ao seu plano mdio. Assim
como na teoria de Kirchhoff, a teoria de Reissner-Mindlin tambm est fundamentada em hipteses
simplificadoras [17], nomeadamente:
Nos pontos do plano mdio os deslocamentos u e v so nulos;
Todos os pontos normais ao plano mdio possuem o mesmo deslocamento vertical;
A tenso desprezvel;
As retas normais ao plano mdio indeformado da laje permanecem retas mas no
necessariamente normais ao plano mdio aps deformao.

Como as deformaes por corte no so nulas, deixa de se poder calcular diretamente o campo de
rotaes a partir do campo de deslocamentos transversais. Desta forma, para se caracterizar o campo de
deslocamentos numa laje espessa necessrio determinar trs campos independentes, isto , um campo
de deslocamentos transversais e dois campos de rotaes.

3.5.2.2. Princpio dos Trabalhos Virtuais

O domnio de uma laje pode ser descrito na forma



= {(, , ) 3 : [ , + ] , (, ) 2 }
2 2

(3.124)

onde e h representam o plano mdio e a espessura da laje, respetivamente. O Princpio dos Trabalhos
Virtuais estabelece que o trabalho realizado pelas tenses internas na deformao virtual do corpo
igual ao trabalho realizado pelas foras exteriores nos deslocamentos virtuais dos seus pontos de
aplicao.
(3.125)

Considerando um elemento finito submetido a um carregamento distribudo no seu plano mdio atuando
na direo z, a relao existente entre trabalho virtual interno e trabalho virtual externo pode ser escrita
da seguinte forma.
=

(3.126)

De acordo com o apresentado no Captulo 2, a relao (3.126), aps alguma manipulao algbrica,
equivalente a
+/2

/2

+/2

+/2

/2

/2

+/2

(3.127)

/2

em que
3
= [12

].

(3.128)

Colocando (3.127) numa forma mais compacta,


=.

(3.129)

41

Desenvolvimento de um Programa de Elementos Finitos Verstil

3.5.2.3. Funes de Forma

Na figura 3.13 encontra-se representado um elemento finito retangular de quatro ns com trs graus de
liberdade por n, comprimento a, largura b e espessura h. Uma das principais caractersticas dos
elementos finitos formulados pela teoria de Reissner-Mindlin advm do facto de se poder utilizar
diretamente as funes de forma dos elementos finitos bidimensionais. Esta caracterstica dos elementos
finitos usados nas lajes pela teoria de Reissner-Mindlin permite, ainda, a utilizao de elementos finitos
isoparamtricos bidimensionais.

Fig.3.13 Elemento finito retangular de quatro ns.

3.5.2.4. Campo de Deslocamentos

Da anlise da figura 3.14 percebe-se que a rotao adicional da laje faz com que um dado segmento que
seja perpendicular ao plano mdio da laje no estado indeformado j no permanea aps a deformao
da laje. Note-se que quanto mais espessa for a laje mais importante se revela a rotao adicional que
este segmento reto sofre.

Fig.3.14 Representao do deslocamento de um ponto no plano xz.

Como no existe ortogonalidade do segmento normal ao plano mdio, o clculo do campo de rotaes
difere do da teoria de Kirchhoff. Assim, para o plano xz
=
e de forma anloga para o plano yz

42

(3.130)

Desenvolvimento de um Programa de Elementos Finitos Verstil

+ .

(3.131)

Esta diferena garante teoria de Reissner-Mindlin uma maior flexibilidade quanto sua
empregabilidade, tornando-a, hierarquicamente superior quando comparada com a teoria de Kirchhoff.
O campo de deslocamentos num ponto qualquer do elemento de laje pode ser determinado atravs das
igualdades seguintes.
(, , ) = (, )

(3.132a)

(, , ) = (, )

(3.132b)

(, , ) = (, )

(3.132c)

Nas expresses (3.132), u, v e w so os deslocamentos nas direes x, y e z, respetivamente. Na forma


matricial, o campo de deslocamentos para o elemento finito pode ser interpolado a partir dos seus
deslocamentos nodais. Assim, para um elemento finito de n ns,
1
,1

0
0
1 0
0
,1
{ } = [ 0 1 0 0 0 ]

(3.133)

0
0 1 0
0
,
{, }
ou, de forma mais compacta,
=

(3.134)

onde a matriz N agrupa as funes de forma e o vetor a os deslocamentos nodais.

3.5.2.5. Campo de Deformaes

A partir do campo de deslocamentos descrito, a teoria da elasticidade no domnio dos pequenos


deslocamentos e deformaes estabelece as seguintes relaes entre deformao e deslocamento.

= (


+
)

(3.135a)
(3.135b)
(3.135c)

(3.135d)

(3.135e)

Devido s rotaes adicionais surgem deformaes transversais que so independentes da coordenada


z. Para caracterizar de forma completa o estado de deformao numa laje espessa, alm das curvaturas
utilizadas na caracterizao do comportamento das lajes finas, passa a ser necessrio conhecer o valor
das deformaes por corte.
Escrevendo matricialmente as componentes do campo de deformaes para o elemento finito de n ns,
chega-se a

43

Desenvolvimento de um Programa de Elementos Finitos Verstil

0
0
=

0
1

1
[

0
1

1
,1
,1
,

{ , }

(3.136)

que equivalente a

= [ ]

(3.137)

= .

(3.138)

ou, de forma mais compacta,

3.5.2.6. Campo de Tenses

Para materiais isotrpicos e com comportamento linear elstico, estabelece-se a seguinte relao
constitutiva entre o campo de tenses e o campo de deformaes.

=

(3.139)

Aps as devidas substituies, (3.139) equivalente a



=

(3.140)

designada por matriz de elasticidade e funo das propriedades elsticas do material,


onde a matriz
isto , do mdulo de elasticidade, E, e do coeficiente de Poisson, . Para um material isotrpico com
comportamento linear elstico,
= [

].

(3.141)

O parmetro em (3.141) tem como finalidade corrigir o efeito da distribuio no uniforme das tenses
tangenciais ao longo da espessura da laje. Como as deformaes por corte so independentes da
coordenada z, as tenses tangenciais transversais adquirem uma distribuio constante ao longo da
espessura da laje.
De acordo com a teoria da elasticidade, a distribuio exata das tenses tangenciais transversais no
constante ao longo da espessura mas parablica com valores nulos nas extremidades superior e inferior
da laje. Para contornar este problema utilizado um fator de correo com o objetivo de igualar o
trabalho de deformao realizado entre as solues aproximada (Teoria de Reissner-Mindlin) e exata
(Teoria da Elasticidade) [14]. Para um elemento finito de laje com espessura constante adota-se o valor
para de 5/6.

3.5.2.7. Esforos Internos

Os esforos internos so obtidos a partir da integrao das tenses ao longo da espessura da laje. Sabendo
que as tenses de flexo variam linearmente ao longo da espessura e que as tenses de corte permanecem
constantes, tem-se,

44

Desenvolvimento de um Programa de Elementos Finitos Verstil

+/2

{ }=
{ }
/2

(3.142)

+/2

{ } =
{ } .

(3.143)

/2

Em (3.142), , e so, respetivamente, os momentos fletores por unidade de comprimento nas


direes x e y e o momento de toro, enquanto que em (3.143), Vx e Vy so os esforos transversos por
unidade de comprimento nas direes x e y. Calculando os integrais (3.142) e (3.143),
=

3

12

(3.144)

e
(3.145)

= .
Para um material isotrpico com comportamento linear elstico,

1 2

=
1 2
[

1 2

1 2

0
0

(3.146)

2(1 + )]

=
[

2(1 + )

2(1 + )]

(3.147)

Dada a sua simplicidade e facilidade de utilizao, os modelos de elementos finitos para lajes espessas
so os mais utilizados, mesmo em situaes para as quais se pode deixar de considerar a laje como
espessa. Contudo, h situaes em que a diminuio da espessura da laje coloca alguns problemas no
que toca utilizao de elementos finitos baseados na teoria de Reissner-Mindlin.
Um dos fenmenos mais gravosos que podem surgir nesta circunstncia o chamado locking. Este
fenmeno de locking est associado a uma rigidez excessiva do modelo numrico utilizado. A sua
resoluo passa pela subavaliao dos elementos das matrizes de rigidez elementares, ou seja, realizando
uma integrao numrica reduzida ou uma integrao numrica seletiva.
A formulao apresentada no permite a incluso de esforos normais atuantes no plano da laje. A
combinao do elemento finito de laje pela teoria de Reissner-Mindlin com o elemento finito do Estado
Plano de Tenso permite obter o designado elemento finito laminar. O elemento finito laminar possui
cinco graus de liberdade sendo dois vindos do elemento finito bidimensional usado no Estado Plano de
Tenso e trs do elemento de laje pela teoria de Reissner-Mindlin. Devido s suas caractersticas, este
elemento finito empregue no estudo de lajes pr-esforadas e de estruturas laminares compsitas. O
elemento finito laminar, alm do estudo de lajes, pode ser adaptado ao estudo de cascas.

45

Desenvolvimento de um Programa de Elementos Finitos Verstil

46

Desenvolvimento de um Programa de Elementos Finitos Verstil

4
ELEMENTOS FINITOS COM
SUBSTITUIO DE VARIVEL

4.1. SUBSTITUIO DE VARIVEL EM UMA DIMENSO


De forma a normalizar o comprimento de elemento finito adotado um sistema de coordenadas
genrico. Este sistema de coordenadas, designado por Or, definido para normalizar o comprimento do
elemento finito impe um comprimento L = 2 e coordenadas dos ns extremos r1 = -1 e rn = +1.
A utilizao de um referencial normalizado permite a automatizao do clculo numrico. Esta
automatizao consegue-se devido ao facto dos domnios de integrao de cada elemento finito serem
sempre os mesmos, independentemente do tamanho e do grau de distoro de cada elemento. Assim, as
funes de forma a utilizar deixam de ser influenciadas pela geometria de cada elemento finito passando
a depender apenas da representao dos elementos no sistema de coordenadas normalizado.

Fig.4.1 Elemento finito unidimensional de n ns com substituio de varivel.

Considere-se um elemento finito de comprimento L, rea da seco transversal A, mdulo de elasticidade


E e sujeito a um carregamento axial p distribudo ao longo de todo o seu comprimento. As coordenadas
, sendo
do elemento finito real no referencial Ox so armazenadas no vetor
1
2

={ }
(4.1)

e as coordenadas do elemento finito normalizado no referencial Or so armazenadas no vetor . Para


um elemento finito unidimensional de n ns

47

Desenvolvimento de um Programa de Elementos Finitos Verstil

= { 2 } .

(4.2)

De modo a automatizar o clculo da matriz de rigidez elementar e do vetor de foras nodais equivalentes
conveniente realizar uma substituio de varivel do seguinte tipo.
= ()

(4.3)

As coordenadas dos ns do elemento finito so interpoladas com recurso seguinte expresso geral.
() = 1 ()1 + 2 ()2 + + ()

(4.4)

As funes de forma para o elemento finito normalizado so deduzidas em funo de r com as


coordenadas armazenas no vetor .
A matriz de rigidez de um elemento finito unidimensional com substituio de varivel obtida pelo
integral
+1

(4.5)

em que o determinante jacobiano. O determinante jacobiano tem como funo definir a relao
existente para a dimenso do elemento finito entre os dois referenciais de modo a se poder usar os limites
de integrao considerados em (4.5). Se os parmetros E e A no forem constantes, estes podem ser
interpolados com as mesmas funes de forma com que foram interpoladas as coordenadas dos ns, ou
seja,
() = 1 ()1 + 2 ()2 +. . . + ()

(4.6)

() = 1 ()1 + 2 ()2 +. . . + ()

(4.7)

onde e so os valores para o n i do mdulo de elasticidade e da rea da seco transversal do


elemento finito, respetivamente. O determinante jacobiano obtido por derivao de (4.4).
=

1
2

=
1 +
2 +. . . +

(4.8)

Para avaliar o integral (4.5) ainda necessrio definir a matriz B em funo de r. Desta forma, existe a
necessidade de calcular as derivadas das funes de forma em ordem a x mas expressas em funo de r.
Recorrendo regra de derivao em cadeia das funes de forma para um n genrico i, chega-se
expresso geral

=
.

(4.9)

Assim, os termos da matriz B so determinados pela expresso geral


1
=
.

(4.10)

Calculadas todas as derivadas das funes de forma procede-se sua distribuio na matriz B de acordo
com o formato apresentado no Captulo 3. Apresentados todos os passos necessrios para calcular a
matriz de rigidez do elemento finito com recurso substituio de varivel do tipo (4.3) pormenorizado
o clculo do vetor de foras nodais equivalentes.

48

Desenvolvimento de um Programa de Elementos Finitos Verstil

Para um elemento finito unidimensional carregado axialmente ao longo do seu comprimento, o vetor de
foras nodais equivalentes com substituio de varivel obtido pelo seguinte integral.
+1

(4.11)

Em suma, relativamente discretizao com elementos finitos unidimensionais, quando as propriedades


do material, a rea da seco transversal e/ou o carregamento axial variam ao longo do seu
desenvolvimento prefervel fazer uma discretizao que atenda a estas variaes em vez de se recorrer
a elementos finitos de ordens superiores.

4.2. SUBSTITUIO DE VARIVEL EM DUAS DIMENSES


A utilizao de elementos finitos de ordem superior com lados curvos ou elementos finitos distorcidos
dificulta o clculo das matrizes de rigidez elementares e dos vetores de foras nodais equivalentes. Estas
dificuldades so ultrapassadas atravs do uso de elementos finitos isoparamtricos e de integrao
numrica.
Na figura 4.2 mostrada a transformao entre as coordenadas cartesianas (x, y) e as coordenadas
naturais (r, s) no plano de referncia para elementos finitos quadrilteros. Esta transformao
frequentemente designada por mapeamento isoparamtrico. A espessura do elemento finito designada
por h e tambm pode ser funo das coordenadas x e y.

Fig.4.2 Transformao de um elemento real para um elemento normalizado (Adaptado de [13]).

,
As coordenadas do elemento finito real bidimensional no referencial Oxy so armazenadas na matriz
em que
1 1
2 2
=[

]
(4.12)


e as coordenadas do elemento finito normalizado bidimensional no referencial Ors so armazenadas na
matriz , sendo
1 1
2 2
= [
].
(4.13)

49

Desenvolvimento de um Programa de Elementos Finitos Verstil

De forma a facilitar o clculo da matriz de rigidez e do vetor de foras nodais equivalentes do elemento
finito efetuada uma substituio de variveis do seguinte tipo.
{

= (, )
= (, )

(4.14)

Esta substituio de variveis permite o estudo de elementos finitos com geometria irregular com as
mesmas funes de forma deduzidas para um elemento finito de geometria regular. Este elemento finito
de geometria normalizada corresponde a um elemento finito bidimensional quadrado cuja dimenso dos
lados vale dois.
A interpolao de coordenadas em duas dimenses baseia-se na seguinte aproximao para a geometria
do elemento finito de n ns.

= (, )

(4.15a)

=1

= (, )

(4.15b)

=1

Relativamente ao sistema de eixos Ors, as coordenadas de qualquer ponto do elemento finito so


definidas em r [-1,+1] e s [-1,+1], independentemente do grau de distoro do mesmo e dos seus
lados serem ou no curvos. As componentes de deslocamento podem ser determinadas a partir da
interpolao dos deslocamentos nodais da forma seguinte.

(. ) = (, )

(4.16a)

=1

(, ) = (, )

(4.16b)

=1

As funes de forma do elemento finito de geometria normalizada so deduzidas em funo de r e s


com as coordenadas armazenas na matriz .
A matriz de rigidez de um elemento finito quadriltero com substituio de varivel obtida pelo
integral
+1

=
1

+1

(4.17)

em que o determinante da matriz jacobiana. Para se calcular o integral (4.17) necessrio que todos
os termos da funo integranda dependam das variveis r e s. Caso os parmetros E e da matriz D e h
no sejam constantes, os seus valores podem ser interpolados com recurso s mesmas funes de forma
com que so interpoladas as coordenadas dos ns.
(, ) = 1 (, )1 + 2 (, )2 +. . . + (, )

(4.18)

(, ) = 1 (, )1 + 2 (, )2 +. . . + (, )

(4.19)

(, ) = 1 (, )1 + 2 (, )2 +. . . + (, )

(4.20)

Note-se que pode ser prefervel adotar uma discretizao que atenda a esta variao de geometria e
propriedades do material em vez de interpolar os seus valores.
A matriz jacobiana correspondente transformao definida em (4.14) definida por

50

Desenvolvimento de um Programa de Elementos Finitos Verstil

= [

] .

(4.21)

A obteno dos termos da matriz jacobiana realizada atravs da multiplicao das coordenadas dos
ns do elemento finito real pelas derivadas das funes de forma do elemento finito normalizado. Na
forma matricial, a obteno da matriz jacobiana realizada com recurso expresso geral

] = [1
1

2
2

2
]

(4.22)

ou, de forma mais compacta,

(4.23)

A matriz B tambm dependente das variveis r e s. De modo a ser possvel calcular o integral (4.17)
necessrio obter as derivadas das funes de forma que compem a matriz B em ordem a x e y mas
expressas em funo de r e s. Desta forma, recorrendo regra de derivao em cadeia das funes de
forma para um n genrico i, chega-se s expresses seguintes.


=
+

(4.24a)


=
+

(4.24b)

Estendendo aos n ns do elemento finito e colocando na forma matricial, a regra de derivao em cadeia
fica
1

1
1

2
2
=

] [

(4.25)

ou, de forma mais compacta,



=
.

(4.26)

Assumindo que a matriz tem inversa, pode-se determinar que


1
=
.

(4.27)

possvel garantir que a inversa da matriz jacobiana existe desde que os elementos finitos reais no
apresentem grandes distores. No entanto, esta correspondncia deixa de se verificar em situaes em
que dois dos lados de um elemento finito com lados retos compartilham um ngulo interno maior que

51

Desenvolvimento de um Programa de Elementos Finitos Verstil

radianos [21]. Calculadas todas as derivadas das funes de forma procede-se sua distribuio na
matriz B de acordo com o formato apresentado no Captulo 3.
O vetor de foras nodais equivalentes de um elemento finito bidimensional com substituio de varivel,
sujeito a um carregamento por unidade de superfcie no plano Ors, obtido pelo seguinte integral.
+1

+1

=
1

(4.28)

Na situao em que o elemento finito, em estudo, est sujeito a carregamentos distribudos nos seus
bordos, a expresso para o clculo do vetor de foras nodais equivalentes reduz-se a um integral de
linha. Para determinar o valor das foras nodais equivalentes para um carregamento deste tipo,
necessrio relacionar o comprimento de um segmento infinitesimal definido no referencial
isoparamtrico com o correspondente referencial cartesiano. Isto feito de forma anloga ao apresentado
para os elementos finitos unidimensionais.

4.3. SUBSTITUIO DE VARIVEL EM TRS DIMENSES


A modelao de problemas com geometrias complexas exige a utilizao de elementos finitos
distorcidos. Atendendo a isto, a utilizao de uma formulao isoparamtrica torna a anlise por
elementos finitos mais flexvel. No sistema de eixos Orst, as coordenadas de qualquer ponto do elemento
finito so definidas em r, s, t [-1,+1], independentemente do grau de distoro do mesmo e dos seus
lados serem ou no curvos.
Na figura 4.3 mostrada a transformao entre as coordenadas cartesianas (x, y, z) e as coordenadas
naturais (r, s, t) para elementos finitos hexadricos.

Fig.4.3 Transformao de um elemento real para um elemento normalizado (Adaptado de [13]).

De modo a automatizar o clculo da matriz de rigidez elementar e do vetor de foras nodais equivalentes
conveniente realizar uma substituio de varivel do seguinte tipo.
= (, , )
{ = (, , )
= (, , )

(4.29)

, em
As coordenadas do elemento finito real com n ns no referencial Oxyz so armazenadas na matriz
que

52

Desenvolvimento de um Programa de Elementos Finitos Verstil

1
2
=[

1
2

1
2
]

(4.30)

e as coordenadas do elemento finito normalizado tridimensional no referencial Orst so armazenadas na


matriz , sendo
1 1 1
2 2 2
= [
(4.31)

].

As funes de forma do elemento finito de geometria normalizada so deduzidas em funo de r, s e t
com as coordenadas armazenas na matriz .
No caso dos elementos finitos hexadricos de ordem superior ao apresentado na figura 4.3, so
necessrias funes de forma de ordem superior. Estes elementos finitos tm a vantagem de permitir
modelar geometrias curvas recorrendo a discretizaes com um menor nmero de elementos finitos, em
comparao com a utilizao de elementos finitos de baixa ordem. Contudo, dada a utilizao de um
maior nmero de ns e um maior grau das funes de forma, estes elementos finitos tornam-se mais
dispendiosos computacionalmente.
A interpolao de coordenadas em trs dimenses baseia-se na seguinte aproximao para a geometria
do elemento finito de n ns.

= (, , )

(4.32a)

=1

= (, , )

(4.32b)

=1

= (, , )

(4.32c)

=1

A matriz de rigidez de um elemento finito hexadrico com substituio de varivel obtida pelo integral
+1

=
1

+1

+1

(4.33)

em que o determinante da matriz jacobiana. Para se calcular o integral (4.33) necessrio que todos
os termos da funo integranda dependam das variveis r, s e t.
A matriz jacobiana correspondente transformao definida em (4.29) definida da seguinte forma.

(4.34)

A obteno dos termos da matriz jacobiana realizada atravs da multiplicao das coordenadas dos
ns do elemento finito real pelas derivadas das funes de forma do elemento finito normalizado. Na
forma matricial, a obteno da matriz jacobiana realizada com recurso expresso geral

53

Desenvolvimento de um Programa de Elementos Finitos Verstil

= [1

2
]

2
2
2

(4.35)

ou, de forma mais compacta,

(4.36)

De modo a ser possvel calcular o integral (4.33) necessrio obter as derivadas das funes de forma
que compem a matriz B em ordem a x, y e z mas expressas em funo de r, s e t. Assim, recorrendo
regra de derivao em cadeia das funes de forma para um n genrico i, chega-se s expresses
seguintes.


=
+
+

(4.37a)


=
+
+

(4.37b)


=
+
+

(4.37c)

Na forma forma matricial, a regra de derivao em cadeia para um elemento finito de n ns fica
1

1
1

2
2
=

] [

(4.38)

ou, de forma mais compacta,



=
.

(4.39)

Assumindo que a matriz tem inversa, ento


1
=
.

(4.40)

Calculadas todas as derivadas das funes de forma com recurso a (4.40) procede-se sua distribuio
na matriz B de acordo com a sua estrutura. Uma vez que todos os componentes da funo integranda se
encontram definidos em funo de r, s e t agora possvel proceder ao clculo da matriz de rigidez do
elemento finito utilizando (4.33).
O vetor de foras nodais equivalentes de um elemento finito hexadrico com substituio de varivel
sujeito a um carregamento de volume obtido pelo integral seguinte.
+1

=
1

54

+1

+1

(4.41)

Desenvolvimento de um Programa de Elementos Finitos Verstil

5
INTEGRAO NUMRICA

5.1. SELEO DO MTODO DE INTEGRAO NUMRICA


A resoluo de problemas pelo Mtodo dos Elementos Finitos implica, muitas vezes, o clculo de
integrais relativamente complexos. Assim, til recorrer a mtodos aproximados, mais eficientes e de
fcil implementao computacional, para se calcular esses integrais.
A dificuldade que se coloca na utilizao da integrao numrica consiste na escolha do mtodo de
integrao. A matemtica fornece inmeros mtodos para realizar integrao numrica. O que distingue
esses mtodos, alm da sua complexidade, a velocidade de convergncia, ou seja, o nmero de
iteraes que necessrio realizar at se obter o valor exato do integral. Do ponto de vista de
implementao computacional, o melhor mtodo aquele que, para alm de fcil implementao,
permite conhecer o valor exato, ou com preciso suficiente, realizando computacionalmente poucos
clculos.
Um dos mtodos que rene estes requisitos a quadratura de Gauss-Legendre. Alm destes motivos,
outros associados escolha dos pontos para se calcular as tenses e os esforos internos, fazem da
quadratura de Gauss-Legendre a mais utilizada e divulgada no mbito do Mtodo dos Elementos Finitos.

5.2. QUADRATURA DE GAUSS-LEGENDRE


5.2.1. FUNDAMENTOS DA QUADRATURA DE GAUSS-LEGENDRE

A quadratura de Gauss-Legendre um dos mtodos mais expeditos para realizar a tarefa de integrao
numrica. Segundo este mtodo, de um modo geral, pode-se determinar o integral de uma funo
genrica atravs de

() = ( ) ( )

=1

(5.1)

=1

onde n corresponde ao nmero de pontos de integrao e wi ao peso de integrao associado ao ponto


de integrao xi. De modo a agilizar o procedimento de integrao numrica habitual definir o integral
de uma funo genrica para o intervalo [-1, +1]. A adaptao dos limites de integrao de qualquer
intervalo [a, b] para o intervalo [-1, +1], usado na quadratura de Gauss-Legendre, realizada atravs da
seguinte manipulao.

() =

+1
+
(
+
)
2
2
2
1

(5.2)

55

Desenvolvimento de um Programa de Elementos Finitos Verstil

Atendendo a (5.1),

+
()
(
+
).
2
2
2

(5.3)

=1

Com n pontos de integrao obtm-se o valor exato do integral de um polinmio de grau p = 2n - 1, ou


inferior. Assim, quando se pretende conhecer a soluo exata de um polinmio de grau p, o nmero de
pontos de integrao a utilizar n = (p + 1) / 2, ou superior. Caso o valor de p seja par, deve-se substituir
o seu valor pelo nmero mpar imediatamente superior.

5.2.2. INTEGRAO NUMRICA EM UMA DIMENSO

O objetivo da integrao numrica de funes em uma dimenso transformar a formulao integral


contnua sobre o domnio fsico do elemento finito em somatrios avaliados num conjunto discreto de
pontos sobre esse elemento finito. Matematicamente equivalente a calcular o integral de uma funo
genrica definida em termos de coordenadas naturais Or atravs da aproximao
+1

() ( )
1

(5.4)

=1

onde n corresponde ao nmero de pontos de integrao e wi o peso de integrao associado ao ponto


de integrao ri. Na tabela 5.1 so mostrados os pares de valores coordenada-peso de integrao para as
cinco primeiras ordens de integrao definidas para o intervalo [-1, +1].
Tabela 5.1 Posies dos pontos de amostragem e respetivos pesos.

wi

ri

2.0

0.0

1.0000000000

-0.5773502692

1.0000000000

0.5773502692

0.5555555556

-0.7745966692

0.8888888888

0.0000000000

0.5555555556

0.7745966692

0.3478548451

-0.8611363116

0.6521451549

-0.3399810436

0.6521451549

0.3399810436

0.3478548451

0.8611363116

0.2369268851

-0.9061798459

0.4786286705

-0.5384693101

0.5688888889

0.0000000000

0.4786286705

0.5384693101

0.2369268851

0.9061798459

56

Desenvolvimento de um Programa de Elementos Finitos Verstil

5.2.3. INTEGRAO NUMRICA EM DUAS DIMENSES

O conceito de integrao numrica agora estendido ao domnio bidimensional. O objetivo


transformar o integral duplo de uma funo genrica definida em termos de coordenadas naturais Ors
num duplo somatrio.
+1

+1

(, ) ( , )
1

(5.5)

=1 =1

Em (5.5) nr e ns correspondem ao nmero de pontos de integrao a adotar ao longo das direes Or e


Os, respetivamente. Por outro lado, ri e sj so as coordenadas no referencial natural do ponto de
amostragem (i, j). Finalmente, wi e wj so os pesos associados a cada ponto de integrao.
Na tabela 5.2 encontram-se as posies e os pesos correspondentes aos pontos de integrao que foram
obtidos do modo anlogo ao caso da integrao numrica em uma dimenso em que se aplicou o
procedimento para cada uma das duas direes. A expresso (5.5) permite realizar a integrao numrica
de funes bidimensionais definidas para os elementos finitos quadrilteros.
Tabela 5.2 Pesos e posies dos pontos de amostragem para quadrilteros.

wi

wj

ri

sj

2.0

2.0

0.0

0.0

1.0000000000

1.0000000000

-0.5773502692

-0.5773502692

1.0000000000

1.0000000000

0.5773502692

-0.5773502692

1.0000000000

1.0000000000

0.5773502692

0.5773502692

1.0000000000

1.0000000000

-0.5773502692

0.5773502692

0.5555555556

0.5555555556

-0.7745966692

-0.7745966692

0.8888888888

0.5555555556

0.0000000000

-0.7745966692

0.5555555556

0.5555555556

0.7745966692

-0.7745966692

0.5555555556

0.8888888888

0.7745966692

0.0000000000

0.5555555556

0.5555555556

0.7745966692

0.7745966692

0.8888888888

0.5555555556

0.0000000000

0.7745966692

0.5555555556

0.5555555556

-0.7745966692

0.7745966692

0.5555555556

0.8888888888

-0.7745966692

0.0000000000

0.8888888888

0.8888888888

0.0000000000

0.0000000000

57

Desenvolvimento de um Programa de Elementos Finitos Verstil

Apesar de se procurar obter o valor exato da funo integranda, em algumas situaes conveniente
integrar as funes com um nmero de pontos inferior ao mnimo necessrio para se obter o valor exato
do integral. A escolha do nmero de pontos de integrao, tambm designados por pontos de Gauss,
influencia diretamente o custo computacional da anlise por elementos finitos. Em teoria, subir a ordem
de integrao conduz a resultados sucessivamente mais corretos. Da mesma forma que a utilizao de
poucos pontos de integrao, no limite apenas um, pode conduzir a resultados incorretos ou mesmo
tornar as matrizes de rigidez elementares singulares.
A integrao numrica designa-se completa quando se utiliza um nmero mnimo de pontos de modo a
obter o valor exato do integral. A integrao diz-se reduzida quando se considera um nmero de pontos
de integrao inferior ao mnimo necessrio para efetuar a integrao completa. A integrao reduzida
muitas vezes usada propositadamente para reduzir o excesso de rigidez relativamente soluo fsica
correta obtida quando se realiza integrao completa. Assim, a integrao reduzida uma das primeiras
tcnicas utilizadas para reduzir a rigidez dos elementos finitos.
Alternativamente ao uso da integrao reduzida, em algumas formulaes de elementos finitos,
habitual realizar uma integrao numrica seletiva. Em elementos finitos de laje formulados pela teoria
de Reissner-Mindlin o uso de integrao numrica seletiva corresponde a usar integrao completa para
integrar a parcela de flexo e integrao reduzida para integrar a parcela de corte.

5.2.4. INTEGRAO NUMRICA EM TRS DIMENSES

semelhana do exposto nos pontos anteriores, os integrais em domnios tridimensionais podem ser
aproximados efetuando um somatrio de termos constitudos pelos valores da funo integranda num
certo nmero discreto de pontos predefinidos, multiplicados por pesos convenientes. Assim, para o caso
de elementos hexadricos obtm-se
+1

+1

+1

(, , ) ( , , )
1

(5.6)

=1 =1 =1

em que nr, ns e nt correspondem ao nmero de pontos de integrao a adotar ao longo das direes Or,
Os e Ot, respetivamente. Por outro lado, ri, sj e tk so as coordenadas no referencial natural do ponto de
amostragem (i, j, k). Finalmente, wi, wj e wk so os pesos a considerar em funo dos pontos de integrao
escolhidos.
O nmero de pontos de integrao a usar est associado ao grau mximo do polinmio a integrar, ou
seja, elementos finitos com ordens de integrao superiores exigem mais pontos de integrao. No
contexto das formulaes tridimensionais, a utilizao de tcnicas de integrao reduzida tem por
objetivo melhorar o desempenho dos elementos finitos, nomeadamente, atravs da reduo da rigidez.
Na tabela 5.3 so mostrados os pesos e as coordenadas dos pontos de integrao definidos para as duas
primeiras ordens de integrao de elementos finitos hexadricos.

5.3. OUTRAS QUADRATURAS


Qualquer procedimento de integrao perfeitamente vlido. Contudo, como j anteriormente referido,
a escolha do procedimento de integrao deve passar por encontrar a metodologia que conduz reduo
do nmero de clculos computacionais. A quadratura de Gauss-Legendre um dos poucos mtodos que
rene simplicidade e eficincia.

58

Desenvolvimento de um Programa de Elementos Finitos Verstil

Como os programadores procuram implementar mtodos que conduzem reduo do nmero de


operaes computacionais, quadraturas semelhantes quadratura de Gauss-Legendre mas que exigem
que a funo integranda seja avaliada em mais pontos, normalmente, no so preferveis. Contudo, em
contextos de integrao reduzida, estas quadraturas podem fornecer melhores resultados que a
quadratura de Gauss-Legendre.
Tabela 5.3 Pesos e posies dos pontos de amostragem para hexaedros.

w i = wj = w k

ri

sj

tk

2.0

0.0

0.0

0.0

1.0000000000

-0.5773502692

-0.5773502692

-0.5773502692

1.0000000000

0.5773502692

-0.5773502692

-0.5773502692

1.0000000000

0.5773502692

0.5773502692

-0.5773502692

1.0000000000

-0.5773502692

0.5773502692

-0.5773502692

1.0000000000

-0.5773502692

-0.5773502692

0.5773502692

1.0000000000

0.5773502692

-0.5773502692

0.5773502692

1.0000000000

0.5773502692

0.5773502692

0.5773502692

1.0000000000

-0.5773502692

0.5773502692

0.5773502692

5.4. AVALIAO DA MATRIZ DE DEFORMAO


Em muitas situaes o valor do integral pode j ser previamente conhecido, dispensando o uso de
integrao numrica. Apesar da informao transmitida neste captulo relativamente ao uso da
quadratura de Gauss-Legendre como procedimento de integrao numrica no parecer relevante nestas
situaes, isto no necessariamente assim. Aps a resoluo do sistema de equaes, no mbito da
resoluo de um problema pelo Mtodo dos Elementos Finitos, necessrio obter um conjunto de
resultados ao nvel dos elementos finitos. Para obteno desses resultados necessrio avaliar a matriz
B do elemento finito.
O uso de polinmios interpoladores evidencia que os resultados obtidos vo oscilar face soluo
terica exata consoante o ponto que se escolha para avaliar a matriz de deformao. Este facto leva
adoo de um critrio de seleo dos pontos para avaliar a matriz B do elemento finito. O uso da
quadratura de Gauss-Legendre revela-se novamente til, pois, existe uma boa relao entre os pontos
adequados para avaliar a matriz B e os pontos de integrao da quadratura de Gauss-Legendre. Assim,
no mbito do Mtodo dos Elementos Finitos, as coordenadas dos pontos de integrao da quadratura de
Gauss-Legendre usados para avaliar a funo integranda podem, tambm, ser usados para avaliar cada
uma das matrizes elementares B.

59

Desenvolvimento de um Programa de Elementos Finitos Verstil

Em suma, neste captulo foi apresentada a metodologia de integrao numrica mais utilizada no mbito
do Mtodo dos Elementos Finitos. Assim, justifica-se a importncia da quadratura de Gauss-Legendre
no mbito do Mtodo dos Elementos Finitos.

60

Desenvolvimento de um Programa de Elementos Finitos Verstil

6
GERAO DE MALHAS DE
ELEMENTOS FINITOS

6.1. MALHAS DE ELEMENTOS FINITOS


A aplicao do Mtodo dos Elementos Finitos requer a gerao de uma malha que modele o domnio
do problema em estudo. O modo como esta malha de elementos finitos gerada vai influenciar o ritmo
com que a soluo numrica converge para os valores tericos expectveis. Assim, surge a necessidade
de desenvolver estratgias de refinamento de malhas de elementos finitos que assegurem a convergncia
de soluo.
As tcnicas de gerao de malhas de elementos finitos apresentadas neste captulo so relativas a
domnios bidimensionais. Relativamente a domnios unidimensionais, dada a sua simplicidade, no h
propriamente muitos conselhos a fornecer, alm de se procurar modelar adequadamente a geometria do
problema em estudo. Quanto aos domnios tridimensionais, algumas das tcnicas referidas para os
domnios bidimensionais podem ser estendidas aos domnios tridimensionais. Normalmente, a gerao
de malhas em domnios bidimensionais consiste em discretizar o domnio em estudo em tringulos e/ou
em quadrilteros. Para domnios tridimensionais a discretizao feita com recurso a elementos finitos
tetradricos, pentadricos e/ou hexadricos.
Os mtodos de gerao de malhas em domnios bidimensionais podem ser classificados em diretos ou
algbricos e indiretos ou de equaes diferenciais. Os mtodos diretos so assim designados porque
geram uma malha de elementos finitos sobre o domnio, baseado num dado algoritmo concreto. Os
mtodos indiretos podem ser divididos em gerao de malhas em domnios elementares, gerao de
malhas por transformao de coordenadas, mapeamentos conformes, mapeamentos isoparamtricos,
mapeamentos transfinitos e decomposio do domnio [10].
Com a apresentao das seguintes tcnicas de gerao de malhas de elementos finitos pretende-se
transmitir a informao necessria para a escolha da metodologia de gerao de malhas e, tambm, para
o desenvolvimento de novas tcnicas.

6.2. TCNICAS DE GERAO DE MALHAS


6.2.1. GERAO POR SOBREPOSIO DE GRELHA

Os elementos finitos da grelha podem ser triangulares ou retangulares. A grelha sobreposta sobre o
objeto a modelar e os elementos da grelha que esto fora do objeto so removidos. Os elementos da
grelha que cruzam a fronteira do objeto so ajustados ou aparados para que se encaixem no objeto. A
principal dificuldade na aplicao desta tcnica consiste em ajustar os elementos da grelha fronteira

61

Desenvolvimento de um Programa de Elementos Finitos Verstil

do objeto. A vantagem da sua aplicao que se obtm uma malha de elementos finitos bem discretizada
no interior do objeto. A figura 6.1 mostra a aplicao da tcnica de sobreposio de uma grelha.

Fig.6.1 Gerao de malhas por sobreposio de grelha.

6.2.2. GERAO POR TRANSFORMAO DE COORDENADAS

A gerao de malhas por transformao de coordenadas o tipo mais simples de mapeamento e consiste
em usar uma transformao de coordenadas que transforma o domnio elementar no domnio real. A
desvantagem deste mtodo reside no facto de ser necessrio determinar a transformao de coordenadas
que faa a passagem do domnio elementar para o domnio real [10]. A figura 6.2 mostra a aplicao da
tcnica de transformao de coordenadas.

Fig.6.2 Gerao de malhas por transformao de coordenadas.

6.2.3. GERAO POR MAPEAMENTO CONFORME

O mapeamento conforme toda a projeo cuja escala, em cada ponto, independente da direo
considerada. Em consequncia, os ngulos em torno desse ponto so conservados, bem como a forma
dos pequenos objetos. Na prtica, o mapeamento conforme consiste em associar os pontos dos domnios
elementar e real a nmeros complexos. Entre as desvantagens deste mtodo est o facto de que as
caractersticas da malha so definidas automaticamente dificultando a produo de uma malha adequada
ao domnio [10]. Este mtodo tambm exige que se determine a transformao de coordenadas que faa
o mapeamento do domnio elementar no domnio real.

62

Desenvolvimento de um Programa de Elementos Finitos Verstil

6.2.4. GERAO POR MAPEAMENTO ISOPARAMTRICO

Esta tcnica consiste em obter os valores das coordenadas dos pontos do domnio a partir de valores
especificados no contorno atravs do uso de funes de interpolao. Nesse processo o contorno do
domnio no especificado, ele aproximado por funes de interpolao que passam por pontos
especificados. Neste tipo de mapeamento ainda possvel controlar a densidade da malha de elementos
finitos. A figura 6.3 mostra a gerao de uma malha de elementos finitos atravs da aplicao desta
tcnica.

Fig.6.3 Gerao de malhas por mapeamento isoparamtrico.

6.2.5. GERAO POR MAPEAMENTO TRANSFINITO

O mapeamento transfinito estabelece um sistema de coordenadas curvilneas definidas pelo contorno de


domnios arbitrrios [10]. Este mtodo descreve uma superfcie aproximada que coincide com a
superfcie real ou idealizada em um nmero no enumervel de pontos, propriedade que deu origem ao
nome do mtodo. A geometria do modelo representada atravs de sub-regies definidas por curvas do
contorno que, por sua vez, so constitudas por um conjunto de primitivas (pontos, segmentos de reta,
curvas quadrticas e cbicas) [10].

6.2.6. GERAO POR TRIANGULAO DE DELAUNAY

Uma triangulao consiste em encontrar segmentos de reta que conectam um conjunto de pontos
pertencentes ao domnio em estudo. Nenhum desses segmentos se pode cruzar com outro e cada ponto
vrtice de pelo menos um tringulo. A Triangulao de Delaunay um mtodo de decomposio do
domnio e assenta na determinao de um crculo cujo interior no contm nenhum outro ponto do
conjunto de pontos que formam o tringulo. A Triangulao de Delaunay maximiza o menor ngulo de
todos os tringulos na triangulao pelo que tende a evitar tringulos com ngulos internos muito
pequenos.

6.2.7. GERAO POR QUADTREES

A quatree uma tcnica de decomposio do domnio que pode ser usada para implementar um
algoritmo de decomposio recursiva do espao. O processo consiste em dividir um domnio em
domnios de forma similar sendo repetido o nmero de vezes necessrio. Os algoritmos de
decomposio recursiva do espao trabalham com um nmero pequeno de formas. Normalmente, as

63

Desenvolvimento de um Programa de Elementos Finitos Verstil

formas disponveis em domnios bidimensionais so tringulos ou quadrilteros. A figura 6.4 mostra a


aplicao desta tcnica onde cada domnio elementar dividido em quatro novas formas similares.

Fig.6.4 Gerao de malhas pela tcnica de quadtree.

6.3. TIPOS DE REFINAMENTO


Existem vrios procedimentos para melhorar os resultados fornecidos pelos elementos finitos. Em geral,
estes procedimentos podem ser classificados da seguinte forma:

Refinamento h;
Refinamento p.

O refinamento h consiste em aumentar o nvel de discretizao da malha de elementos finitos, ou seja,


em aumentar o nmero de elementos finitos presentes numa dada rea onde se pretende melhorar a
qualidade dos resultados obtidos. O refinamento p consiste em aumentar a ordem do elemento finito
atravs do aumento do grau do polinmio interpolador. Um maior grau do polinmio interpolador pode
ser conseguido com o aumento do nmero de ns no elemento finito.
Tipicamente, o refinamento h pode ser dividido em trs subtipos. Uma das primeiras metodologias
consiste em dividir os elementos finitos obtendo uma malha mais apertada. A segunda metodologia
consiste em reformular a malha de elementos finitos. Por ltimo, a terceira metodologia consiste em
mover a posio dos ns dos elementos finitos alterando a configurao da malha.
O refinamento p tambm pode ser dividido em subtipos, nomeadamente dois. A primeira metodologia
consiste em aumentar o grau do polinmio das funes de forma do elemento finito. A segunda em
aumentar o nmero de ns do elemento finito. A forma de realizar o refinamento p est evidenciada no
Captulo 3 nos pontos relativos obteno das funes de forma dos elementos finitos. A juno dos
dois tipos de refinamento designada por refinamento hp.

6.4. REFINAMENTO DA MALHA DE ELEMENTOS FINITOS


As tcnicas de gerao de malhas, anteriormente apresentadas, s conduzem a malhas adequadas se o
domnio a discretizar estiver corretamente definido.
Normalmente, antes de usar um mtodo automtico de gerao de malhas, adequado recorrer a uma
prvia decomposio do domnio de forma a garantir que a malha gerada no apresente muitas
irregularidades. A realizao de um refinamento local exige que seja feita uma transio entre a zona
refinada e a zona corrente. Esta transio feita atravs de uma variao gradual do refinamento da

64

Desenvolvimento de um Programa de Elementos Finitos Verstil

malha. A figura 6.5 mostra uma proposta de transio entre zonas com elementos finitos de dimenses
diferentes.

Fig.6.5 Transio entre elementos finitos de dimenses diferentes.

Regies de introduo de cargas concentradas ou zonas de apoios, regies com descontinuidades


geomtricas ou ligaes com diferentes elementos estruturais so exemplo de zonas que devem ser alvo
de um refinamento individualizado, isto , devem possuir uma malha mais apertada.
Uma das dificuldades na modelao com elementos finitos reside na modelao de meios muito
irregulares ou com geometrias curvas, pois, os programas de clculo automtico so limitados quanto
disponibilidade de formas de elementos finitos. A utilizao de elementos finitos triangulares em meios
bidimensionais e os seus equivalentes tetradricos para meios tridimensionais so a soluo, muitas
vezes adotada, para discretizar meios complexos ou realizar refinamentos locais em zonas com elevados
gradientes de tenso e/ou deformao.
A grande flexibilidade dos elementos finitos triangulares e tetradricos torna-os indispensveis em
qualquer programa de gerao de malhas ou de clculo automtico pelo Mtodo dos Elementos Finitos.
No entanto, a maior desvantagem da discretizao com recurso a elementos finitos triangulares de trs
ns e tetradricos de quatro ns, reside na baixa acuidade dos resultados obtidos quando comparados,
respetivamente, com os quadrilteros de quatro ns e os hexaedros de oito ns.
Sendo o Mtodo dos Elementos Finitos um mtodo aproximado, a qualidade dos resultados est sempre
dependente do nvel de refinamento da malha de elementos finitos. Assim, deve-se procurar usar malhas
com um nvel de refinamento ajustado preciso dos resultados pretendidos.

6.5. QUALIDADE DAS MALHAS DE ELEMENTOS FINITOS


Normalmente, a primeira incgnita a determinar numa anlise pelo Mtodo dos Elementos Finitos o
campo de deslocamentos de um nmero finito de ns. Estes ns da malha encontram-se distribudos ao
longo da fronteira e no interior de cada elemento finito.
Os ns pertencentes fronteira de elementos finitos adjacentes devem de ser comuns a todos os
elementos que a se encontram, pois, os elementos finitos devem estar ligados atravs dos seus ns. A
figura 6.6 mostra alguns exemplos de ligaes no conformes entre elementos finitos. tambm
recomendvel que os elementos finitos vizinhos do mesmo tipo apresentem uma geometria semelhante
e as transies entre elementos finitos diferentes sejam graduais.
Existem algumas orientaes a seguir no processo de gerao das malhas de elementos finitos [6],
nomeadamente:
Modelar adequadamente os limites curvos do domnio;
Evitar o uso de elementos finitos desproporcionados ou distorcidos;
Ligar os elementos finitos adequadamente atravs dos seus ns;

65

Desenvolvimento de um Programa de Elementos Finitos Verstil

Usar malhas regulares e sem variaes bruscas de refinamento;


Aumentar o refinamento nas zonas com grandes variaes dos gradientes de tenses;
Usar elementos que modelam o campo de deslocamentos real.

Fig.6.6 Ligaes no conformes entre elementos finitos.

A escolha dos elementos a usar tem influncia na preciso dos resultados. H elementos que no so
capazes de modelar alguns modos de deformao ou distores. Elementos diferentes tm diferentes
sensibilidades para modelar distores. Deve-se procurar que a seleo dos elementos finitos esteja em
conformidade com o tipo de deformao esperada. A figura 6.7 mostra exemplos de elementos finitos
cuja geometria desproporcionada ou distorcida.

Fig.6.7 Elementos finitos de geometria desproporcionada ou distorcida.

As condies de apoio do modelo so to relevantes como a prpria malha de elementos finitos. No


adianta usar refinamentos elevados se os apoios usados no apresentem correspondncia com as
condies de apoio reais da estrutura. Normalmente, em teoria, os apoios estruturais so idealizados
como completamente rgidos ou como articulados. Os apoios reais esto normalmente entre um rgido
e um apoio articulado. Esta diferena pode levar a que exista uma alterao significativa da distribuio
de esforos na estrutura.
No que se refere avaliao da qualidade de uma malha de elementos finitos, esta pode ser determinada
com base nos seguintes fatores:
Taxa de convergncia;
Preciso da soluo;
Tempo de clculo.

Quanto maior for a taxa de convergncia, melhor ser a qualidade da malha. Isto significa que a soluo
terica expectvel para o problema alcanada mais rapidamente. A melhor qualidade de uma malha
garante uma soluo mais precisa. Para melhorar a qualidade da malha necessrio refinar as zonas
onde sejam expectveis grandes gradientes de tenses. Relativamente ao tempo de clculo, as malhas
que necessitam de mais tempo para serem calculadas, em geral, fornecem melhores resultados que as

66

Desenvolvimento de um Programa de Elementos Finitos Verstil

malhas que so rapidamente calculadas. Para uma malha altamente refinada, em que o nmero de
elementos finitos por unidade de rea mximo, o tempo de clculo relativamente grande.
A ponderao e o conhecimento real sobre o efetivo comportamento das peas e das estruturas constitui
um meio til para a modelao com elementos finitos. Por melhor que sejam as ferramentas de clculo,
a sensibilidade do utilizador fundamental para o processo de modelao com elementos finitos.

67

Desenvolvimento de um Programa de Elementos Finitos Verstil

68

Desenvolvimento de um Programa de Elementos Finitos Verstil

7
NOES SOBRE
DESENVOLVIMENTO DE
SOFTWARE

7.1. PROJETO DE SOFTWARE


Os comandos que os processadores dos computadores oferecem so extremamente bsicos,
normalmente orientados para realizar operaes aritmticas como soma, subtrao, diviso e
multiplicao. Qualquer tarefa mais complexa deve ser resolvida atravs de uma sequncia destes
comandos bsicos. Uma sequncia de comandos bsicos de processador que resolve uma determinada
tarefa recebe o nome de programa. Os programas so armazenados em ficheiros comumente chamados
de executveis.
A construo de um programa requer uma definio prvia de objetivos e meios. No h bons projetos
sem uma correta definio dos objetivos e meios necessrios para os concretizar.
A escolha da linguagem de programao uma das primeiras tarefas do projeto. As linguagens de
programao so normalmente orientadas para um contexto especfico. Existem linguagens
independentes de plataformas e outras associadas a uma dada plataforma ou tecnologia. Se a escolha da
linguagem de programao no for a adequada, compromete-se a distribuio do programa. O mesmo
se aplica a programas desenvolvidos para fins pessoais, pois, se a plataforma para o qual desenvolvido
o programa se tornar obsoleta a curto prazo, compromete-se todo o trabalho desenvolvido. Deve-se
procurar obter a portabilidade da ferramenta informtica desenvolvida. Ao se desenvolver programas
que permitam a sua utilizao em diferentes plataformas est-se a rentabilizar o seu desenvolvimento
conseguindo, desta forma, tirar o mximo partido deles.
O desenvolvimento de software com qualidade um objetivo importante. A qualidade pode ser definida
como o grau de satisfao de requisitos dados por um conjunto de caractersticas intrnsecas. No
contexto do desenvolvimento de software, a qualidade pode ser definida como um processo eficaz
aplicado de uma maneira que cria um produto til e que fornece valor mensurvel para quem o produz
e para quem o utiliza.
A programao um processo de escolhas e todas elas tm implicaes no desenvolvimento da soluo
informtica. A previso e a antecipao dos processos de deciso futuros fundamental para que as
escolhas do presente no comprometam o desenvolvimento e a manuteno futura do programa. Apesar
do futuro ser uma incerteza, o que se pretende salientar que antes do incio da programao, deve-se
comear pela preparao do processo de desenvolvimento, nomeadamente com a diviso das tarefas
necessrias ao desenvolvimento da soluo global. Este trabalho importantssimo no processo de

69

Desenvolvimento de um Programa de Elementos Finitos Verstil

desenvolvimento na medida que previne o aparecimento de eventuais conflitos entre o trabalho j


desenvolvido e o trabalho a desenvolver.
Em suma, salienta-se que no processo de desenvolvimento, abordagens diferentes conduzem a
programas diferentes.

7.2. LINGUAGENS DE PROGRAMAO


7.2.1. CRITRIOS DE AVALIAO DA LINGUAGEM

A apresentao dos critrios de avaliao de uma linguagem de programao prende-se com o objetivo
de fornecer os meios necessrios escolha da linguagem de programao mais adequada ao
desenvolvimento e posterior manuteno de um determinado programa informtico. Os critrios
frequentemente usados para avaliar uma linguagem so [19]:
Legibilidade;
Capacidade de escrita;
Confiabilidade;
Custo.

A legibilidade um dos critrios mais importantes para avaliar uma linguagem de programao,
nomeadamente, porque tem implicaes na facilidade com que os programas podem ser lidos e
entendidos. Uma vez que a facilidade de manuteno condicionada pela legibilidade dos programas,
esta tornou-se uma forma de avaliar a qualidade dos programas e das linguagens. Uma linguagem com
um grande nmero de componentes difcil de aprender e de ler em comparao com uma linguagem
mais pequena.
A capacidade de escrita uma medida de quo facilmente uma linguagem pode ser utilizada para criar
programas para um domnio de problema escolhido. A maioria das caractersticas da linguagem que
afeta a legibilidade tambm afeta a capacidade de escrita. Se uma linguagem tiver um grande nmero
de construes alguns programadores podem no estar familiarizados com todas elas.
A confiabilidade de uma linguagem significa que os programas desenvolvidos se comportam conforme
especificado. A verificao de tipos e a manipulao de excees so exemplos de mecanismos que
reforam a confiabilidade de uma linguagem de programao.
O custo final de uma linguagem de programao funo de muitas das suas caractersticas. Os custos
associados a uma linguagem de programao [19] so, genericamente, os seguintes:

Custos de formao dos programadores;


Custo de escrita dos programas na linguagem;
Custo de compilao dos programas;
Custo de execuo dos programas;
Custo do sistema de implementao da linguagem;
Custo da m confiabilidade;
Custo de manuteno dos programas.

De todos os fatores que contribuem para os custos de uma linguagem, destacam-se o tempo de escrita
do programa, a manuteno e a confiabilidade como sendo os mais importantes.
Evidentemente, existem inmeros critrios para avaliar as linguagens de programao. Critrios como
a portabilidade ou a facilidade com que os programas podem ser mudados de uma implementao para

70

Desenvolvimento de um Programa de Elementos Finitos Verstil

outra so atualmente critrios importantssimos, face ao nmero de tipos de dispositivos existentes. A


portabilidade de uma linguagem est associada ao grau de padronizao desta.

7.2.2. CATEGORIAS DE LINGUAGENS DE PROGRAMAO

A linguagem mquina a nica linguagem que os computadores maioritariamente entendem. As


linguagens de programao podem ser classificadas como sendo de baixo nvel ou de alto nvel,
consoante esto mais prximas ou afastadas da linguagem mquina. As linguagens de baixo nvel so
interpretadas diretamente pelo computador, contudo, so bastante incmodas para se programar com
elas. De modo a agilizar o processo de programao foram criadas as linguagens de programao de
alto nvel.
As linguagens de programao, habitualmente, so categorizadas em quatro tipos [19]:
Linguagens imperativas;
Linguagens funcionais;
Linguagens lgicas;
Linguagens orientadas a objetos.

As linguagens imperativas so orientadas a aes, onde a computao vista como uma sequncia de
instrues que manipulam valores de variveis. O fundamento da programao imperativa o conceito
de Mquina de Turing, que nada mais que uma abstrao matemtica que corresponde ao conjunto de
funes computveis. Os operandos das expresses so passados da memria para o processador e o
resultado da expresso passado de volta para a memria.
As linguagens funcionais fundamentam-se no paradigma de programao funcional que trata a
computao como uma avaliao de funes matemticas e que evita estados ou dados mutveis. Ela
enfatiza a aplicao de funes, em contraste com a programao imperativa, que enfatiza mudanas no
estado do programa. Uma funo, neste sentido, pode ou no receber parmetros e tem um simples valor
de retorno.
Uma linguagem de programao lgica um exemplo de linguagem baseada em regras. A programao
lgica um paradigma de programao que faz uso da lgica matemtica. O sentido da programao
lgica trazer o estilo da lgica matemtica programao de computadores. A abordagem ao
desenvolvimento radicalmente diferente do usado com os outros trs tipos de linguagens.
As linguagens orientadas a objetos fundamentam-se no paradigma da orientao a objetos em que cada
entidade do sistema corresponde, durante a execuo do programa, a um objeto, com atributos e aes
prprias que definem o modo de funcionamento desse programa. A maioria das linguagens de
programao orientadas a objetos usa o conceito de classe, para descrio de grupos de objetos
semelhantes. A programao orientada a objetos foi criada com o objetivo de aproximar o mundo real
ao mundo virtual.

7.2.3. MTODOS DE IMPLEMENTAO


7.2.3.1. Compilao

A compilao corresponde traduo do cdigo fonte do programa para linguagem mquina. Uma vez
traduzido, o programa pode ser diretamente executado no computador. Este mtodo tem a vantagem de
uma execuo de programa muito rpida, assim que o processo de traduo for concludo. Alguns
compiladores permitem a otimizao dos programas, tornando-os menores e mais rpidos. O ficheiro

71

Desenvolvimento de um Programa de Elementos Finitos Verstil

gerado pelo compilador designado de executvel e especfico para um determinado sistema operativo
e uma determinada arquitetura de processador.

7.2.3.2. Interpretao

Os programas podem ser diretamente interpretados por um outro programa sem recurso a nenhuma
traduo. O programa interpretador comporta-se como um simulador de uma mquina cujo ciclo de
funcionamento lida com as instrues do programa numa linguagem de alto nvel em vez de instrues
de mquina. Esta simulao conseguida com recurso a uma mquina virtual para a linguagem. A
interpretao tem a vantagem de permitir uma fcil implementao de muitas operaes de depurao
do cdigo fonte, pois, todas as mensagens de erro em tempo de execuo podem ser referidas a unidades
do cdigo. A interpretao apresenta algumas desvantagens relativamente compilao,
nomeadamente, a execuo mais lenta e o maior consumo de memria.

7.2.3.3. Sistemas de Implementao Hbridos

Alguns sistemas de implementao de linguagem so um meio-termo entre os compiladores e os


interpretadores. Os sistemas de implementao hbridos traduzem os programas em linguagem de alto
nvel para uma linguagem intermediria que foi projetada para permitir uma fcil interpretao. Este
mtodo mais rpido do que a interpretao porque as instrues da linguagem fonte so decodificadas
somente uma vez. Na prtica, em vez de traduzir o cdigo da linguagem intermediria para cdigo de
mquina, o cdigo intermedirio diretamente interpretado.

7.3. PRINCPIOS DE DESENVOLVIMENTO


Como a componente prtica desta dissertao consistiu na construo de um programa, til fornecer
um conjunto de dicas que auxiliem o desenvolvimento de software. Os princpios propostos por David
Hooker [19] so uma sugesto de como se deve desencadear o desenvolvimento de software.
Os princpios de desenvolvimento propostos so os seguintes:
1.
2.
3.
4.
5.
6.
7.

A razo pela qual tudo existe;


Mantenha as coisas simples;
Mantenha a viso;
O que produz, os outros vo consumir;
Esteja aberto para o futuro;
Planeie com antecedncia para a reutilizao;
Pense.

Um programa existe para fornecer valor aos seus utilizadores. Todas as tomadas de deciso devem ser
feitas com este princpio em mente. Assim, antes de fazer o que quer que seja deve-se avaliar se vai ser
acrescentado valor. Caso contrrio no dever ser feito.
O desenvolvimento de programas informticos deve orientar-se pela simplificao. A facilidade de um
sistema facilita a sua compreenso e manuteno. A simplificao um processo rduo, que o oposto
de rpido e desorganizado. Um programa melhor organizado menos propcio a erros.
Manter uma viso clara do que se pretende fundamental para manter o rumo de qualquer projeto. Sem
a definio clara do seu conceito, um sistema informtico pode vir a tornar-se um conjunto de projetos

72

Desenvolvimento de um Programa de Elementos Finitos Verstil

incompatveis. Ter algum que garanta a viso do desenvolvimento fundamental para se alcanar os
objetivos de forma bem-sucedida.
Relativamente ao quarto princpio, raramente um programa fica apenas limitado ao domnio privado.
Atualmente muito fcil que qualquer aplicao tenha algum tipo de distribuio. Sempre que se projeta
um programa, deve-se ter em mente que um programa para ser utilizado por pessoas. Assim, um
programa deve ser desenvolvido de forma que permita a fcil manuteno, expanso e utilizao. Quanto
mais focado nas pessoas maior a possibilidade de se obter o sucesso.
Um programa que tenha um grande perodo de vida tem mais valor. Atualmente, as plataformas
informticas ficam rapidamente obsoletas pelo que frequente medir o tempo de vida dos programas
em meses e no em anos. Para se garantir um tempo de vida elevado deve-se fornecer flexibilidade para
que estes programas se possam adaptar s mudanas. Os programas que no possuem flexibilidade
suficiente rapidamente tm de ser substitudos por outros.
O sexto princpio salienta que o planeamento est na base de qualquer projeto. Um bom planeamento
permite a reutilizao do trabalho j desenvolvido, economizando tempo e esforo. Permitir a
reutilizao de todo o contedo j desenvolvido sem dvida difcil de alcanar. Planear com
antecedncia para a reutilizao reduz o custo e aumenta o valor de ambos os componentes reutilizveis
e dos programas em que so incorporados.
Colocar o pensamento antes da ao quase sempre permite obter melhores resultados. Ao se pensar na
resoluo de um problema est-se a aumentar as possibilidades de o resolver direito. Ao se pensar
tambm se est a reconhecer que no se sabe tudo. Deste modo, a pesquisa por novas solues permite
acrescentar valor ao programa.
A aplicao de todos estes princpios requer um pensamento constante. No se pode dar mais valor aos
princpios relativamente quilo que eles valem. O desenvolvimento requer uma ponderao sobre a
importncia de cada um destes princpios no projeto em causa.

7.4. DESENVOLVIMENTO DE SOFTWARE


7.4.1. PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Um processo um conjunto de atividades, aes e tarefas que so executadas para criar algum produto.
No contexto do desenvolvimento de software, um processo no uma prescrio rgida de como
construir programas de computador. Pelo contrrio, uma abordagem flexvel que permite que as
pessoas que fazem o trabalho possam escolher o conjunto de aes adequadas ao trabalho e s tarefas
[15]. A inteno sempre de entregar o programa em tempo til e com qualidade suficiente para
satisfazer aqueles que desencadearam a sua criao e aqueles que o vo utilizar.
A estrutura do processo genrico do desenvolvimento de software abrange as seguintes atividades [15]:

Comunicao;
Planeamento;
Modelao;
Construo;
Implantao.

A comunicao em qualquer trabalho tcnico extremamente importante. A inteno compreender os


objetivos das partes interessadas para o projeto e para reunir os requisitos que ajudam a definir os
recursos do programa e as suas funes. Na fase de planeamento so descritas as tarefas tcnicas a

73

Desenvolvimento de um Programa de Elementos Finitos Verstil

realizar, os riscos que podem ocorrer, os recursos que so necessrios, os produtos a produzir e o perodo
de trabalho. Na fase de modelao, o programador faz uma criao de modelos para melhor entender os
requisitos de programa e do design pretendido. A atividade de construo combina a escrita de cdigo
e os testes que so necessrios para descobrir os erros existentes. Por fim, a implantao corresponde
entrega ao cliente do produto desenvolvido.
Estas cinco atividades genricas podem ser usadas durante o desenvolvimento de um qualquer programa,
independentemente da sua dimenso, complexidade ou especificidade. Na base de um qualquer projeto
est a gesto de projetos. Estas atividades constituem, de um modo genrico, as atividades a
pormenorizar no mbito do projeto de software.

7.4.2. PRINCPIOS FUNDAMENTAIS

O desenvolvimento de software orientado por um conjunto de princpios bsicos. Em [15] so


apresentados vrios princpios para o processo e para a prtica. Estes princpios genricos pretendem
ser orientadores e abranger a generalidade das situaes do desenvolvimento de software.
Ao nvel do processo estabelecem-se os seguintes princpios bsicos numa base filosfica que oriente a
equipa de desenvolvimento:

Seja flexvel;
Foque o trabalho na qualidade;
Esteja pronto para se adaptar;
Construa uma equipa eficaz;
Estabelea mecanismos de comunicao e coordenao;
Administre a mudana;
Avalie o risco;
Crie produtos que agreguem valor para outros.

Ao nvel da prtica estabelecem-se um conjunto de valores e regras que servem como um guia para
anlise de um problema, formulao de uma soluo, implementao, teste da soluo e, finalmente,
implantao do programa. Assim, os princpios bsicos que guiam a prtica so:

Divida os problemas nas suas componentes;


Compreenda o uso da abstrao;
Mantenha a consistncia;
Foque-se na transferncia de informaes;
Construa programas que exibam modularidade;
Procure padres;
Procure representar o problema e a soluo em diferentes perspetivas;
Lembre-se que algum vai manter o programa.

7.4.3. CONCEITOS DE PROJETO


7.4.3.1. Abstrao

Abstrair significa decompor um sistema complicado nas suas partes fundamentais e descrev-las numa
linguagem de programao de forma simples e precisa. A descrio das partes de um sistema implica
atribuir-lhes um nome e descrever as suas funcionalidades.

74

Desenvolvimento de um Programa de Elementos Finitos Verstil

O uso da abstrao ao longo do desenvolvimento talvez dos conceitos mais importantes. O


programador ao se abstrair consegue encontrar as componentes elementares que constituem o problema
a resolver. Ao se dividir um problema nas suas partes mais simples, est-se a diminuir a complexidade
de resoluo do problema. Deste modo, ao se programar as partes elementares suficiente,
posteriormente, chamar cada uma das partes elementares pela ordem com que so necessrias para
resolver o problema.
Este modo de programao com conceitos gerais e elementares propicia a reutilizao do cdigo
desenvolvido, pois, problemas diferentes tm muitas vezes aspetos comuns de resoluo. Deste modo
evita-se a duplicao de blocos ao longo do cdigo fonte do programa. Outra vantagem da abstrao
de permitir a implementao em qualquer projeto. Quanto mais abstratos forem os cdigos mais
facilmente podem ser inseridos em novos contextos.

7.4.3.2. Arquitetura

A arquitetura de software faz referncia estrutura geral do programa e s formas como essa estrutura
fornece integridade ao programa. Na sua forma mais simples, a arquitetura a estrutura ou organizao
dos componentes do programa. Num sentido mais amplo, os componentes podem ser generalizados para
representar os principais elementos do sistema e as suas interaes. Dada a especificao destas
propriedades, a arquitetura pode ser representada usando um ou mais de um nmero de modelos
diferentes. Os modelos estruturais representam a arquitetura como uma coleo organizada de
componentes do programa.

7.4.3.3. Padres

Um padro de projeto descreve uma soluo geral reutilizvel para um problema recorrente no
desenvolvimento de software. No um cdigo final mas uma descrio ou modelo de como resolver o
problema de modo a ser implementado em diferentes situaes. Os padres so usados para representar,
registar e reutilizar elementos do projeto, bem como a experincia acumulada ao longo do
desenvolvimento.
Os padres, normalmente, definem as relaes e interaes entre as classes ou objetos, sem especificar
os detalhes das classes ou objetos envolvidos, ou seja, recorrem a um nvel de abstrao elevado. Os
padres complementam as abordagens correntes e constituem uma base de experincia reutilizvel para
a fase de desenvolvimento. Os padres fornecem um conjunto de vocabulrio comum para os
programadores comunicarem, permitindo um desenvolvimento mais harmonioso. A sua implementao
permite a reutilizao de blocos de cdigo ou a distribuio de bibliotecas sem a necessidade de conhecer
o seu funcionamento aprofundadamente. So a forma de reduzir a complexidade de um sistema.
Contrariamente aos padres, os anti-padres indicam precisamente o contrrio. O foco dos anti-padres
so os erros comuns dos programadores e as falhas que levam ao fracasso do desenvolvimento. O seu
conhecimento evita a tomada de decises que futuramente comprometam a evoluo e a manuteno
dos programas.

7.4.3.4. Modularidade

Os programas so compostos por diferentes componentes que devem interagir corretamente, fazendo
com que o sistema como um todo funcione de forma adequada. Para se manter estas interaes

75

Desenvolvimento de um Programa de Elementos Finitos Verstil

necessrio que os diversos componentes estejam bem organizados. A modularidade refere-se a uma
estrutura de organizao na qual os diferentes componentes de um de programa so divididos em
unidades funcionais separadas. A estrutura imposta pela modularidade fomenta a reutilizao, isto , se
os mdulos forem escritos de uma forma abstrata para resolver problemas genricos, ento estes
mdulos podem ser reutilizados quando o mesmo problema surgir noutro contexto.

7.4.3.5. Encapsulamento

O conceito de encapsulamento estabelece que os diferentes componentes de um programa no devem


revelar detalhes internos das suas respetivas implementaes. Por ouras palavras, os mdulos devem ser
especificados e concebidos de modo a que informao contida dentro de cada um seja inacessvel para
outros mdulos que no tm necessidade de tais informaes.
O encapsulamento define e impe restries de acesso dentro de um mdulo e/ou qualquer estrutura de
dados local usada pelo mdulo. O uso de encapsulamento como um critrio de projeto para sistemas
modulares oferece grandes benefcios quando so necessrias alteraes durante o desenvolvimento e
manuteno do programa. Esta vantagem resulta do facto dos dados e detalhes processuais estarem
escondidos das outras partes do programa. Assim, erros involuntrios introduzidos durante a
modificao so menos propensos a se propagarem para outros locais dentro do programa. O
encapsulamento permite que no seja necessrio conhecer o funcionamento interno de um mdulo para
o poder implementar. Isto permite libertar o programador da necessidade de compreender integralmente
tudo o que implementa ao longo das diversas fases do desenvolvimento.

7.4.3.6. Independncia Funcional

Deve-se projetar de modo que cada mdulo aborde um subconjunto especfico de requisitos e tenha uma
interface simples quando visto a partir de outras partes da estrutura do programa. Software com
modularidade eficaz, ou seja, mdulos independentes, mais fcil de desenvolver. Mdulos
independentes so tambm mais fceis de manter porque os efeitos secundrios causados pela conceo
ou modificao do cdigo esto limitados, logo, a propagao de erros reduzida e os mdulos so mais
facilmente reutilizveis.

7.4.3.7. Refinamento

O refinamento passo a passo uma estratgia de projeto top-down. Na prtica, comea-se com uma
declarao de uma funo que definida num alto nvel de abstrao, ou seja, a funo descrita
conceptualmente mas sem nenhuma informao sobre o seu funcionamento interno. Posteriormente, a
declarao original reescrita proporcionando mais e mais detalhes. A abstrao e o refinamento so
conceitos complementares. A abstrao permite a especificao de procedimentos e de dados
internamente suprimindo a necessidade de ter conhecimento dos detalhes de baixo nvel. O refinamento
ajuda a revelar detalhes de baixo nvel com a evoluo do projeto.

7.4.3.8. Refatorao

A refatorao uma tcnica de reorganizao que simplifica o projeto de um componente sem alterar a
sua funo ou comportamento. Quando o software reformulado, o projeto existente examinado
quanto redundncia, elementos no utilizados, algoritmos ineficientes ou desnecessrios, mal

76

Desenvolvimento de um Programa de Elementos Finitos Verstil

construdos ou estruturas de dados inadequadas, ou qualquer outra falha corrigida para produzir um
projeto melhor. O uso desta tcnica aprimora a conceo de um software e evita a deteriorao durante
o ciclo de vida de um cdigo. Esta deteriorao geralmente causada por mudanas com objetivos de
curto prazo ou por alteraes realizadas sem a clara compreenso da conceo do sistema.

7.4.3.9. Projeto Orientado a Objetos

No paradigma de programao orientada a objetos, a construo de um programa para implementao


de um determinado sistema baseia-se numa correspondncia natural e intuitiva entre esse sistema e a
simulao do comportamento do mesmo. A programao orientada a objetos foi criada com o objetivo
de aproximar o mundo real ao mundo virtual. A ideia fundamental tentar simular o mundo real dentro
do computador. Assim, a cada entidade do sistema corresponde, durante a execuo do programa, um
objeto, com atributos e aes prprias que definem o modo de funcionamento desse programa.

7.4.3.10. Projeto de Classes

A maioria das linguagens de programao orientadas a objetos usa o conceito de classe para descrio
de grupos de objetos semelhantes. Uma classe o projeto do objeto. A classe representa o tipo de objeto
que construdo a partir dela. Estes objetos so compostos por atributos e aes. Uma classe formada,
essencialmente, por construtores de objetos dessa classe, variveis e mtodos. A criao de um objeto
dessa classe consiste na criao de cada uma das variveis do objeto, especificadas na classe. Os valores
armazenados nessas variveis determinam o estado do objeto, isto , os seus atributos. Os objetos podem
trocar mensagens entre si, sendo uma mensagem basicamente uma chamada a um mtodo especfico de
um objeto, que realiza uma determinada operao. A execuo de um mtodo do objeto pode modificar
o estado desse objeto e/ou retornar um resultado.

7.4.4. AMBIENTES DE DESENVOLVIMENTO

Um ambiente de desenvolvimento ou programao o conjunto de ferramentas usadas no


desenvolvimento de programas. Esse conjunto pode consistir num sistema de ficheiros, editor de texto,
ligador e um compilador. Pode, tambm, incluir uma coleo de ferramentas integradas, cada uma das
quais acessvel por meio de uma interface grfica. A utilizao de ambientes que disponibilizem uma
interface grfica de desenvolvimento com uma coleo de ferramentas so preferenciais na medida que
melhoram significativamente o processo de desenvolvimento. Existem para a generalidade das
linguagens de programao ambientes de desenvolvimento que facilitam ou geram o cdigo para muitas
das tarefas rotineiras associadas ao processo de desenvolvimento. Hoje em dia, uma das tarefas
importantes no incio da construo de um programa informtico consiste na escolha do ambiente de
programao. Uma escolha acertada vai impulsionar significativamente a sua codificao.

7.5. INTERFACE GRFICA DO UTILIZADOR


Uma interface a fronteira que define a forma de comunicao entre duas entidades. Pode ser entendida
como uma abstrao que estabelece a forma de interao entre uma mquina e o mundo exterior. Sendo
o foco de um programa os utilizadores, deve-se procurar que os programas disponibilizem um meio que
facilite a comunicao entre o utilizador e o computador. As interfaces grficas so o meio disponvel
para a comunicao entre as duas partes.

77

Desenvolvimento de um Programa de Elementos Finitos Verstil

No desenvolvimento de software deve-se, desde o incio, definir o modo como se vai estabelecer a
comunicao entre o utilizador e o computador. A interface grfica no se pode comportar como um
elemento neutro mas de um modo que os utilizadores possam interagir com ela. A interface grfica deve
ser desenvolvida a pensar no utilizador e implementar metodologias que facilitem a utilizao do
programa. Uma interface deve cumprir com um conjunto de requisitos prprios que se distinguem dos
demais componentes constituintes de um programa. Estes requisitos centram-se na comunicabilidade,
acessibilidade, usabilidade e aplicabilidade.
No desenvolvimento de uma interface grfica deve-se procurar identificar padres com os quais os
futuros utilizadores estejam familiarizados. O uso de elementos ou representaes que no sejam do
conhecimento geral devem ser evitados. Interfaces pouco organizadas ou com excesso de informao
tornam-se confusas e pouco prticas. As interfaces devem ser limpas e claras. Todos os elementos que
no sejam essenciais devem estar ocultos e s devem ser mostrados nos momentos adequados. Como os
programas so desenvolvidos com o intuito de realizaram uma dada operao ou apresentarem
informaes, estas reas devem estar destacadas e sem elementos perturbadores.
O desenvolvimento de uma interface grfica uma tarefa criativa. No fcil definir critrios objetivos
para avaliar uma interface grfica. Contudo, as interfaces grficas mal construdas fazem com que os
utilizadores se deparem, por exemplo, com menus excessivamente complexos, terminologia
incompreensvel e caminhos de navegao caticos. Uma forma de trazer qualidade e eficcia a um
programa com aumento da utilizao efetiva, menor curva de aprendizagem e menor resistncia,
consiste em melhorar os processos de construo de interfaces grficas do utilizador.

78

Desenvolvimento de um Programa de Elementos Finitos Verstil

8
IMPLEMENTAO
COMPUTACIONAL

8.1. FOCO E FUNCIONALIDADES DO PROGRAMA


O desenvolvimento de uma ferramenta informtica comea pela definio do seu alvo e funcionalidades
a construir. Existem diversas ferramentas comerciais que possibilitam a anlise estrutural com recurso
a elementos finitos. Contudo, estas ferramentas esto focadas na prtica profissional da engenharia, no
disponibilizando ferramentas que permitam aos estudantes ter uma noo adequada sobre a modelao
e anlise estrutural com elementos finitos. De modo a fornecer essa experincia aos alunos de um curso
sobre elementos finitos, era necessrio o desenvolvimento de uma ferramenta informtica com essas
capacidades.
No mbito desta dissertao foi desenvolvido um programa com a finalidade de colmatar a falta de
ferramentas informticas voltadas para o ensino do Mtodo dos Elementos Finitos. Assim, o programa
desenvolvido abrange a generalidade dos problemas estruturais encontrados na prtica da engenharia e
que so alvo de estudo em qualquer curso universitrio de Engenharia Civil. Das diversas formulaes
e tipos de elementos finitos disponveis foram focados os elementos finitos unidimensionais,
bidimensionais, tridimensionais, de viga e de laje.
Alm da possibilidade de testar diversas formulaes, a ferramenta permite intervir ao nvel das malhas
e do nmero de ns dos elementos finitos. O programa disponibiliza flexibilidade suficiente aos seus
utilizadores de modo a que estes possam realizar um conjunto de alteraes sobre o modelo em estudo
e visualizar os seus resultados da forma rpida e simples. Uma outra necessidade consistia em fornecer
uma soluo que pudesse ser utilizada em diferentes plataformas informticas. Deste modo, ao se utilizar
a linguagem de programao Java assegura-se a possibilidade de distribuio pelos diferentes
dispositivos informticos utilizados pelos estudantes. Por fim, o programa tambm oferece suporte para
a persistncia de dados, isto , o programa permite que os utilizadores guardem e recuperem os projetos
que criaram.

8.2. PROGRAMAO EM JAVA


O programa construdo no mbito desta dissertao foi escrito na linguagem de programao Java e com
recurso ao ambiente de desenvolvimento integrado NetBeans IDE 8.0 [24].
A escolha da linguagem de programao recaiu sobre a linguagem de programao Java de modo a
possibilitar que o programa funcionasse em diferentes plataformas informticas. A linguagem de
programao Java uma linguagem de programao orientada a objetos cujo desenvolvimento comeou

79

Desenvolvimento de um Programa de Elementos Finitos Verstil

na dcada de 90 na empresa Sun Microsystems. A linguagem Java compilada para um bytecode que
executado por uma mquina virtual denominada Java Virtual Machine.
Para um programa codificado em Java executar necessrio definir o primeiro mtodo a ser chamado
quando o programa for inicializado. Este mtodo precisa de ser pblico, esttico, sem retorno e receber
um vetor de strings como argumento. Cada projeto tem somente um mtodo main() cuja estrutura
apresentada no cdigo abaixo.
/**
* @param args so os argumentos da linha de comandos
*/
public static void main(String[] args) {}

Como o mtodo main() o primeiro a ser chamado, logo, a partir dele que todo o encadeamento lgico
se desencadeia. Assim, neste mtodo devem estar definidas as instrues que iniciem o funcionamento
do programa. Como os mtodos so os mecanismos que desencadeiam aes dentro de uma classe
necessrio definir o mtodo main() dentro de uma classe. O cdigo abaixo mostra a implementao do
mtodo main() dentro da classe FEMforStudents.
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
/**
*
* @author Andr de Sousa
*/
public class FEMforStudents {
/**
* @param args so os argumentos da linha de comandos
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException |
UnsupportedLookAndFeelException ex) {
Logger.getLogger(UserInterface.class.getName()).log(Level.SEVERE, null, ex);
}
new UserInterface().setVisible(true);
}
}

O cdigo inserido dentro do mtodo main() executa duas tarefas distintas. A primeira consiste em
importar o tema da interface grfica de utilizador do sistema operativo para alguns dos componentes
grficos da interface grfica do programa. A segunda tarefa consiste em criar um objeto da classe
UserInterface e passar o parmetro de visibilidade. A classe UserInterface responsvel, entre muitas
tarefas, por criar a janela do programa.
O cdigo fonte Java deve ser colocado em arquivos com a extenso .java. O prximo passo compilar
o cdigo fonte para gerar um executvel que possa ser processado pela mquina virtual do Java. O
compilador padro da plataforma Java pode ser utilizado para compilar os ficheiros do projeto do
programa. O programa de desenvolvimento utilizado tambm permite realizar a compilao do projeto.

80

Desenvolvimento de um Programa de Elementos Finitos Verstil

8.3. MTODO DOS ELEMENTOS FINITOS


8.3.1. CRIAO DOS ELEMENTOS FINITOS

A programao do Mtodo dos Elementos Finitos consistiu na criao de um conjunto de classes que
fornecessem todas as propriedades e elementos necessrios a uma anlise por elementos finitos. Deste
modo, a implementao do mtodo consistiu, em geral, pela criao do pacote finiteelement e da classe
FiniteElement dentro do pacote calculations.
O pacote finiteelement constitudo por duas dezenas de classes das quais se destacam as classes
MatrixB, MatrixD, MatrixJ, MatrixK e VectorF. A classe FiniteElement permite criar qualquer tipo de
elemento finito necessitando somente de receber a informao que descreva o elemento finito a ser
construdo. Construdo o elemento finito, a classe disponibiliza vrios mtodos que permitem obter, por
exemplo, a matriz de rigidez do elemento finito e o vetor de foras nodais equivalentes. A importncia
da classe FiniteElement no se resume criao dos elementos finitos. Toda a informao associada a
cada elemento finito disponibilizada por esta classe. A implementao desta classe no projeto consiste
em criar uma lista de elementos finitos. Esta lista definida atravs de um objeto da classe ArrayList
que permite armazenar os elementos finitos criados.
As listas so um tipo de coleo que a linguagem de programao Java suporta e a criao do objeto
para armazenar os elementos finitos feita da seguinte forma.
ArrayList<FiniteElement> listOfFiniteElements = new ArrayList();

Este objeto que armazena os elementos finitos do modelo construdo pelo utilizador designado por
listOfFiniteElements. A classe FiniteElement composta por dezenas de variveis e mtodos na maioria
de mbito privado. Os mtodos pblicos so utilizados para definir atributos, desencadear aes internas
ou obter os elementos necessrios, por exemplo, construo do sistema de equaes globais.
Para se criar um objeto necessrio chamar o mtodo construtor desse objeto que se encontra definido
dentro da classe do objeto. O mtodo construtor sempre criado para uma classe, mesmo que no seja
explicitamente definido. Neste caso, o mtodo construtor um mtodo pblico com o nome da classe,
sem retorno e que no recebe parmetros.
/**
*
* @author Andr de Sousa
*/
public class FiniteElement {
/**
* Mtodo construtor da classe FiniteElement
*/
public FiniteElement(int ID, String shape, String type, String theory, int degreeOfFreedom,
double[][] coordinates) {
this.ID = ID;
this.shape = shape;
this.type = type;
this.theory = theory;
this.degreeOfFreedom = degreeOfFreedom;
this.shapeCoordinates = coordinates;
}
}

O mtodo construtor da classe FiniteElement recebe alguns parmetros que permitem que a partir do
momento da criao do elemento finito, as variveis que armazenam a informao relativa ao seu tipo,

81

Desenvolvimento de um Programa de Elementos Finitos Verstil

geometria ou s suas coordenadas fiquem automaticamente definidas. Deste modo, todas as aes
desencadeadas posteriormente j tm em conta o tipo de elemento finito criado o que assegura que
aquando da chamada dos seus mtodos as aes desencadeadas tenham em conta as propriedades desse
elemento finito. De preferncia, estes atributos no devem estar acessveis publicamente de modo a
impedir eventuais alteraes realizadas externamente.
Os parmetros recebidos pelo mtodo construtor da classe FiniteElement no permitem definir por
completo o elemento finito de modo a se calcular, por exemplo, a matriz de rigidez elementar. Assim,
necessrio definir o nmero de ns do elemento finito, a seco e o material. Para o efeito, existem na
classe os mtodos apresentados abaixo.
/**
* Mtodo para atribuir o nmero de ns ao elemento finito
*/
public void setNumberOfNodes(int nodes) {
this.nodes = nodes;
this.nodesCoordinates = nodesCoordinates(shapeCoordinates, nodes);
}
/**
* Mtodo para atribuir a seco ao elemento finito
*/
public void setSection(double inertia, double area, double thickness) {
this.inertia = inertia;
this.area = area;
this.thickness = thickness;
}
/**
* Mtodo para atribuir o material ao elemento finito
*/
public void setMaterial(String material, double elasticity, double shear, double poisson) {
this.material = material;
this.elasticity = elasticity;
this.shear = shear;
this.poisson = poisson;
}

O mtodo que define o nmero de ns do elemento finito tambm atribui as coordenadas nodais pela
chamada do mtodo nodesCoordinates() que recebe como parmetros as coordenadas da forma
geomtrica do elemento finito e o nmero de ns. Os outros dois mtodos pblicos e sem retorno
limitam-se a atribuir o valor recebido s variveis da classe FiniteElement. A classe possui ainda outros
mtodos para atribuio de informaes de entre os quais se destaca o mtodo setLoads() para atribuio
das cargas aplicadas no elemento finito.
Os mtodos anteriormente apresentados e outros que a classe possui necessrios definio dos atributos
dos elementos finitos, no geral, limitam-se a atribuir s variveis das classes um determinado valor
recebido por parmetro pelo que no realizam clculos. Esta caracterstica comum a todo o projeto e
tem como objetivo separar a lgica de clculo da lgica de comunicao entre os diferentes objetos.
Deste modo garante-se uma maior estabilidade no funcionamento dos mtodos pblicos.
Aps a criao dos elementos finitos pode-se chamar os mtodos para obter, por exemplo, a matriz de
rigidez ou o vetor de foras nodais equivalentes. Estes mtodos, que abaixo se apresentam, esto
definidos como pblicos e no recebem parmetros. No geral, o funcionamento destes mtodos

82

Desenvolvimento de um Programa de Elementos Finitos Verstil

assegurado por outros mtodos que esto definidos na classe como privados e calculam os elementos
que estes dois retornam.
/**
* Mtodo que retorna a matriz de rigidez elementar do elemento finito
*/
public double[][] getStiffnessMatrix() {
double[][] stiffnessMatrix;
if ("Gauss-Legendre".equals(quadrature) || "Gauss-Lobatto".equals(quadrature)) {
stiffnessMatrix = numericalIntegration();
} else {
MatrixK matrixK = new MatrixK(elasticity, shear, poisson, inertia, area, thickness, type);
stiffnessMatrix = matrixK.getStiffnessMatrix(L, a, b, c, nodes, theory);
}
return stiffnessMatrix;
}
/**
* Mtodo que retorna o vetor de foras nodais equivalentes do elemento finito
*/
public double[][] getLoadVector() {
return loadVector;
}

O mtodo getStiffnessMatrix() retorna a matriz de rigidez do elemento finito que pode ser calculada de
duas maneiras. A primeira possibilidade corresponde necessidade ou exigncia de se utilizar
integrao numrica para o clculo da matriz de rigidez. No caso geral, a matriz de rigidez do elemento
finito obtida atravs da criao de um objeto da classe MatrixK. Criado este objeto, apenas necessrio
chamar o mtodo getStiffnessMatrix() para obter a matriz de rigidez. No caso do vetor de foras nodais
equivalentes, este definido no momento de atribuio das cargas aplicadas no elemento finito. Se no
forem atribudas cargas, o mtodo retorna um vetor de zeros cuja dimenso depende do nmero de ns
e dos graus de liberdade por n do elemento finito.
A classe MatrixK permite obter a matriz de rigidez elementar para todos os tipos e teorias de elementos
finitos com geometria regular. Os elementos finitos distorcidos so calculados com recurso a
substituio de varivel e integrao numrica atravs da seleo de uma das duas quadraturas
disponveis. Para um elemento finito regular, o clculo da matriz de rigidez elementar passa somente
pela criao dentro da classe FiniteElement de um objeto da classe MatrixK. Assim, toda a lgica
necessria ao clculo da matriz de rigidez elementar fica escondida dentro da classe MatrixK. Esta
caracterstica evidencia-se em todas as classes do pacote finiteelement. Deste modo, as outras partes do
programa no necessitam do conhecimento do funcionamento destas classes. Esta caracterstica, alm
de simplificar a codificao, fomenta a reutilizao das classes, melhora a manuteno e a expanso do
cdigo e reduz a propagao de erros.
Para os elementos finitos com geometria regular, a matriz de rigidez elementar foi deduzida num formato
adimensional de modo a receber os parmetros necessrios ao seu clculo sem a necessidade de se
especificar qualquer tipo de unidades. O funcionamento da classe MatrixK consiste em fornecer a matriz
de rigidez para o tipo de elemento finito criado. Para isso, a estrutura organizacional da classe chama o
mtodo interno que calcula a matriz de rigidez requerida. De modo a exemplificar o que a classe MatrixK
executa internamente apresenta-se o seguinte mtodo esttico, definido dentro da classe MatrixK_1D,
que permite calcular a matriz de rigidez de um elemento finito unidimensional.

83

Desenvolvimento de um Programa de Elementos Finitos Verstil

/**
* Mtodo para calcular a matriz de rigidez de um elemento finito
*/
public static double[][] matrixK_1D(double L, int nodes) {
double[][] matrixK;
if (nodes == 2) {
matrixK = new double[2][2];
matrixK[0][0] = 1 / L;
matrixK[0][1] = -1 / L;
matrixK[1][0] = -1 / L;
matrixK[1][1] = 1 / L;
} else {
matrixK = null;
}
return matrixK;
}

A matriz fornecida pelo mtodo anterior deve posteriormente ser multiplicada pelo mdulo de
elasticidade e pela rea da seco transversal do elemento finito antes de ser retornada pelo mtodo
getStiffnessMatrix() da classe MatrixK. A estrutura adotada para o clculo da matriz de rigidez do
elemento finito semelhante para os outros tipos de elementos finitos e elementos finitos do mesmo
tipo com diferente nmero de ns. A nica tarefa lgica que executada dentro da classe MatrixK
corresponde chamada do mtodo especfico para calcular a matriz de rigidez elementar para o elemento
finito requisitado. Essa informao obtida logo no momento da chamada do mtodo construtor da
classe e completada pelos parmetros do mtodo getStiffnessMatrix().
O clculo do vetor de foras nodais equivalentes tambm feito com recurso a uma estrutura anloga
apresentada para a matriz de rigidez elementar. Para o caso unidimensional, o vetor de foras nodais
equivalentes calculado pelo mtodo seguinte.
/**
* Mtodo para calcular o vetor de foras nodais equivalentes
*/
public static double[][] vectorF_1D(double L, int nodes) {
double[][] vectorF;
if (nodes == 2) {
vectorF = new double[2][1];
vectorF[0][0] = L / 2;
vectorF[1][0] = L / 2;
} else {
vectorF = null;
}
return vectorF;
}

O vetor fornecido pelo mtodo anterior deve posteriormente ser multiplicado pelo valor da carga
distribuda ao longo do elemento finito. Para a obteno do vetor de foras nodais equivalentes
necessrio criar dentro da classe FiniteElement um objeto da classe VectorF e, posteriormente, chamar
o mtodo getLoadVector().
Nas situaes em que a matriz de rigidez calculada com recurso a integrao numrica, a classe
FiniteElement possui um mtodo privado que desencadeia o seu clculo. Este mtodo, consoante o tipo

84

Desenvolvimento de um Programa de Elementos Finitos Verstil

de elemento finito, chama o mtodo especfico para calcular a matriz de rigidez elementar. O mtodo
seguinte calcula a matriz de rigidez de um elemento finito bidimensional com substituio de varivel e
recorrendo a integrao numrica.
/**
* Mtodo para calcular a matriz de rigidez elementar
*/
private double[][] stiffnessMatrix_2D() {
double[][] globalStiffnessMatrix = new double[nodes * dof][nodes * dof];
double[] dimensions = {2.0, 2.0, 2.0, 2.0};
double[][] matrixD = matrixD_2D(elasticity, poisson);
double[][] weightsAndCoordinates = getWeightsAndCoordinates(2.0, 2.0, 2.0, 2.0);
//Ciclo para todos os pontos de integrao da matriz de rigidez
int n = 0;
while (n < points) {
double[][] matrixJ, inverseJ, derivedMatrix, derivedMatrixB, matrixB, matrixK;
double[] pointsCoordinates = weightsAndCoordinates[n];
//Clculo da matriz jacobiana e da sua inversa no ponto de integrao (r, s)
MatrixJ jacobianMatrix = new MatrixJ(type, nodesCoordinates, pointsCoordinates);
matrixJ = jacobianMatrix.getJacobianMatrix(nodes);
inverseJ = inverse(matrixJ);
//Clculo da matriz das derivadas das funes de forma
derivedMatrix = derivedMatrix(type, pointsCoordinates, dimensions, nodes);
derivedMatrixB = multiply(derivedMatrix, inverseJ);
matrixB = matrixB(type, derivedMatrixB, nodes);
double weightX = weightsAndCoordinates[n][0];
double weightY = weightsAndCoordinates[n][2];
double determinantJ = determinant(matrixJ);
//Clculo de uma matriz de rigidez avaliada no ponto de integrao
matrixK = multiply(multiply(transpose(matrixB), matrixD), matrixB);
matrixK = multiply((weightX * weightY) * determinantJ, matrixK);
//Clculo da matriz de rigidez do elemento finito
globalStiffnessMatrix = sum(globalStiffnessMatrix, matrixK);
n++;
}
globalStiffnessMatrix = multiply(thickness, globalStiffnessMatrix);
return globalStiffnessMatrix;
}

A utilizao do mtodo stiffnessMatrix_2D() necessita que a sua classe fornea as variveis e os


mtodos que so exigidos durante o seu funcionamento. De um modo geral, o mtodo
stiffnessMatrix_2D() comea por inicializar a matriz de rigidez do elemento finito com zeros. As
dimenses da matriz de rigidez elementar so definidas pela multiplicao do nmero de ns pelo
nmero de graus de liberdade por n.
Com as dimenses do elemento finito isoparamtrico, a matriz de elasticidade bidimensional, os pesos
e as coordenadas dos pontos de integrao est-se em condies de entrar no ciclo e calcular as
sucessivas matrizes de rigidez auxiliares, avaliadas no respetivo ponto de integrao, que vo sendo

85

Desenvolvimento de um Programa de Elementos Finitos Verstil

somadas matriz de rigidez elementar inicialmente nula. No final do ciclo e aps a multiplicao da
matriz obtida pela espessura chega-se a matriz de rigidez elementar do elemento finito.
Como j anteriormente referido, o mtodo stiffnessMatrix_2D() necessita de vrios parmetros e
mtodos para o seu funcionamento. Alguns desses parmetros so, por exemplo, a matriz de elasticidade
e a matriz jacobiana. A matriz de elasticidade importada da classe MatrixD que contm vrios mtodos
que retornam a matriz de elasticidade para cada tipo de elemento finito.
/**
* Mtodo que retorna a matriz de elasticidade para um estado plano de tenso
*/
public static double[][] matrixD_2D(double E, double v) {
double a = E / (1.0 - (v * v));
double b = (E * v) / (1.0 - (v * v));
double c = E / (2.0 * (1.0 + v));
return new double[][] {{a, b, 0.0}, {b, a, 0.0}, {0.0, 0.0, c}};
}

Os pesos e as coordenadas dos pontos de integrao variam consoante a quadratura, o nmero de pontos
utilizados e o nmero de dimenses. Para um elemento finito bidimensional quadriltero, os pesos e as
coordenadas pela quadratura de Gauss-Legendre so obtidas pelo seguinte mtodo esttico.
/**
* Mtodo que retorna uma matriz com os pesos e respetivas coordenadas
*/
public static double[][] weightsCoordinates_2D(double a, double b, int points) {
double[][] matrixWC;
double weightX = a / 2.0;
double weightY = b / 2.0;
double pointX = a / 2.0;
double pointY = b / 2.0;
if (points == 1) {
matrixWC = new double[1][4];
matrixWC[0][0] = weightX * 2.0;
matrixWC[0][1] = pointX * 0.0;
matrixWC[0][2] = weightY * 2.0;
matrixWC[0][3] = pointY * 0.0;
} else {
matrixWC = null;
}
return matrixWC;
}

Por convenincia, so apenas mostrados os pesos e as coordenadas para um ponto de integrao no


elemento finito. Este mtodo recebe como parmetros as dimenses do elemento finito bidimensional e
o nmero de pontos que se pretende utilizar.
Para o clculo da matriz de rigidez elementar avaliada num dado ponto necessrio definir a matriz
jacobiana, calcular a sua inversa e o seu determinante. No clculo da matriz jacobiana necessrio
avaliar as funes de forma nos pontos obtidos pelo mtodo anterior. De modo a ser possvel calcular a
matriz de rigidez avaliada nestes pontos necessrio obter as derivadas das funes de forma que
compem a matriz de deformao em funo de r e s. O seguinte mtodo fornece uma matriz com as

86

Desenvolvimento de um Programa de Elementos Finitos Verstil

derivadas das funes de forma do elemento finito avaliadas num dado ponto de integrao necessria
para o clculo dos termos da matriz de deformao.
/**
* Mtodo que retorna as derivadas das funes de forma
*/
public static double[][] derivedMatrix_2D(double r, double s, double a, double b, int nodes) {
double[][]derivedMatrix;
if (nodes == 4) {
derivedMatrix = new double[4][2];
derivedMatrix[0][0] = -1.0 / (2.0 * a) + s / (a * b);
derivedMatrix[0][1] = -1.0 / (2.0 * b) + r / (a * b);
derivedMatrix[1][0] = 1.0 / (2.0 * a) - s / (a * b);
derivedMatrix[1][1] = -1.0 / (2.0 * b) - r / (a * b);
derivedMatrix[2][0] = 1.0 / (2.0 * a) + s / (a * b);
derivedMatrix[2][1] = 1.0 / (2.0 * b) + r / (a * b);
derivedMatrix[3][0] = -1.0 / (2.0 * a) - s / (a * b);
derivedMatrix[3][1] = 1.0 / (2.0 * b) - r / (a * b);
} else {
derivedMatrix = null;
}
return derivedMatrix;
}

Para obter os termos da matriz de deformao usada no produto matricial do clculo da matriz de rigidez
elementar avaliada em cada um dos pontos selecionados necessrio multiplicar a matriz fornecida pelo
mtodo esttico derivedMatrix_2D() com a inversa da matriz jacobiana. Como apresentado no mtodo
stiffnessMatrix_2D(), a matriz de rigidez avaliada em cada um dos pontos selecionados obtida pelo
produto matricial entre as matrizes de deformao e a matriz de elasticidade. Aps a multiplicao pelo
determinante da matriz jacobiana e pelos pesos de integrao, esta matriz de rigidez avaliada nos pontos
de integrao somada matriz de rigidez definida no incio do mtodo que aps o fim do ciclo e
multiplicada pela espessura corresponde matriz de rigidez elementar do elemento finito.

8.3.2. ASSEMBLAGEM E RESOLUO DO SISTEMA DE EQUAES

A classe FiniteElement contm as instrues para construir cada elemento finito. Assim, necessrio
que, num dado momento e local, os elementos finitos sejam construdos. Para esse efeito foi criada uma
classe designada por Processor.
Esta classe responsvel por construir todos os elementos finitos necessrios para caracterizao da
malha de elementos finitos, fazer a assemblagem das suas contribuies no sistema global de equaes
e resolver esse mesmo sistema. Este modelo organizacional permite que sempre que se pretenda analisar
uma nova estrutura seja apenas necessrio criar um novo objeto da classe Processor. Deste modo,
resolvido o sistema de equaes, basta apenas obter a lista de elementos finitos construda pelos mtodos
desta classe para se ter acesso a todos os resultados ao nvel de cada elemento finito. Esta classe tambm
disponibiliza para apresentao na interface grfica do utilizador o sistema global de equaes.
Para a construo dos elementos finitos, a classe Processor tem de receber as informaes relativas ao
tipo de problema em anlise, geometria e ao material dos elementos finitos. Necessita tambm de
receber as cargas aplicadas na estrutura, isto , nos elementos finitos e nos ns da malha de elementos
finitos, e os apoios estruturais. De modo a assegurar a integridade da classe, o mtodo construtor recebe

87

Desenvolvimento de um Programa de Elementos Finitos Verstil

dois parmetros necessrios definio do tipo de problema para a construo dos elementos finitos e
resoluo do sistema global de equaes.
/**
*
* @author Andr de Sousa
*/
public class Processor {
public ArrayList<FiniteElement> listOfFiniteElements;
/**
* Mtodo construtor da classe Processor
*/
public Processor(String type, String theory) {
this.type = type;
this.theory = theory;
listOfFiniteElements = new ArrayList();
}
}

Para receber todos os atributos necessrios ao clculo da estrutura, a classe Processor possui mtodos
especficos para receber estas informaes. Alguns destes mtodos so apresentados abaixo e consistem
na atribuio dos valores recebidos por parmetro s variveis definidas na classe.
/**
* Mtodo para atribuir as figuras geomtricas desenhadas
*/
public void setDrawnFigures(ArrayList<DrawLine> arrayListLines, ArrayList<DrawPolygon>
arrayListPolygons) {
this.arrayListLines = arrayListLines;
this.arrayListPolygons = arrayListPolygons;
}
/**
* Mtodo para atribuir os apoios estruturais
*/
public void setDrawnSupports(ArrayList<DrawSupports> arrayListSupports) {
this.arrayListSupports = arrayListSupports;
}
/**
* Mtodo para atribuir as diferentes cargas estruturais
*/
public void setDrawnLoads(ArrayList<DrawLoads> arrayListLoads) {
this.arrayListLoads = arrayListLoads;
}

Importa referir que a ordem para a criao de um objeto da classe Processor parte do utilizador que
pressiona um boto na interface grfica do programa que aciona o clculo da estrutura. Assim, na lgica
desse boto esto somente as instrues para criar um novo objeto desta classe sempre que seja
pressionado. Esta implementao permite libertar as reas de tratamento dos eventos que ocorrem na
interface grfica do programa da parte lgica usada na anlise estrutural pelo Mtodo dos Elementos
Finitos. Logo, os mtodos criados para o tratamento desses eventos esto apenas focados no
desencadeamento das operaes e no na sua realizao.

88

Desenvolvimento de um Programa de Elementos Finitos Verstil

A primeira tarefa especificada na classe Processor aps receber toda a informao necessria para o seu
funcionamento interno consiste em construir a lista de elementos finitos. A informao necessria para
construir os elementos finitos j foi evidenciada aquando da apresentao da classe FiniteElement. Para
atribuir as cargas aplicadas em cada elemento finito, a classe possui um mtodo que ao percorrer a lista
das cargas estruturais faz a atribuio ao respetivo elemento finito. Note-se que para realizar esta
operao necessrio conhecer as coordenadas dos elementos finitos e dos locais na malha onde as
cargas estruturais esto aplicadas.
Para construir o sistema de equaes globais da estrutura necessrio obter de cada elemento finito as
suas contribuies e distribu-las no sistema de equaes globais de acordo com a informao da matriz
de assemblagem individual. Esta operao realizada dentro do mtodo assembly() que apresentado
abaixo.
/**
* Este mtodo realiza a operao de assemblagem
*/
private void assembly() {
for (FiniteElement finiteElement : listOfFiniteElements) {
double[][] vectorF = finiteElement.getLoadVector();
double[][] matrixK = finiteElement.getStiffnessMatrix();
int[][] assemblyMatrix = finiteElement.getAssemblyMatrix();
int length = assemblyMatrix.length;
for (int i = 0; i < length; i++) {
int column = assemblyMatrix[i][1] - 1;
//Prenchimento da matriz de rigidez global
for (int j = 0; j < length; j++) {
int line = assemblyMatrix[j][1] - 1;
stiffnessMatrix[line][column] = stiffnessMatrix[line][column] + matrixK[j][i];
}
//Preenchimento do vetor de solicitao global
int line = assemblyMatrix[i][1] - 1;
loadVector[line][0] = loadVector[line][0] + vectorF[i][0];
}
}
}

Salienta-se o facto da matriz de assemblagem ter sido previamente construda a partir da relao
existente entre os ns dos elementos finitos e os ns da malha de elementos finitos. Construdo o sistema
de equaes globais e introduzidas as condies de fronteira esto reunidas as condies para resolver
o sistema de equaes globais. Do mesmo modo que foram atribudas as cargas aplicadas sobre os
elementos finitos e consideradas as cargas concentradas aplicadas nos ns da malha de elementos finitos,
para considerar os apoios estruturais necessrio comparar as coordenadas dos ns com as coordenadas
dos apoios estruturais. Esta operao permite saber em que ns da malha de elementos finitos esto
aplicados os apoios da estrutura.
Para realizar todas as operaes matriciais necessrias implementao computacional do Mtodo dos
Elementos Finitos foi criado um pacote com um conjunto de classes para disponibilizar os mtodos
necessrios realizao destas operaes algbricas. Este pacote foi designado por matrices e contm
as classes Determinant, Inverse, Multiply, Subtract, Sum e Transpose. Para exemplificar o tipo de

89

Desenvolvimento de um Programa de Elementos Finitos Verstil

mtodos que estas classes disponibilizam, o mtodo sum() da classe Sum realiza a operao de soma de
duas matrizes recebidas por parmetro.
/**
* Mtodo para realizar a operao de soma de duas matrizes
*/
public static double[][] sum(double[][] matrixA, double[][] matrixB) {
double[][] sumMatrix;
int linesA = matrixA.length;
int columnsA = matrixA[0].length;
int linesB = matrixB.length;
int columnsB = matrixB[0].length;
if (linesA == linesB && columnsA == columnsB) {
sumMatrix = new double[linesA][columnsA];
for (int i = 0; i < linesA; i++) {
for (int j = 0; j < columnsA; j++) {
sumMatrix[i][j] = matrixA[i][j] + matrixB[i][j];
}
}
} else {
sumMatrix = null;
}
return sumMatrix;
}

Aps a resoluo do sistema de equaes so atribudos aos ns dos elementos finitos o valor do seu
deslocamento de acordo com a relao que estes possuem com os ns da malha de elementos finitos.

8.3.3. EXTENSES, TENSES E ESFOROS INTERNOS

Resolvido o sistema de equaes e atribudos os valores dos deslocamentos nodais aos ns dos
elementos finitos est-se em condies de obter todos os resultados de uma anlise por elementos finitos
ao nvel de cada elemento finito.
As tenses nos elementos finitos podem ser obtidas atravs da relao entre tenses e deformaes. O
seguinte mtodo, pertencente classe FiniteElement, permite obter o valor das tenses nodais do
elemento finito. Este mtodo para retornar o valor das tenses nodais necessita de criar um objeto da
classe NodalResults.
/**
* Mtodo qua retorna a lista de tenses nodais do elemento finito
*/
public ArrayList<double[][]> getNodalStresses() {
NodalResults nodalResults = new NodalResults(type, theory, shape, nodes);
nodalResults.setMaterial(elasticity, shear, poisson);
nodalResults.setSection(inertia, area, thickness);
ArrayList<double[][]> nodalStresses = nodalResults.getNodalStresses(L, a, b, c,
displacementVector);
return nodalStresses;
}

90

Desenvolvimento de um Programa de Elementos Finitos Verstil

Como demostrado no Captulo 3, para se conhecer as tenses num dado ponto do elemento finito
necessrio avaliar a matriz de deformao nesse ponto. Normalmente, os pontos que fornecem melhores
resultados coincidem com os utilizados na quadratura de Gauss-Legendre. Para se obter a matriz de
deformao, a classe NodalResults necessita de criar um objeto da classe MatrixB. O mtodo
getMatrixB() exemplifica o modo como este fornece a matriz correta para o tipo de elemento finito
considerado.
/**
* Mtodo para obter a matriz B de um elemento finito
*/
public double[][] getMatrixB(double x, double y, double z, int nodes, String theory) {
double[][] matrixB;
switch (type) {
case "1D":
matrixB = matrixB_1D(x, L, nodes);
break;
case "2D":
matrixB = matrixB_2D(x, y, a, b, nodes);
break;
case "3D":
matrixB = matrixB_3D(x, y, z, a, b, c, nodes);
break;
case "Beams":
matrixB = matrixB_Beams(x, L, nodes, theory);
break;
case "Slabs":
matrixB = matrixB_Slabs(x, y, a, b, nodes, theory);
break;
default:
matrixB = null;
break;
}
return matrixB;
}

As matrizes de deformao para cada tipo de elemento finito esto programas com recurso a mtodos
que requerem os pontos onde devem ser avaliadas, as dimenses e o nmero de ns do elemento finito
considerado. Deste modo, os mtodos podem fornecer as matrizes de deformao para qualquer tipo de
elemento finito.
A partir do valor dos deslocamentos nodais, da matriz de deformao e da matriz de elasticidade, as
tenses nos pontos usados na quadratura de Gauss-Legendre num elemento finito tridimensional so
calculadas atravs do mtodo listOfStresses_3D(). Este mtodo requer as dimenses do elemento finito
e o vetor de deslocamentos nodais. A partir dos atributos da classe definidos aquando da criao do
objeto da classe NodalResults, o mtodo avalia a matriz de deformao nos pontos selecionados da
quadratura de Gauss-Legendre onde devem ser calculadas as tenses. Obtidas todas as matrizes
necessrias ao clculo das tenses, o mtodo realiza o produto matricial entre estas matrizes e adiciona
o resultado a uma varivel da classe ArrayList.
O clculo dos esforos internos nos elementos finitos outro dos resultados requeridos numa anlise
por elementos finitos. A estrutura dos mtodos para calcular os esforos internos bastante semelhante
dos mtodos usados para calcular as tenses nos elementos finitos. O mtodo listOfForces_Beams()

91

Desenvolvimento de um Programa de Elementos Finitos Verstil

retorna uma lista com o valor do momento fletor atuante em vigas formuladas pela teoria de EulerBernoulli calculado nos pontos selecionados da quadratura de Gauss-Legendre.
/**
* Mtodo para calcular as tenses no caso tridimensional
*/
private ArrayList<double[][]> listOfStresses_3D(double a, double b, double c, double[][]
displacementVector) {
ArrayList<double[][]> listOfStresses = new ArrayList();
double[] dimensions = {0.0, a, b, c};
double[][] matrixD = matrixD_3D(elasticity, poisson);
MatrixB matrix = new MatrixB(type, 0.0, a, b , c);
GaussLegendre gaussLegendre = new GaussLegendre(type, theory, points, dimensions);
double[][] weightsCoordinates = gaussLegendre.getWeightsCoordinates();
//Ciclo para todos os pontos no elemento finito
int n = 0;
while (n < points) {
double[] pointsCoordinates = weightsCoordinates[n];
double pointX = pointsCoordinates[1];
double pointY = pointsCoordinates[3];
double pointZ = pointsCoordinates[5];
double[][] matrixB = matrix.getMatrixB(pointX, pointY, pointZ, nodes, theory);
double[][] stresses = multiply(multiply(matrixD, matrixB), displacementVector);
listOfStresses.add(stresses);
n++;
}
return listOfStresses;
}

Atendendo ao facto de as vigas formuladas pela teoria Timoshenko e as lajes formuladas pela teoria de
Reissner-Mindlin considerarem o efeito da deformabilidade por esforo transverso, os mtodos
implementados que retornam o valor das foras num dado ponto do elemento finito tambm calculam o
valor do esforo transverso nesse ponto.
A implementao de todas as formulaes de elementos finitos abordadas nesta dissertao seguiu os
passos anteriormente apresentados. Assim, a programao de uma dada formulao de elementos finitos
ou modelo estrutural consiste na devida implementao da informao disponibilizada.
Pretende-se com esta apresentao e exposio de alguns mtodos evidenciar o modo como o Mtodo
do Elementos Finitos foi implementado na prtica. Existem outros mtodos e classes que no foram
evidenciados. As funcionalidades existentes e o modo como so programas conduzem necessidade de
criar classes e mtodos especficos. A informao apresentada s evidencia a fase de clculo da
estrutura. Note-se ainda que a implementao anteriormente apresentada se referiu apenas a alguns dos
clculos necessrios a uma anlise por elementos finitos.
Existem diferentes possibilidades de codificao de cada uma das tarefas necessrias a uma anlise por
elementos finitos. Toda a estrutura organizacional sobre o modo como foi implementada a anlise por
elementos finitos consiste numa proposta do autor. Outros modelos organizacionais podem

92

Desenvolvimento de um Programa de Elementos Finitos Verstil

evidentemente ser explorados. O que importa salientar que todas as abordagens tm as suas vantagens
e desvantagens.
da responsabilidade do programador decidir quais as abordagens que deve seguir de modo a obter a
melhor implementao possvel do Mtodo dos Elementos Finitos.
/**
* Mtodo para calcular os esforos em vigas
*/
public ArrayList<double[][]> listOfForces_Beams(double L, double[][] displacementVector) {
ArrayList<double[][]> nodalForces = new ArrayList();
double[] dimensions = {L, 0.0, 0.0, 0.0};
MatrixB matrix = new MatrixB(type, L, 0.0, 0.0, 0.0);
GaussLegendre gaussLegendre = new GaussLegendre(type, theory, points, dimensions);
double[][]weightsCoordinates = gaussLegendre.getWeightsCoordinates();
//Ciclo para todos os pontos no elemento finito
int n = 0;
while (n < points) {
double[][] matrixB, forces, M;
double[] pointsCoordinates = weightsCoordinates[n];
double point = pointsCoordinates[1];
matrixB = matrix.getMatrixB(point, 0.0, 0.0, nodes, theory);
M = multiply(multiply(-elasticity * inertia, matrixB), displacementVector);
nodalForces.add(M);
n++;
}
return nodalForces;
}

8.4. INTERFACE GRFICA DO UTILIZADOR


8.4.1. ELEMENTOS DA INTERFACE DO UTILIZADOR

Sendo o foco dos programas os utilizadores, deve-se procurar que os programas disponibilizem um meio
que facilite a comunicao entre o utilizador e o computador. At este momento apenas foram descritas
as tarefas de clculo referentes ao Mtodo dos Elementos Finitos.
Para armazenar todas as classes que se relacionam com a interface do utilizador foram criados os pacotes
frontend e backend. O pacote frontend contm todas as classes associadas criao dos elementos
grficos da interface grfica do utilizador enquanto o pacote backend contm as classes para a criao
de objetos associados ao Mtodo dos Elementos Finitos que so usados na interface grfica. Apenas
para exemplificar, o pacote frontend contm classes como a UserInterface, JPanelWelcome e
ReactionsSupportTable enquanto o pacote backend contm classes como a DrawingPanel, ResultsPane
e OpenSave.
Atendendo aos requisitos da modelao com elementos finitos e da apresentao grfica dos resultados,
no desenvolvimento da interface grfica do utilizador houve a necessidade do desenvolvimento de
ferramentas para desenho e funcionalidades para apresentao dos resultados. Das ferramentas de
desenho construdas destacam-se as relativas ao desenho dos elementos finitos, as ferramentas para

93

Desenvolvimento de um Programa de Elementos Finitos Verstil

anular ou repetir a introduo de objetos, ferramentas para selecionar, mover, cortar, copiar e colar, entre
outras. Para visualizao dos resultados era indispensvel a visualizao da deformada da malha de
elementos finitos. Sendo o programa direcionado para o ensino do Mtodo dos Elementos Finitos era
tambm indispensvel que o programa permitisse a visualizao de elementos como a matriz de rigidez
elementar ou o vetor de foras nodais equivalentes de cada elemento finito. Outras funcionalidades como
a visualizao dos mapas de tenses ou as tenses e direes principais para os problemas
bidimensionais tambm foram desenvolvidas.
Para a construo da janela foi criada a classe UserInterface que permite criar a janela com a interface
grfica do programa desenvolvido. Apenas para exemplificar a criao desta janela, o cdigo abaixo foi
extrado da classe UserInterface e mostra a codificao que permite criar a janela que contm a interface
grfica do programa.
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
/**
*
* @author Andr de Sousa
*/
public class UserInterface extends JFrame {
/**
* Mtodo construtor da classe UserInterface
*/
public UserInterface() {
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screen.width / 2) - (900 / 2), (screen.height / 2) - (600 / 2), 0, 0);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("FEM for Students");
setSize(900, 600);
}
}

Para visualizar a janela criado um objeto desta classe dentro do mtodo main() implementado na classe
FEMforStudents. A construo de todos os elementos grficos que compem a interface do utilizador
so chamados dentro do mtodo construtor da classe. Qualquer interface grfica composta por painis,
botes, rtulos, campos de texto, tabelas, entre outros elementos grficos. A utilizao do NetBeans
como ferramenta de desenvolvimento permitiu criar muitos destes elementos que compem a interface
grfica do programa de uma forma simples e gil.
No devendo ser a interface grfica um elemento esttico necessrio definir os meios que permitam
receber os eventos que ocorrem sobre ela. Alguns destes eventos so, por exemplo, eventos de click do
rato ou aes de pressionar as teclas do teclado do computador. De modo a poder capturar estes eventos
necessrio implementar interfaces ouvintes que capturem estas aes. A implementao destas
interfaces exige a criao nas classes de um conjunto de mtodos que recebem os eventos ocorridos na
interface grfica do utilizador. Assim, apenas necessrio definir toda a lgica associada a um dado
evento ocorrido dentro do mtodo que o recebe. Deste modo, todas as aes desencadeadas no programa
partem de dentro dos mtodos que recebem os diferentes eventos ocorridos na interface grfica. Como
facilmente se perceciona, o programador deve apenas associar a cada um dos eventos que est a capturar
a respetiva funo como, por exemplo, o clculo da estrutura.

94

Desenvolvimento de um Programa de Elementos Finitos Verstil

Para assegurar o funcionamento de qualquer classe e de modo a usufruir do encapsulamento necessrio


construir vrios mtodos privados que executem pequenas operaes elementares que quando
devidamente encadeadas permitem realizar as tarefas para as quais foram definidos os mtodos pblicos
da classe. na classe que cria a interface grfica do utilizador que reside muita da lgica que desencadeia
o funcionamento de todas as operaes descritas. A classe UserInterface sem dvida a classe mais
complexa de todo o projeto, pois, tem de lidar com todos os elementos visuais com os quais o utilizador
interage.
Para exemplificar a forma como estes eventos so recebidos, apresenta-se a adio ao painel de desenho
dos mtodos para receber os eventos de movimento e click dos botes do rato quando o ponteiro se
encontra posicionado no seu interior. Estes mtodos encontram-se todos definidos dentro da classe
UserInterface e so o meio utilizado para que as aes desencadeadas pelo utilizador possam ser tratadas
pelo objeto onde ocorreram.
jDrawingPanel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent evt) {
jDrawingPanel_MouseClicked(evt);
}
@Override
public void mouseEntered(MouseEvent evt) {
jDrawingPanel_MouseEntered(evt);
}
@Override
public void mouseExited(MouseEvent evt) {
jDrawingPanel_MouseExited(evt);
}
@Override
public void mousePressed(MouseEvent evt) {
jDrawingPanel_MousePressed(evt);
}
@Override
public void mouseReleased(MouseEvent evt) {
jDrawingPanel_MouseReleased(evt);
}
});
jDrawingPanel.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent evt) {
jDrawingPanel_MouseDragged(evt);
}
@Override
public void mouseMoved(MouseEvent evt) {
jDrawingPanel_MouseMoved(evt);
}
});

As interfaces grficas do utilizador so orientadas a eventos. Consoante o tipo de evento ocorrido num
determinado objeto deve-se procurar implementar o mtodo adequado. Os componentes da interface
grfica do utilizador geram diferentes eventos e para diferentes eventos existem diferentes mtodos para

95

Desenvolvimento de um Programa de Elementos Finitos Verstil

os receber. Assim, toda a estrutura lgica associada a uma determinada ao definida no interior desses
mtodos.
A construo da interface grfica do utilizador consiste em posicionar no interior da janela do programa
diferentes componentes visuais e em capturar o devido evento para desencadear a execuo de uma dada
tarefa. A informao aqui disponibilizada pretende mostrar que a construo de um programa no mais
que a execuo sequencial de um conjunto elementar de tarefas.
Dos vrios elementos grficos que foram construdos destaca-se o painel de desenho que definido pela
classe DrawingPanel. Esta classe possui um diversificado conjunto de mtodos que aquando da
ocorrncia dos respetivos eventos permitem executar todas as tarefas necessrias ao desenho da malha
de elementos finitos e de todos os outros elementos requeridos na modelao do problema.
No cdigo abaixo apresentado um excerto da classe DrawingPanel, com o seu mtodo construtor, que
estende da classe JPanel herdando todos os seus atributos e aes.
import javax.swing.JPanel;
/**
*
* @author Andr de Sousa
*/
public class DrawingPanel extends JPanel {
/**
* Mtodo construtor da classe DrawingPanel
*/
public DrawingPanel() {
setBackground(new java.awt.Color(255, 255, 255));
setMaximumSize(new java.awt.Dimension(2500, 2500));
setMinimumSize(new java.awt.Dimension(500, 500));
setPreferredSize(new java.awt.Dimension(2500, 2500));
}
}

Para desenhar as figuras no painel necessrio reescrever o mtodo paintComponent() que recebe como
parmetro um objeto do tipo Graphics. Este mtodo permite desenhar as figuras definidas pelo utilizador
sempre que for invocado o mtodo repaint() que ordenada o redesenho do contedo do painel.
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D shape = (Graphics2D) g.create();
}

8.4.2. DESENHO DOS ELEMENTOS DO MODELO ESTRUTURAL

Numa anlise por elementos finitos necessrio construir um modelo estrutural. Todos os elementos
que compem o modelo estrutural so desenhados no painel de desenho do programa construdo a partir
da classe DrawingPanel. Como referido anteriormente, esta classe contm as instrues necessrias para
desenhar todos os elementos requeridos na modelao do problema.
Para desenhar os elementos finitos foram criadas diversas classes que so utilizadas dentro da classe
DrawingPanel e que permitem desenhar diversas figuras geomtricas a partir de um conjunto de

96

Desenvolvimento de um Programa de Elementos Finitos Verstil

coordenadas. As coordenadas referidas so recebidas pelos mtodos criados para o efeito que, a partir
delas, criam uma nova figura geomtrica. Apresentam-se, de seguida, alguns destes mtodos de modo a
exemplificar o seu funcionamento.
/**
* Mtodo para criar e mandar desenhar uma linha definitiva
*/
private void drawNewLine(int x1, int y1, int x2, int y2) {
arrayListLines.add(new DrawLine(x1, y1, x2, y2, "Line"));
repaint();
}
/**
* Mtodo para criar e mandar desenhar um retngulo definitivo
*/
private void drawNewRectangle(int[] xPoints, int[] yPoints) {
arrayListPolygons.add(new DrawPolygon(xPoints, yPoints, 4, "Rectangle"));
repaint();
}

Os mtodos anteriormente apresentados criam uma nova figura geomtrica a partir das coordenadas
recebidas e adicionam-na a uma varivel que a armazena. Para criar estas figuras geomtricas que
representam os elementos finitos foram criadas classes com mtodos para as construir e desenhar.
Algumas destas classes so, por exemplo, a classe DrawLine e a classe DrawPolygon. Para exemplificar,
apresenta-se parte da classe DrawPolygon com o seu mtodo construtor que permite construir qualquer
figura geomtrica do tipo polgono.
import java.awt.Polygon;
import java.io.Serializable;
/**
*
* @author Andr de Sousa
*/
public class DrawPolygon implements Serializable {
public String shape;
public Polygon polygon;
public boolean selected;
/**
* Mtodo construtor da classe DrawPolygon
*/
public DrawPolygon(int[] xPoints, int[] yPoints, int nPoints, String name) {
polygon = new Polygon(xPoints, yPoints, nPoints);
selected = false;
shape = name;
}
}

Alm das classes associadas ao desenho dos elementos finitos foram criadas classes, por exemplo, para
desenhar os apoios estruturais e as cargas que podem ser aplicadas aos elementos finitos e aos ns da
malha de elementos finitos. Cada uma destas classes possui mtodos que desenham cada um destes
elementos visuais.
De modo a permitir a manipulao dos objetos desenhados no painel de desenho, as classes desses
objetos tm definidos mtodos que possibilitam uma fcil interao com eles. Alguns destes mtodos,

97

Desenvolvimento de um Programa de Elementos Finitos Verstil

por exemplo, permitem selecionar o objeto ou obter as suas coordenadas. Estas aes permitem que o
utilizador possa selecionar os elementos desenhados e realizar operaes como mover, cortar, copiar ou
colar. Se o programa no disponibilizasse estas operaes, a sua qualidade ficaria substancialmente
afetada.
O mtodo mousePressedSelect(), pertencente classe DrawingPanel, mostra como feita a mudana de
estado de um polgono. Para realizar esta operao necessrio saber se o polgono contm as
coordenadas do ponto onde ocorreu o click do boto do rato. A classe DrawPolygon disponibiliza o
mtodo contains() que faz esta verificao e retorna verdadeiro ou falso. Deste modo, se a resposta for
afirmativa, o estado do polgono muda para selecionado.
/**
* Mtodo para selecionar os objetos desenhados
*/
private void mousePressedSelect(int xPoint, int yPoint, boolean ctrlDown) {
Point point = new Point(xPoint, yPoint);
for (DrawPolygon polygon : arrayListPolygons) {
if (polygon.contains(point)) {
polygon.select(true);
} else if (!ctrlDown) {
polygon.select(false);
}
}
repaint();
}

Para remover da lista de objetos todos os objetos selecionados, o mtodo mousePressedCut() da classe
DrawingPanel percorre a lista de objetos da classe DrawPolygon e elimina aqueles que esto
selecionados.
/**
* Mtodo para eliminar os objetos selecionados
*/
private void mousePressedCut() {
int i = 0;
int j = arrayListPolygons.size();
while (i < j) {
DrawPolygon polygon = arrayListPolygons.get(i);
if (polygon.selected) {
arrayListPolygons.remove(i);
j--;
i--;
}
i++;
}
repaint();
}

Os mtodos movePolygon() e getCoordinates(), pertencentes classe DrawPolygon, mostram como


realizada a operao de translao de um polgono e a obteno da matriz de coordenadas do polgono.
O conhecimento das coordenadas e da forma tambm importante para a construo dos elementos
finitos. Todas as classes associadas ao desenho de objetos no painel de desenho possuem mtodos
equivalentes aos apresentados para a classe DrawPolygon.

98

Desenvolvimento de um Programa de Elementos Finitos Verstil

O conhecimento da posio dos objetos das informaes mais valiosas, pois, a generalidade das
operaes descritas necessitam do seu conhecimento. Por exemplo, somente com o conhecimento das
coordenadas dos objetos desenhados possvel selecion-los ou mov-los. Muita da simplicidade das
operaes descritas advm da forma como foram criados estes mtodos.
/**
* Este mtodo aplica uma translao ao polgono
*/
public void movePolygon(int deltaX, int deltaY) {
polygon.translate(deltaX, deltaY);
}
/**
* Este mtodo retorna uma matriz com as coordenadas do polgono
*/
public int[][] getCoordinates() {
int[] xPoints = polygon.xpoints;
int[] yPoints = polygon.ypoints;
int nPoints = polygon.npoints;
int[][] coordinates = new int[nPoints][2];
for (int i = 0; i < nPoints; i++) {
coordinates[i][0] = xPoints[i];
coordinates[i][1] = yPoints[i];
}
return coordinates;
}

Como anteriormente referido, o programa, alm dos elementos finitos, tambm tem de desenhar as
cargas e os apoios estruturais. No mtodo seguinte, pertencente classe DrawLoads, apresentada a
parte referente ao desenho de uma carga concentrada vertical descendente. Para executar esta operao,
o mtodo necessita de conhecer as coordenadas do ponto de origem de onde deve comear a desenhar a
representao grfica da carga. Essa informao fornecida no momento da construo do objeto e fica
armazenada na varivel pointA.
/**
* Mtodo para desenhar uma carga concentrada
*/
private void drawConcentratedLoad(Graphics2D load) {
int x = pointA.x;
int y = pointA.y;
Line2D drawLineA, drawLineB, drawLineC;
//Carga concentrada vertical descendente
if ("Vertical Positive".equals(this.verticalSign)) {
drawLineA = new Line2D.Double(x, y, x, y - 25);
drawLineB = new Line2D.Double(x, y, x - 5, y - 5);
drawLineC = new Line2D.Double(x, y, x + 5, y - 5);
load.draw(drawLineA);
load.draw(drawLineB);
load.draw(drawLineC);
}
}

99

Desenvolvimento de um Programa de Elementos Finitos Verstil

Uma das dificuldades enfrentadas para desenhar os diferentes elementos com o devido rigor tcnico
consiste em fornecer ao utilizador a possibilidade de desenhar os elementos com as corretas dimenses
e exatamente no stio pretendido. Atendendo ao exposto, houve a necessidade do desenvolvimento de
funcionalidades para auxiliar o utilizador na etapa de modelao com elementos finitos. Estas
funcionalidades executam tarefas elementares como mover a posio das coordenadas do rato, por
exemplo, para o vrtice mais prximo de um polgono quando o ponteiro do rato se encontra nas
proximidades desse vrtice. Sem estas funcionalidades o utilizador dificilmente conseguiria desenhar
no stio certo o que havia planeado.
Uma funcionalidade importante no momento da modelao da estrutura a apresentao grfica das
dimenses dos elementos finitos. No momento em que o utilizador est a desenhar os elementos finitos,
a apresentao desta informao permite que o utilizador possa controlar a suas dimenses.
A funcionalidade da grelha de pontos e o snap so ferramentas muito teis na etapa de modelao da
estrutura. Apesar da sua grande importncia, porventura, so das funcionalidades mais simples de se
construir. A grelha de pontos consiste em desenhar um ponto numa localizao pr-estabelecida. Como
a linguagem Java no disponibiliza nenhum mtodo para desenhar pontos necessrio recorrer ao
mtodo para desenhar linhas. Assim, para se obter um ponto atribui-se as mesmas coordenadas para o
ponto inicial e final da linha. O snap consiste em alterar as coordenadas do ponteiro do rato para um
ponto existente na rea de desenho. Quando o snap se encontra associado grelha de pontos, o resultado
consiste em alterar as coordenadas do ponteiro do rato para o ponto da grelha mais prximo.
Durante o processo de modelao, o utilizador necessita de poder definir as propriedades dos elementos
finitos ou das cargas, mudar os apoios ou refinar a malha de elementos finitos. Para exemplificar, referese a funcionalidade de refinamento da malha de elementos finitos. O mtodo meshRefinementLines()
permite refinar uma malha de elementos finitos unidimensionais. Para executar esta tarefa ele recebe a
linha que ser dividida em duas novas linhas.
/**
* Mtodo de refinamento que retorna uma lista de linhas
*/
public static ArrayList<DrawLine> meshRefinementLines(DrawLine line) {
ArrayList<DrawLine> listOfLines = new ArrayList();
int[][] coordinates = line.getCoordinates();
int x1 = coordinates[0][0];
int y1 = coordinates[0][1];
int x3 = coordinates[1][0];
int y3 = coordinates[1][1];
Point2D.Double point = midPoint(x1, y1, x3, y3);
int x2 = (int) (Math.round(point.x));
int y2 = (int) (Math.round(point.y));
listOfLines.add(new DrawLine(x1, y1, x2, y2, line.shape, line.selected));
listOfLines.add(new DrawLine(x2, y2, x3, y3, line.shape, line.selected));
return listOfLines;
}

Quando uma malha refinada, a tarefa interna que executada corresponde criao de uma nova
malha de elementos finitos a partir da informao da malha inicial. Se existirem cargas distribudas
aplicadas nos elementos finitos da malha inicial necessrio que estas cargas fiquem sujeitas ao mesmo

100

Desenvolvimento de um Programa de Elementos Finitos Verstil

padro de refinamento. Caso contrrio, as cargas que inicialmente estavam referenciadas a determinados
elementos finitos deixam de o estar, pois, nessas posies, esses elementos finitos j no l esto porque
foram substitudos por novos elementos com geometria distinta.
Para que todas estas tarefas sejam executadas necessrio construir na interface grfica elementos que
permitam ao utilizador escolher a tarefa que pretende realizar, criar mtodos para receber esses eventos
e mtodos para executar essas ordens. Todas estas tarefas so implementadas em nveis diferentes que
exigem que os diferentes objetos possuam mtodos especficos para a comunicao entre eles.

8.4.3. APRESENTAO GRFICA DOS RESULTADOS

Do ponto de vista de apresentao dos resultados, o programa apresenta as matrizes de rigidez


elementares, os vetores de foras nodais e de deslocamentos para cada elemento finito, o sistema de
equaes globais e todos os resultados obtidos da anlise, nomeadamente, as reaes de apoio, a
deformada da estrutura, as tenses e os esforos internos. A apresentao destes resultados passou pela
construo de tabelas e de um painel para representar graficamente alguns destes resultados.
As tabelas foram construdas para apresentar o sistema de equaes globais e todos os resultados
numricos ao nvel dos elementos finitos, nomeadamente, tenses nodais e esforos nodais. Construdas
as tabelas, sempre que o utilizador ordene a exibio do seu contedo, o programa executa a substituio
do seu contedo atravs da mudana de modelo. Esta operao consideravelmente mais eficiente que
a operao de manipulao do modelo existente. O mtodo printMatrix() mostra a construo de um
modelo com o contedo de uma matriz quadrada.
/**
* Mtodo para construir a tabela com o contedo de uma matriz
*/
public static DefaultTableModel printMatrix(double[][] stiffnessMatrix) {
DefaultTableModel table = new DefaultTableModel();
int length = stiffnessMatrix.length;
//Construo das colunas da tabela
table.addColumn("");
for (int i = 1; i <= length; i++) {
table.addColumn(String.valueOf(i));
}
for (int i = 0; i < length; i++) {
String[] lineResults = new String[length + 1];
//Construo do contedo de uma linha da tabela
lineResults[0] = String.valueOf(i + 1);
for (int j = 0; j < length; j++) {
lineResults[j + 1] = String.valueOf(stiffnessMatrix[i][j]);
}
table.addRow(lineResults);
}
return table;
}

O mtodo printMatrix() alm de imprimir o contedo de uma matriz quadrada ainda adiciona a
numerao s linhas e colunas da tabela.

101

Desenvolvimento de um Programa de Elementos Finitos Verstil

A apresentao de todos os elementos usados no clculo e os resultados obtidos foi um dos principais
focos do programa. A apresentao grfica dos resultados foi desenvolvida com a construo de classes
que permitem a visualizao, por exemplo, da deformada, dos mapas de tenses ou das tenses e
direes principais. Estas funcionalidades so muito teis ao permitir, por exemplo, visualizar a forma
da deformada da estrutura ou a distribuio de tenses nas peas. Para os elementos do tipo barra est
disponvel a visualizao dos diagramas de esforos.
Para visualizao dos resultados de forma grfica, semelhana do realizado para desenhar os vrios
elementos, foi construda uma classe designada por ResultsPane que, a partir da informao obtida de
cada elemento finito, representa os diferentes resultados. Aps a criao do objeto desta classe apenas
necessrio chamar o mtodo relativo ao tipo de resultado que se pretende visualizar. Esta classe cria
objetos de muitas das classes que j foram referidas aquando da apresentao da classe DrawingPanel.
O desenho da deformada da estrutura consiste em somar posio dos ns da estrutura indeformada o
valor do deslocamento nodal obtido do clculo segundo cada direo ortogonal. Contudo, como o valor
do deslocamento normalmente pequeno, necessrio adotar um fator de escala que permita visualizar
convenientemente a deformada da estrutura. Esse fator fica ao critrio do programador que o deve definir
consoante a dimenso que pretende obter para a deformada da estrutura. O mtodo seguinte exemplifica
o modo como so definidas as posies dos ns da deformada da estrutura para o caso das lajes.
/**
* Mtodo para definir a posio dos ns da estrutura deformada
*/
private void nodes_deformedStructure(String type, String theory, int[][] nodesCoordinates,
double[][] displacements) {
int[][] coordinates = new int[nodesCoordinates.length][2];
switch (type) {
case "Slabs":
int[][] perspectiveSlabs = createPerspective(nodesCoordinates);
for (int i = 0; i < nodesCoordinates.length; i++) {
coordinates[i][0] = perspectiveSlabs[i][0];
coordinates[i][1] = perspectiveSlabs[i][1]
+ (int) Math.round(displacements[i * 3][0] * deformedFactor);
}
break;
}
for (int[] nodeCoordinates : coordinates) {
listNodesDeformed.add(new DrawNode(nodeCoordinates[0], nodeCoordinates[1],
defaultColor));
}
}

Uma ferramenta bastante til para o utilizador visualizar a deformada da estrutura consiste na
possibilidade de ajuste da sua dimenso. Este ajuste da dimenso da deformada conseguido atravs da
adio interface grfica de um slider. Assim, a dimenso da deformada ajustada em conformidade a
partir do valor de posicionamento fornecido por este componente visual.
Para desenhar as linhas de isovalores e os mapas de tenses foi criada a classe IsolinesAndMaps. O
desenho das linhas de isovalores e dos mapas de tenses realizado atravs da analogia com a
representao de curvas de nvel. Basicamente, para desenhar estas duas representaes grficas
comea-se por idealizar uma malha de tringulos definidos a partir das coordenadas dos ns dos
elementos finitos. Definida a escala de cores, para cada tringulo, unem-se os pontos de igual tenso

102

Desenvolvimento de um Programa de Elementos Finitos Verstil

correspondentes diviso efetuada na escala de cores. No caso dos mapas de tenso, estes pontos so
unidos de modo a formar um polgono cujo interior pintado com a cor atribuda no momento da sua
construo.

8.5. PERSISTNCIA DE DADOS


A necessidade de armazenar o trabalho criado pelo utilizador no programa exige o armazenamento dessa
informao na memria permanente do computador de modo a que esta possa ser recuperada
futuramente aps o fecho do programa.
A soluo adotada para garantir a persistncia dos dados foi de recorrer a ficheiros de bytes. Esta escolha
revela-se mais interessante na medida que se pode recorrer aos recursos disponibilizados na biblioteca
do Java para manipulao de ficheiros. De modo a automatizar a gravao e a recuperao de ficheiros
foi criada a classe OpenSave.
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import javax.swing.JOptionPane;
/**
*
* @author Andr de Sousa
*/
public class OpenSave {
/**
* Construtor da classe para gravar os objetos do projeto
*/
public OpenSave(String absolutePath, ArrayList<DrawPolygon> arrayListPolygons) {
saveAllObjects(absolutePath, arrayListPolygons);
}
/**
* Mtodo para gravar as listas de objetos do projeto
*/
private void saveAllObjects(String absolutePath, ArrayList<DrawPolygon>
arrayListPolygons) {
try (FileOutputStream stream = new FileOutputStream(absolutePath)) {
try (ObjectOutputStream outputStream = new ObjectOutputStream(stream)) {
outputStream.writeObject(arrayListPolygons);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error! Unable to save the project.");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error! Unable to save the project.");
}
}
}

De modo a compactar a apresentao da classe apenas apresentada a gravao da lista de polgonos


desenhados. Para recuperar a informao gravada realizada uma operao inversa apresentada. O
mais importante a reter sobre a gravao e recuperao de ficheiros consiste no tipo de objetos que
podem ser gravados e na obteno do caminho do local de realizao desta operao.

103

Desenvolvimento de um Programa de Elementos Finitos Verstil

A metodologia de gravao e recuperao de ficheiros apresentada s aplicvel a objetos serializveis,


isto , objetos que implementem a interface Serializable. A classe ArrayList e a classe DrawPolygon
tm implementada esta interface. Desta forma, a gravao de ficheiros e a sua recuperao em Java
uma operao bastante simples.
Importa ainda salientar que qualquer conexo tem de ser aberta e no final de realizadas todas as
operaes encerrada. A estrutura lgica apresentada realiza estas tarefas mesmo nas situaes em que
possam ocorrer erros inesperados.

104

Desenvolvimento de um Programa de Elementos Finitos Verstil

9
APRESENTAO DO PROGRAMA
FEM FOR STUDENTS

9.1. DESCRIO DO PROGRAMA


O objetivo desta dissertao consistiu em construir integralmente um programa de modelao e anlise
estrutural pelo Mtodo dos Elementos Finitos. O programa foi construdo para utilizao em computador
usando a linguagem de programao Java e foi batizado com o nome FEM for Students.
O foco do programa a modelao e anlise estrutural pelo Mtodo dos Elementos Finitos. Assim, o
programa disponibiliza vrias ferramentas para a etapa de modelao e funcionalidades para
visualizao dos resultados. De entre as diversas ferramentas disponveis, o programa permite o desenho
de diversos tipos de elementos finitos, com diferente nmero de ns e formulados por diferentes teorias.
Alm destas funcionalidades, o programa possibilita a insero de diversos tipos de carregamentos e
apoios estruturais. O uso da integrao numrica uma das opes disponveis no momento que
antecede o clculo. Deste modo, o utilizador ao escolher um mtodo de integrao deve tambm definir
o nmero de pontos para avaliar os integrais. Do ponto de vista de apresentao dos resultados obtidos,
a par de uma visualizao grfica, o programa tambm mostra os resultados numericamente, isto , toda
a informao relevante apresentada em tabelas.
Algumas das preocupaes durante o desenvolvimento do programa consistiram em fornecer uma
interface apelativa, ferramentas que otimizassem a etapa de desenho dos modelos e funcionalidades para
visualizao dos resultados da anlise estrutural. Sendo a usabilidade uma das principais exigncias
houve a preocupao de desenvolver um conjunto de ferramentas que agilizassem todo o processo de
modelao e anlise por elementos finitos.
Como anteriormente salientado, o programa possibilita o uso de diferentes formulaes de elementos
finitos. Alm disto, o programa abrange a generalidade dos modelos estruturais usados na prtica de
engenharia. Do ponto de vista de simulao numrica o programa permite que sejam feitas alteraes
ao modelo de forma bastante intuitiva e visualiz-las rapidamente de modo a compreender o seu impacto
no comportamento da estrutura.
De modo a facilitar os desenvolvimentos futuros houve a necessidade de organizar convenientemente o
projeto do programa. Isto passou pela criao de classes genricas que facilmente permitem a criao
de novos objetos sem ser necessrio entender pormenorizadamente o seu funcionamento. Assim, por
exemplo, a adio de novos elementos finitos faz-se sem recurso alterao do funcionamento das outas
classes. Isto possvel porque os mtodos desenvolvidos funcionam independentemente do tipo de
elemento finito selecionado.

105

Desenvolvimento de um Programa de Elementos Finitos Verstil

9.2. PAINEL INICIAL E SEPARADORES


Aps a inicializao, o programa apresenta um painel inicial que permite ao utilizador escolher o tipo
de modelo estrutural que pretende para o seu projeto. A figura 9.1 mostra a interface grfica do programa
aps a inicializao.

Fig.9.1 Visualizao da janela e do painel inicial do programa.

Atendendo s disposies de construo de interfaces, os elementos que aparecem aps a inicializao


do programa esto dispostos de modo a que o utilizador apenas se foque na escolha do modelo estrutural
para o seu projeto. O painel que aparece ao centro da janela permite que o utilizador escolha um tipo de
modelo estrutural ou um projeto existente. Selecionado o tipo de modelo para o projeto a desenvolver
entra-se na rea de modelao do programa e passam a estar disponveis todas as ferramentas para
desenho dos elementos finitos e todos os outros elementos necessrios modelao.
De modo a tornar o programa intuitivo, as ferramentas esto dispostas por um conjunto de separadores
organizados sequencialmente pelas etapas da modelao, anlise estrutural e visualizao dos resultados
da anlise. Assim, a primeira tarefa consiste em desenhar a malha de elementos finitos. De seguida, so
definidos os restantes detalhes como, por exemplo, o nmero de ns dos elementos finitos, as
propriedades dos materiais ou as condies de apoio. Na prxima etapa aplicam-se os carregamentos
estrutura. Aps todas as caractersticas do modelo estarem definidas realizado o seu clculo. Por fim,
so visualizados os resultados da anlise obtidos para o modelo construdo.
Atendendo a estas etapas, as ferramentas e funcionalidade do programa esto organizadas nos seguintes
seis separadores:
Draw;
View;
Geometry;

106

Desenvolvimento de um Programa de Elementos Finitos Verstil

Loads;
Analysis;
Results.

O separador Draw contm as ferramentas necessrias ao desenho dos diferentes elementos finitos
disponveis no programa. Possui algumas funcionalidades de produtividade, nomeadamente, seleo dos
elementos finitos, mover, cortar, copiar e colar. Permite tambm a insero de pontos de referncia
atravs de coordenadas introduzidas pelo teclado para auxiliar a construo da malha de elementos
finitos.
O separador View contm ferramentas de visualizao, nomeadamente, disponibiliza a possibilidade de
mover o painel, fazer zoom, mostrar uma malha de pontos, e outras funcionalidades que facilitam o
desenho dos elementos finitos.
O separador Geometry contm as funcionalidades para definir o nmero de ns dos elementos finitos,
as restantes propriedades das seces dos elementos finitos, as propriedades do material, refinamento
das malhas de elementos finitos e adio dos apoios estruturais. Algumas destas funcionalidades abrem
um painel lateral onde aparecem os elementos necessrios realizao das respetivas operaes.
O separador Loads contm as ferramentas para atribuio dos carregamentos ao modelo estrutural
construdo. Os botes deste separador abrem um painel lateral onde possvel definir as propriedades
da carga que se pretende adicionar ao modelo. Consoante o modelo estrutural possvel adicionar
carregamentos como cargas concentradas, momentos fletores, cargas lineares distribudas, cargas axiais
distribuas e/ou carregamentos de superfcie.
Relativamente ao separador Analysis, este disponibiliza, por exemplo, para os elementos finitos de viga
e de laje a seleo da teoria de formulao. Possibilita ainda escolher se a anlise vai ser analtica ou
numrica e o boto para efetuar o clculo da estrutura. Do ponto de vista de uma anlise numrica, o
programa permite usar a quadratura de Gauss-Legendre ou a quadratura de Gauss-Lobatto para realizar
a integrao numrica.
O separador Results, e ltimo, contm os botes para escolher o tipo de resultado obtido da anlise
estrutural a visualizar. Consoante o modelo selecionado possvel ver, por exemplo, o sistema de
equaes globais, todos os resultados ao nvel de cada elemento finito, a deformada da estrutura, os
diagramas de esforos, os mapas de tenses e/ou as tenses e direes principais.

9.3. ETAPA DE MODELAO


Escolhido o modelo estrutural para o projeto, o programa apresenta o painel de desenho e passam a estar
disponveis todas as ferramentas para modelao. Como referido anteriormente, as funes do programa
encontram-se organizadas por um conjunto de separadores. Muitos dos botes a apresentados abrem
painis laterais onde so disponibilizadas as reas com as funcionalidades a que o utilizador pretende
aceder. Se a construo do modelo respeitar todas as etapas, estas funcionalidades vo sendo acedidas
sequencialmente. Deste modo, o utilizador no necessita de saltar de separador em separador ou painel
em painel para realizar um determinada tarefa.
Na figura 9.2 mostrado o contedo do separador Draw que apresenta todas as ferramentas para modelar
qualquer problema bidimensional. Pela anlise da figura observa-se no primeiro grupo as ferramentas
de desenho de vrias formas geomtricas como linhas, tringulos ou quadrilteros. No segundo grupo
esto as ferramentas que permitem retroceder ou avanar na introduo de elementos. No terceiro e
ltimo grupo esto algumas ferramentas de produtividade como, por exemplo, as ferramentas para

107

Desenvolvimento de um Programa de Elementos Finitos Verstil

cortar, copiar ou colar. Destaca-se que para mover um objeto ou copi-lo necessrio, em primeiro lugar
selecion-lo. S depois possvel mov-lo ou copi-lo.
Para selecionar um dos objetos desenhados necessrio, em primeiro lugar, escolher a ferramenta select
do separador Draw. Depois, basta clicar no interior do objeto ou, no caso de uma linha, nas suas
proximidades. Para selecionar vrios objetos necessrio manter pressionada a tecla control ou usar o
retngulo de seleo. Para cancelar o desenho de um objeto pode-se pressionar a tecla escape.

Fig.9.2 Ferramentas do separador Draw.

Algumas funcionalidades como a possibilidade de ampliao ou reduo da dimenso do desenho esto


disponveis no separador View. A figura 9.3 mostra o contedo do separador View. As ferramentas
deste separador podem ser usadas tanto na etapa de modelao como na visualizao grfica dos
resultados. Por exemplo, para ativar a malha de pontos e o snap necessrio, em primeiro lugar, ativar
a grid e depois o snap.

Fig.9.3 Ferramentas do separador View.

Desenhada a malha de elementos finitos, a etapa seguinte da modelao consiste em definir todas as
propriedades dos elementos finitos e em colocar os apoios estruturais. No separador Geometry, mostrado
na figura 9.4, so disponibilizadas as ferramentas necessrias para realizar estas tarefas.

Fig.9.4 Ferramentas do separador Geometry.

No primeiro grupo encontram-se as funes para atribuio do nmero de ns aos elementos finitos. No
segundo grupo encontram-se as funes para a definio das restantes dimenses dos elementos finitos
e atribuio do material. Todas estas funcionalidades esto associadas a painis laterais. A ferramenta
seguinte permite o refinamento automtico da malha de elementos finitos. O ltimo grupo de
funcionalidades corresponde aos botes para selecionar o tipo de apoio estrutural a adicionar ao modelo.
Como referido, algumas das ferramentas do painel Geometry abrem painis laterais. Para definir o
nmero de ns dos elementos finitos existem os painis laterais Bars, Triangles e Quadrilaterals. Para
definir as restantes dimenses dos elementos finitos existe o painel lateral Sections. Este painel,
consoante o tipo de elemento finito, permite especificar a espessura, a rea, a inrcia e/ou a constante
de toro. Estas propriedades podem ser especificadas individualmente para cada um dos elementos
finitos da malha. Para isso, o utilizador deve previamente criar a seco e posteriormente selecionar o
respetivo elemento finito. Selecionado o elemento finito, o utilizador deve pressionar o boto direito do
rato e escolher a opo Finit Element que abre uma nova janela onde so detalhadas as caractersticas
do elemento finito.

108

Desenvolvimento de um Programa de Elementos Finitos Verstil

Quanto s propriedades do material dos elementos finitos, o painel Materials permite ao utilizador
especificar o valor para os mdulos de elasticidade e de distoro e o valor do coeficiente de Poisson.
A figura 9.5 mostra o contedo painel Materials que permite especificar os valores das propriedades do
material selecionado. Relativamente ao refinamento da malha, o painel lateral Mesh permite definir o
nvel de refinamento a aplicar malha de elementos finitos.

Caixa de combinao
Mdulo de Elasticidade
Mdulo de Distoro
Coeficiente de Poisson
Botes para editar e guardar.

Fig.9.5 Contedo do painel lateral Materials.

Para adicionar os apoios estruturais ao modelo necessrio, em primeiro lugar, selecionar no separador
Geometry o tipo de apoio estrutural. Depois, deve-se clicar sobre o n da malha de elementos finitos em
que se pretende aplicar o apoio estrutural. Note-se que os botes relativos aos apoios estruturais ficam
habilitados consoante o modelo estrutural selecionado.
O passo seguinte na etapa de modelao consiste em colocar as cargas no modelo. Na figura 9.6
mostrado o contedo do separador Loads. Neste separador, consoante o tipo de modelo estrutural, ficam
habilitados diferentes tipos de carregamentos para adicionar ao modelo. Consoante o tipo de modelo,
possvel adicionar cargas concentradas, momentos fletores, cargas lineares distribudas, cargas axiais
distribudas e/ou carregamentos de superfcie.

Fig.9.6 Ferramentas do separador Loads.

A figura 9.7 mostra o contedo do painel lateral Uniformly Distributed Loads que permite criar uma
carga linear uniformemente distribuda. O programa s permite a adio de cargas ao modelo aps a sua

109

Desenvolvimento de um Programa de Elementos Finitos Verstil

criao no painel lateral. Para criar uma carga necessrio selecionar a opo New na caixa de
combinao. Criada a carga, necessrio preencher os campos de texto com o seu valor e no final
carregar no boto para guardar. Posteriormente, apenas necessrio clicar com o boto do rato nos locais
onde se pretende adicionar a carga. Note-se que para adicionar cargas concentradas apenas necessrio
definir um nico n. J as cargas distribudas, exceo do carregamento de superfcie, exigem que se
selecione dois ns do elemento finito.

Caixa de combinao
Componente segundo x da carga.
Componente segundo y da carga.
Botes para editar, guardar e
eliminar.

Fig.9.7 Contedo do painel lateral Uniformly Distributed Loads.

Posteriormente, sempre possvel editar o valor da carga ou remov-la do modelo. Para remover uma
carga do modelo necessrio selecionar a ferramenta para remover as cargas disponvel no separador
Loads e, em seguida, clicar com o rato sobre o n ou um dos ns em que a carga est aplicada. tambm
possvel visualizar a lista com todos os carregamentos estruturais aplicados ao modelo.

9.4. TIPOS DE ANLISE


Construda a malha de elementos finitos, definidas as suas propriedades e introduzidas as condies de
fronteira, o modelo fica em condies de ser calculado. Nesta etapa, so construdos os elementos finitos
e o sistema de equaes globais que, aps a sua resoluo, permite caracterizar o comportamento da
estrutura. O separador Analysis, representado na figura 9.8, disponibiliza o botes para escolher a teoria
de formulao dos elementos finitos, quando aplicvel, e se o clculo dos elementos finitos vai ser
analtico ou numrico. Disponibiliza ainda o boto para calcular a estrutura.
A escolha da teoria de formulao dos elementos finitos aplicvel somente s formulaes de
elementos finitos de viga e de laje. Para as vigas, o utilizador pode escolher entre a teoria de Euler-

110

Desenvolvimento de um Programa de Elementos Finitos Verstil

Bernoulli e a teoria de Timoshenko. No caso das lajes pode escolher entre a teoria de Kirchhoff e a teoria
de Reissner-Mindlin. De modo a poder escolher a teoria aplicvel ou definir os dados necessrios para
realizar a anlise numrica, o programa quando solicitado abre painis laterais onde estas opes so
disponibilizadas. tambm nesta etapa que, quando aplicvel, o utilizador deve escolher entre realizar
uma anlise em estado plano de tenso ou deformao.

Fig.9.8 Funcionalidades do separador Analysis.

Relativamente possibilidade de calcular os elementos finitos com recurso a integrao numrica, esto
disponveis duas quadraturas. Assim, o utilizador pode escolher entre a quadratura de Gauss-Legendre
e a quadratura de Gauss-Lobatto. Independentemente da quadratura escolhida necessrio definir o
nmero de pontos de integrao para cada tipo de elemento finito do modelo. A figura 9.9 mostra o
contedo do painel lateral Numerical Analysis para selecionar o tipo de quadratura e o nmero de pontos
usados para avaliar as funes.

Seleo da quadratura

Caixas de combinao

Fig.9.9 Contedo do painel lateral Numerical Analysis.

A principal diferena entre escolher uma anlise analtica ou numrica est no facto de o utilizador no
ter qualquer poder de controlo sobre o modo como so calculados os elementos finitos sempre que
selecione a opo de anlise analtica.
Construdo o modelo e definidos todos os elementos necessrios para o calcular, o utilizador deve clicar
no boto Calculate do separador Analysis para efetuar o clculo.

111

Desenvolvimento de um Programa de Elementos Finitos Verstil

9.5. APRESENTAO DOS RESULTADOS


Realizada a anlise, entra-se na etapa de visualizao dos resultados. No separador Results, apresentado
na figura 9.10, esto disponveis as opes para escolher o tipo de resultado para visualizao. No
primeiro grupo de botes esto disponveis as opes relativas visualizao do sistema global de
equaes. No segundo grupo esto disponveis as opes para visualizao dos resultados em tabelas ao
nvel dos elementos finitos. Assim, alm do sistema global de equaes, possvel visualizar a equao
de equilbrio para cada elemento finito, as reaes de apoio, as foras nodais e as tenses nodais.

Fig.9.10 Funcionalidades do separador Results.

No ltimo grupo esto concentradas as funcionalidades para apresentao grfica dos resultados. Para
todos os modelos possvel visualizar a deformada da estrutura. A figura 9.11 mostra o contedo do
painel lateral Displacements. Como se pode observar pela imagem do painel lateral Displacements, o
utilizador pode controlar a dimenso do desenho da deformada da estrutura, visualizar os ns da malha
de elementos finitos e a sua numerao.

Slider para ajustar a dimenso


da deformada da estrutura.

Visualizar ns da malha.
Visualizar numerao dos ns.
Visualizar ns da malha
deformada.

Fig.9.11 Contedo do painel lateral Displacements.

Alm disto, para os modelos de barras possvel visualizar os diagramas de esforos e para os modelos
bidimensionais as linhas de isovalores, os mapas de tenses e as tenses e direes principais.
Relativamente visualizao das linhas de isovalores e dos mapas de tenses, o utilizador pode escolher
qual a tenso que pretende ver representada.

112

Desenvolvimento de um Programa de Elementos Finitos Verstil

9.6. OUTRAS FUNCIONALIDADES


A descrio anteriormente apresentada do programa salientou as ferramentas relativas modelao por
elementos finitos e s funcionalidades de visualizao de resultados. Existem outros elementos na
interface grfica do programa que so teis ao utilizador.
O programa apresenta, por exemplo, a informao relativa ao posicionamento do rato e dicas sobre o
funcionamento das ferramentas selecionadas nos separadores. Estas dicas so apresentadas sempre que
o utilizador seleciona determinada ferramenta do programa e tm como objetivo inform-lo sofre o
modo de funcionamento desta. Estes elementos esto dispostos no painel inferior da interface do
programa.
Outras funcionalidades do programa esto concentradas nos menus File, Edit e Help. A funcionalidade
que mais se destaca relativa persistncia de dados. De modo a que os utilizadores possam guardar os
projetos criados e posteriormente recuper-los, o programa permite a gravao dos projetos na memria
permanente do computador. A informao gravada corresponde a todos os elementos desenhados,
valores das diversas propriedades dos elementos finitos e carregamentos.
Por fim, analisando globalmente o programa, este est focado apenas na modelao e anlise estrutural
por elementos finitos. A componente de dimensionamento no abordada. O desenvolvimento de
ferramentas orientadas ao projeto deve fazer parte dos desenvolvimentos futuros. A importncia que os
meios informticos tm no contexto profissional no deve ser ignorada pelo meio acadmico. Pretendese com isto salientar a importncia de os alunos serem capazes de desenvolver as suas prprias
ferramentas, pois, elas so um meio para o aumento da competitividade e reduo de custos.

113

Desenvolvimento de um Programa de Elementos Finitos Verstil

114

Desenvolvimento de um Programa de Elementos Finitos Verstil

10
CONCLUSO

10.1. CONSIDERAES FINAIS


Esta dissertao teve como objetivo central o desenvolvimento de um programa que permitisse a
modelao e a anlise estrutural pelo Mtodo dos Elementos Finitos. Assim, ao longo dos captulos
foram abordados os elementos necessrios implementao computacional do mtodo e construo
da interface grfica do programa.
O programa desenvolvido permite modelar problemas simples com diversas formulaes de elementos
finitos. Contudo, nem todas as formulaes de elementos finitos foram abordadas. Os modelos de
sistemas discretos disponveis permitem o estudo de estruturas articuladas, estruturas reticuladas, vigas
e grelhas. Relativamente aos meios contnuos, o utilizador pode escolher entre um estado plano de tenso
ou deformao e o estudo de lajes pelas duas teorias abordadas nesta dissertao. Existem grandes
melhorias a implementar na anlise de meios discretos e meios contnuos. A extenso a contextos
dinmicos e a realizao de anlises no lineares fundamental. A resoluo deste tipo de problemas
tambm privilegia a sua implementao computacional porque requerem uma grande quantidade de
clculos.
Escrever e validar o cdigo fonte de um programa com quarenta e cinco mil linhas foi um processo
rduo e complexo. Alm da dificuldade de codificao e o estudo das diferentes formulaes e teorias
de elementos finitos acresceu-se ainda a necessidade de aprender a linguagem de programao Java. De
modo a facilitar a sua aceitao, a construo do programa obedeceu a um conjunto de critrios de modo
se obter uma soluo verstil e apelativa. Isto exigiu a programao de diferentes modelos e teorias de
elementos finitos e a construo de uma interface grfica moderna. Uma das principais vantagens do
programa a sua portabilidade. Assim, o programa funciona em diferentes dispositivos informticos
desde que os utilizadores tenham instalada a plataforma Java.
O desenvolvimento de ferramentas informticas que otimizem os tempos de clculo e aumentem a
capacidade de modelao so e devem continuar a ser motivo de grande foco no contexto da Engenharia
de Estruturas. indispensvel o uso destas ferramentas em ambiente de projeto. Devido sua enorme
importncia, o seu desenvolvimento deve tambm ser alvo de ateno pela comunidade acadmica.
fundamental impulsionar o desenvolvimento de novas solues que aumentem a capacidade de
simulao numrica. A importncia do uso destas ferramentas conhecida pela comunidade acadmica
e profissional mas tem sido pouco impulsionada pelos membros que a compem. O seu desenvolvimento
dever ser impulsionado por aqueles que a elas recorrem. Em nada contribui para o seu desenvolvimento
esperar que outras reas venham colmatar a falta de investimento daqueles que delas necessitam.
importante que este trabalho comece logo na fase de formao de modo a consciencializar os futuros
profissionais da sua importncia.

115

Desenvolvimento de um Programa de Elementos Finitos Verstil

A simulao computacional um meio impulsionador no desenvolvimento futuro da Engenharia de


Estruturas. A possibilidade de se poder experimentar diferentes solues sem os custos e inconvenientes
de se recorrer a modelos fsicos uma das muitas possibilidades que o desenvolvimento e a programao
de mtodos de anlise tem vindo a proporcionar.
A soluo desenvolvida nesta dissertao vem colmatar algumas das falhas evidenciadas. Contudo, o
programa construdo constitui uma soluo simples, precisando de ser melhorada e expandida. Devido
a ter sido desenvolvido muito do trabalho de base para a expanso, esta tarefa fica bastante simplificada
para os desenvolvimentos futuros. Por fim, salienta-se que as possibilidades de desenvolvimento de
novos mtodos e ferramentas so infinitas.

10.2. SUGESTES PARA DESENVOLVIMENTOS FUTUROS


A inovao est na base do sucesso de qualquer setor. Esta dissertao pretendeu contribuir para o
desenvolvimento de novas solues que ajudem aprendizagem e divulgao do Mtodo dos
Elementos Finitos.
Sendo o programa desenvolvido limitado, importante referir algumas reas por onde comear a
expandi-lo. Como j anteriormente referido, o programa foca apenas a modelao e a anlise de
estruturas. O dimensionamento automtico talvez dos assuntos mais relevantes pelo qual se pode
comear a expandir a verso do programa desenvolvido no mbito desta dissertao. um tema bastante
desafiante e perfeitamente executvel que permitiria ao programa abranger todas as fases do projeto de
estruturas.
No faltaro certamente aos interessados ideias para expandir a verso do programa desenvolvido ou
ideias para construir outras solues. O aparecimento de novas solues exige a motivao necessria
para as procurar desenvolver. Assim, que este trabalho seja um impulsionador da procura e
desenvolvimento de novas solues.

116

Desenvolvimento de um Programa de Elementos Finitos Verstil

BIBLIOGRAFIA
[1] Arnold, K., Gosling, J., Holmes, D. A linguagem de programao Java. Artmed Editora S.A., Porto
Alegre, 2006.
[2] Azevedo, A. Mtodo dos Elementos Finitos. Faculdade de Engenharia da Universidade do Porto,
Porto, 2003.
[3] Barros, R. Introduo ao Mtodo dos Elementos Finitos. Apontamentos da disciplina de Teoria das
Estruturas 2, Faculdade de Engenharia da Universidade do Porto, Porto, 2006.
[4] Branco, C. Mecnica dos Materiais. Fundao Calouste Gulbenkian, Lisboa, 2011.
[5] Castro, L. Elementos Finitos para a Anlise Elstica de Lajes. Apontamentos da disciplina de
Anlise de Estruturas II, Instituto Superior Tcnico, Lisboa, 2007.
[6] Cook, R., Malkus, D., Plesha, M. Concepts and Applications of Finite Element Analysis. John Wiley
& Sons., Madison, 1989.
[7] Delgado, R. Mtodo dos Elementos Finitos. Texto de apoio s aulas de Mtodo dos Elementos
Finitos, Faculdade de Engenharia da Universidade do Porto, Porto, 1990.
[8] Eck, D. Introduction to Programming Using Java. Department of Mathematics and Computer
Science, Hobart and William Smith Colleges, Estados Unidos da Amrica, 2011.
[9] Ferreira, A. Problemas de Elementos Finitos em MATLAB. Fundao Calouste Gulbenkian, Lisboa,
2010.
[10] Gonalves, M. Gerao de Malhas Bidimensionais de Elementos Finitos Baseada em
Mapeamentos Transfinitos. Dissertao de Mestrado, Universidade Federal de Minas Gerais, 2004.
[11] Kassimali, A. Matrix Analysis of Structures. Cengage Learning, Carbondale, 2012.
[12] Moreira, R. Sistema Grfico Interativo para Ensino de Anlise Estrutural Atravs do Mtodo dos
Elementos Finitos. Dissertao de Mestrado, Universidade Federal de Minas Gerais, 2006.
[13] Oate, E. Structural Analysis with the Finite Element Method. Linear Statics. Volume 1. Basis and
Solids. Springer, Barcelona, 2009.
[14] Oate, E. Structural Analysis with the Finite Element Method. Linear Statics. Volume 2. Beams,
Plates and Shells. Springer, Barcelona, 2013.
[15] Pressman, R. Software Engineering. A Practitioners Approach. McGraw-Hill, Estados Unidos da
Amrica, 2010.
[16] Rade, M. Finite Element Analysis. Editura Printech, Bucareste, 2006.
[17] Saliba, S. Implementao Computacional e Anlise Crtica de Elementos Finitos de Placas.
Dissertao de Mestrado, Universidade Federal de Minas Gerais, 2007.
[18] Sanches, P. Elementos finitos triangulares compatveis na anlise estrutural de lajes finas.
Dissertao de Mestrado, Instituto Superior Tcnico, 2011.
[19] Sebesta, R. Concepts of programming languages. Pearson, Colorado, 2012.
[20] Soriano, H. Mtodo de Elementos Finitos em Anlise de Estruturas. Editora da Universidade de
So Paulo, So Paulo, 2003.

117

Desenvolvimento de um Programa de Elementos Finitos Verstil

[21] Teixeira-Dias, F., Pinho-da-Cruz, J., Valente, R., Sousa, R. Mtodo dos Elementos Finitos.
Tcnicas de Simulao Numrica em Engenharia. ETEP, Aveiro, 2010.
[22] Vlissides, J., Helm, R., Johnson, R., Gamma, E. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Estados Unidos da Amrica, 1994.
[23] Zienkiewicz, O.C., Taylor, R.L., Zhu, J.Z. The Finite Element Method: Its Basis and Fundamentals.
Butterworth-Heinemann, Reino Unido, 2013.
[24] http://www.netbeans.org/. Consultado em 01/10/2014.

118

Desenvolvimento de um Programa de Elementos Finitos Verstil

ANEXOS

119

Desenvolvimento de um Programa de Elementos Finitos Verstil

120

Desenvolvimento de um Programa de Elementos Finitos Verstil

A. PACOTES E CLASSES DO PROJETO DO FEM FOR STUDENTS


A.1. PACOTES DO PROJETO

O projeto do programa FEM for Students encontra-se organizado por pacotes em que cada pacote
contm um conjunto de classes que definem o nome do pacote. A tabela A.1 mostra os pacotes do projeto
e o nmero de classes de cada pacote.
Tabela A.1 Pacotes e nmero de classes em cada pacote.

Pacotes do projeto

Nmero de classes

backend

20

calculations

finiteelement

27

frontend

15

gausslegendre

gausslobatto

images

matrices

shapefunctions

variablesubstitution

16

A classe que contm o mtodo main() designada por FEMforStudents e no se encontra dentro de
nenhum pacote.

A.2. CLASSES DE CADA PACOTE

Nas tabelas seguintes apresentam-se as classes de cada pacote e o nmero de linhas de cada uma. Cada
uma das tabelas apresenta somente as classes pblicas contidas no respetivo pacote.
Tabela A.2 Descrio das classes do pacote backend.

Classes

Nmero de linhas

Command

272

DiagramsForBars

833

DrawEllipse

162

DrawLine

256

DrawLoads

902

DrawNode

136

DrawPolygon

276

DrawRectangle

105

121

Desenvolvimento de um Programa de Elementos Finitos Verstil

DrawSupports

405

DrawingMethods

1366

DrawingPanel

2894

Geometry

136

IsolinesAndMaps

903

LoadTable

261

Loads

172

OpenSave

300

PrincipalStresses

142

ResultsPane

1248

ResultsTables

708

VerticesCoordinates

329

Tabela A.3 Descrio das classes do pacote calculations.

Classes

Nmero de linhas

AnalyticGeometry

500

FiniteElement

1193

FormatResults

885

NodalResults

828

NodesCoordinates

214

Processor

1453

Tabela A.4 Descrio das classes do pacote finiteelement.

122

Classes

Nmero de linhas

MatrixB

178

MatrixB_1D

59

MatrixB_2D

152

MatrixB_3D

107

MatrixB_Beams

187

MatrixB_Frames

53

MatrixB_Grids

53

MatrixB_Slabs

513

Desenvolvimento de um Programa de Elementos Finitos Verstil

MatrixD

158

MatrixJ

235

MatrixK

348

MatrixK_1D

77

MatrixK_2D

938

MatrixK_3D

805

MatrixK_Beams

498

MatrixK_Frames

82

MatrixK_Grids

82

MatrixK_Slabs

3731

MatrixT

67

VectorF

341

VectorF_1D

52

VectorF_2D

267

VectorF_3D

100

VectorF_Beams

111

VectorF_Frames

47

VectorF_Grids

45

VectorF_Slabs

224

Tabela A.5 Descrio das classes do pacote frontend.

Classes

Nmero de linhas

IndividualProperties

170

JLateralPanelAnalysis

689

JLateralPanelGeometry

1508

JLateralPanelLoads

1446

JLateralPanelResults

1001

JPanelBottom

100

JPanelHelp

150

JPanelWelcome

585

LegendsForPanels

654

MatrixTableResults

66

123

Desenvolvimento de um Programa de Elementos Finitos Verstil

NodalForcesTable

96

NodalStressesTable

464

ReactionsSupportTable

94

UserInterface

8842

VectorTableResults

88

Tabela A.6 Descrio das classes do pacote gausslegendre.

Classes

Nmero de linhas

GaussLegendre

141

WeightsCoordinates_1D

77

WeightsCoordinates_2D

282

WeightsCoordinates_3D

114

WeightsCoordinates_Beams

139

WeightsCoordinates_Frames

77

WeightsCoordinates_Grids

77

WeightsCoordinates_Slabs

311

Tabela A.7 Descrio das classes do pacote gausslobatto.

Classes

Nmero de linhas

GaussLobatto

141

WeightsCoordinates_1D

77

WeightsCoordinates_2D

282

WeightsCoordinates_3D

114

WeightsCoordinates_Beams

139

WeightsCoordinates_Frames

77

WeightsCoordinates_Grids

77

WeightsCoordinates_Slabs

309

Tabela A.8 Descrio das classes do pacote matrices.

124

Classes

Nmero de linhas

Determinant

104

Inverse

120

Desenvolvimento de um Programa de Elementos Finitos Verstil

Multiply

220

Subtract

117

Sum

117

Transpose

102

Tabela A.9 Descrio das classes do pacote shapefunctions.

Classes

Nmero de linhas

MatrixNv

122

MatrixNv_1D

59

MatrixNv_2D

84

MatrixNv_3D

59

MatrixNv_Beams

124

MatrixNv_Frames

71

MatrixNv_Grids

71

MatrixNv_Slabs

208

Tabela A.10 Descrio das classes do pacote variablesubstitution.

Classes

Nmero de linhas

DerivedMatrix

81

DerivedMatrix_1D

63

DerivedMatrix_2D

167

DerivedMatrix_3D

107

DerivedMatrix_Beams

186

DerivedMatrix_Frames

39

DerivedMatrix_Grids

39

DerivedMatrix_Slabs

155

MatrixB

89

MatrixB_1D

54

MatrixB_2D

149

MatrixB_3D

103

MatrixB_Beams

155

MatrixB_Frames

38

125

Desenvolvimento de um Programa de Elementos Finitos Verstil

126

MatrixB_Grids

38

MatrixB_Slabs

153

Desenvolvimento de um Programa de Elementos Finitos Verstil

B. MODELAO E ANLISE DE UM PRTICO

Fig.B.1 Visualizao do painel inicial do programa.

Fig.B.2 Representao do prtico em anlise.

127

Desenvolvimento de um Programa de Elementos Finitos Verstil

Fig.B.3 Visualizao da matriz de rigidez da estrutura.

Fig.B.4 Visualizao do diagrama de momentos fletores.

128

Desenvolvimento de um Programa de Elementos Finitos Verstil

C. MODELAO E ANLISE DE UMA PAREDE

Fig.C.1 Visualizao do painel inicial do programa.

Fig.C.2 Desenho de um retngulo para representar a parede.

129

Desenvolvimento de um Programa de Elementos Finitos Verstil

Fig.C.3 Refinamento da malha de elementos finitos.

Fig.C.4 Escolha da quadratura e do nmero de pontos de integrao.

130

Desenvolvimento de um Programa de Elementos Finitos Verstil

Fig.C.5 Visualizao da deformada da parede.

Fig.C.6 Visualizao do mapa de tenses na parede.

131

Anda mungkin juga menyukai