Você está na página 1de 27

UNIVERSIDADE DO ESTADO DO AMAZONAS - UEA

ESCOLA SUPERIOR DE TECNOLOGIA – EST

INTRODUÇÃO AO MÉTODO DOS ELEMENTOS FINITOS

IMPLEMENTAÇÃO DO MÉTODO DOS ELEMENTOS FINITOS NA


LINGUAGEM DE PROGRAMAÇÃO PYTHON

MANAUS-AM

2020
UNIVERSIDADE DO ESTADO DO AMAZONAS - UEA

ESCOLA SUPERIOR DE TECNOLOGIA – EST

GEOLOGIA APLICADA A ENGENHARIA CIVIL

DAVID LEONARDO TINOCO PACHECO

MARLON DE SOUZA MORAES

MATEUS MONETIRO CAMPEÃO ROCHA

Trabalho solicitado na disciplina


Introdução ao Método dos Elementos
Finitos, para obtenção de nota parcial,
na Universidade Estadual do
Amazonas - UEA.

ORIENTADORA: MARIA DO SOCORRO MARTINS SAMPAIO

MANAUS

2020
SUMÁRIO

1. INTRODUÇÃO........................................................................................4
2. MATERIAIS E MÉTODOS......................................................................4
2.1. MÉTODO DOS ELEMENTOS FINITOS.......................................5
3. RESULTADOS E DISCUSSÕES...........................................................12
4. CONCLUSÃO.........................................................................................27
5. REFERÊNCIAS......................................................................................27
4

1. INTRODUÇÃO

Já a partir de 2 mil anos atrás, filósofos gregos como Leucipo e Demócrito,


já haviam supondo nas teorias que todas as coisas eram formadas por inúmeros
partículas. Onde, estabeleceram um número infinitamente grande de partículas
chamado de último de átomos.

O método da exaustão, criado por Eudóxio, consiste em inscrever e


circunscrever figuras retilíneas em figuras curvilíneas, com isso, discretizar a
figura contínua para facilitar certos cálculos. Com isso, o método permiti calcular
áreas de figuras volumes e curvas de sólidos como cones e esferas. Sendo o
equivalente à passagem ao limite do cálculo integral e diferencial.

Na década de 30, McHenry e Hrennikof substituíram um elemento contínuo,


por exemplo, uma placa, para uma estrutura com barras seguindo a geometria
original, mantendo as mesmas condições de vinculação e cargas. Este método,
consiste em admitir funções contínuas que representam, por exemplo, o campo
de deslocamentos no domínio de um elemento e, a partir disso obter o estado
de deformações correspondente que, associado às relações constitutivas do
material, permitem definir o estado de tensões em todo o elemento.

Em 1956, com a publicação do trabalho de Turner, Martin, Clough e Topp o


método dos elementos finitos teve sua formulação estabelecida como hoje é
conhecida. Sendo difundido e aplicado nas diversas áreas, além da engenharia
estrutural, com rápida evolução e expansão dos computadores.

Com isso, o objetivo deste trabalho tem a finalidade de obter maior


conhecimento sobre o assunto em questão, decidiu-se estruturar um algoritmo
dentro de uma linguagem de programação específica para compreender o
funcionamento dos cálculos presente no método dos elementos finitos, utilizando
parâmetros já conhecidos.

2. MATERIAIS E MÉTODOS

No método dos elementos finitos as resoluções dos problemas são


realizadas por operações com matizes, de tal maneira que ao se deparar com
uma estrutura com inúmeros elementos, a exemplo de um pórtico e uma treliça,
5

o mesmo se torna inviável, tendo em vista a grande quantidade de matrizes.


Dessa forma se fazem presentes as ferramentas computacionais, onde são
montados algoritmos dentro de uma linguagem de programação que vem a
realizar todas as operações com matrizes dispostas no método, de tal maneira
que ao fim da implementação o programa vem a retornar valores precisos e com
certa rapidez.

Para a implementação de um algoritmo que realizasse as operações


matriciais necessárias retornando os resultados desejados utilizou-se do
Software Python (versão Python 3.6.1), uma linguagem de programação livre, ou
seja, permite que usuários e colaboradores possam modificar seu código fonte
e compartilhar essas novas atualizações, contribuindo para o constante
aperfeiçoamento da linguagem.

Optou-se por tal linguagem devido a praticidade da mesma, visto que


diferente das demais linguagens Python reduz o uso recursos como marcações,
marcadores, palavras especiais o que torna uma linguagem mais limpa, de fácil
compreensão e leitura. Além disso, o contato com o Software ao longo dos
períodos acadêmicos proporcionou maior manuseio e facilidade na criação do
algoritmo.

2.1. MÉTODO DOS ELEMENTOS FINITOS

A implementação do algoritmo referente ao método em questão segue o


seguinte passo a passo descrito na figura 1.
6

Figura 1: Fluxograma de implementação computacional.


Fonte: Autor (2020).

 Leitura de dados: são inseridos todos os dados a serem utilizados durante


a resolução do programa sendo eles: número de nós e elementos, matriz
coordenada, vetor condição de contorno, vetor carregamento distribuído,
matriz de conectividade e o vetor de carregamento distribuído. O vetor de
comprimentos da barra é feito utilizando a matriz de coordenadas.
 Montagem da matriz de rigidez local ([𝐾𝑒 ]𝐿 ): é feita levando em
consideração alguns fatores como o modulo de elasticidade “𝐸”, a área
de seção transversal “𝐴”, o momento de inercia “𝐼” e o comprimento de
cada barra “𝐿”. Dessa forma é feita a montagem de várias matrizes, uma
para cada barra contida no sistema, sendo elas matrizes 6x6 que seguem
a seguinte estrutura.

𝐸𝐴 𝐸𝐴
0 0 − 0 0
𝐿 𝐿
12𝐸𝐼 6𝐸𝐼 12𝐸𝐼 6𝐸𝐼
0 0 −
𝐿3 𝐿2 𝐿3 𝐿2
6𝐸𝐼 4𝐸𝐼 6𝐸𝐼 2𝐸𝐼
0 0 − 2
[𝐾𝑒 ]𝐿 = 𝐿2 𝐿 𝐿 𝐿
𝐸𝐴 𝐸𝐴
− 0 0 0 0
𝐿 𝐿
12𝐸𝐼 6𝐸𝐼 12𝐸𝐼 6𝐸𝐼
0 − − 0 −
𝐿3 𝐿2 𝐿3 𝐿2
6𝐸𝐼 2𝐸𝐼 6𝐸𝐼 4𝐸𝐼
[ 0 𝐿2 𝐿
0 − 2
𝐿 𝐿 ]

 Matriz de rotação: é uma matriz 6x6 cujo a única variável a ser definida é
o ângulo de inclinação das barras, a mesma é definida de acordo com a
seguinte equação.

cos 𝛼 sin 𝛼 0 0 0 0
− sin 𝛼 cos 𝛼 0 0 0 0
[𝑅𝑒 ] = 0 0 1 0 0 0
0 0 0 cos 𝛼 sin 𝛼 0
0 0 0 − sin 𝛼 cos 𝛼 0
[ 0 0 0 0 0 1]

 Matriz transposta de rotação: é construída de forma análoga a matriz de


rotação, mudando apenas algumas posições dos elementos como segue.
7

cos 𝛼 − sin 𝛼 0 0 0 0
sin 𝛼 cos 𝛼 0 0 0 0
[𝑅𝑒 ]𝑇 = 0 0 1 0 0 0
0 0 0 cos 𝛼 −sin 𝛼 0
0 0 0 sin 𝛼 cos 𝛼 0
[ 0 0 0 0 0 1]

 Montagem da matriz de rigidez dos elementos no sistema global se faz


presente a primeira operação de multiplicação de matrizes como descrito
na seguinte equação.

[𝐾𝑒 ]𝐺 = [𝑅𝑒 ]𝑇 ∗ [𝐾𝑒 ]𝐿 ∗ [𝑅𝑒 ]

 Montagem da matriz de rigidez global “[𝐾𝑒 ]”: onde tal matriz tema as
dimensões definidas dependendo do número de nos contidos no sistema
estrutural, dessa forma é feito um realocamento das posições dos
elementos de “[𝐾𝑒 ]𝐺 ” para “[𝐾𝑒 ]”, seguindo a seguinte logica.

3𝑖 − 2 𝐾11 𝐾12 𝐾13 𝐾14 𝐾15 𝐾16


3𝑖 − 1 𝐾21 𝐾22 𝐾23 𝐾24 𝐾25 𝐾26
3𝑖 𝐾 𝐾32 𝐾33 𝐾34 𝐾35 𝐾36
[𝐾𝑒 ] = 3𝑗 − 2 31
𝐾41 𝐾42 𝐾43 𝐾44 𝐾45 𝐾46
3𝑗 − 1 𝐾51 𝐾52 𝐾53 𝐾54 𝐾55 𝐾56
3𝑗 [𝐾61 𝐾62 𝐾63 𝐾64 𝐾65 𝐾66 ]

3𝑖 − 2, 3𝑖 − 1, 3𝑖, 3𝑗 − 2, 3𝑗 − 1, 3𝑗

Vale salientar que as incógnitas 𝑖 𝑒 𝑗 são definidas através da matriz


conectividade.

 Montagem do vetor de forças locais do elemento “{𝑓}”: leva se em


consideração as cargas distribuídas, cargas essas distribuídas
retangulares, onde assim como nas de rigidez locais, os vetores de forças
locais são construídas para cada barra, onde a mesma é uma matriz 6x1
e segue a seguinte estrutura.
8

𝑞𝑙
2
𝑞𝑙
2
𝑞𝑙 2
{𝑓} = 12
𝑞𝑙
2
𝑞𝑙
2
𝑞𝑙 2

{ 12 }

 Para a montagem do vetor força global da estrutura é feita uma operação


com a matriz de rotação transposta com a matriz de forças local do
elemento.

{𝑓}∗ = [𝑅𝑒 ]𝑇 ∗ {𝑓}

 A montagem do vetor de carregamento global {𝐹} da estrutura é feita


seguindo a seguinte logica de alocamento.

𝑞𝑙
2
𝑞𝑙
3𝑖 − 2 2
2
3𝑖 − 1 𝑞𝑙
3𝑖
{𝐹} = 3𝑗 − 2 12
𝑞𝑙
3𝑗 − 1 2
3𝑗 𝑞𝑙
2
𝑞𝑙 2

{ 12 }

 Montagem do vetor de forças aplicas bem como a sua alocação no


sistema global, onde o mesmo segue uma estrutura um pouco diferente
das forças aplicadas pois as forças são aplicadas diretamente aos nós e
tomam a seguinte estrutura.
9

𝑃𝑥𝑖
𝑃𝑦𝑖
𝑀𝑖
𝑃𝑥𝑗
𝑃
{𝐹𝐴} = 𝑦𝑗
𝑀𝑗

𝑃𝑥𝑛
𝑃𝑦𝑛
{ 𝑀𝑛 }

 Imposição do vetor de forças aplicadas ao vetor de carregamento global


fazendo a soma dos elementos.

{𝐹𝐺} = {𝐹} + {𝐹𝐴}

 Condições de contorno da estrutura: a técnica para introdução de


condições de contorno para o deslocamento escolhida para ser utilizada
foi a técnica de zeros e um. No caso da matriz de rigidez global a técnica
se baseia em igualar a 1 a diagonal principal referente a linha a qual se
tem restrição ditada pela linha correspondente ao vetor restrição e zera
toda a linha e a coluna, semelhante ao que é feito na regra de chió. Para
o vetor de forças globais é feito de forma análoga, no entanto onde há a
restrição correspondente alinha do vetor restrição o valor é igualado a
zero.
 Resolução do sistema do sistema – cálculo do deslocamento: há
inúmeras forma de resolver tal sistemas, para esse algoritmo optou-se por
utilizar método de Gauss-Jordan. Onde sabendo que sistemas lineares
podem ser retratados em forma de matrizes, dado um sistema:

3𝑥1 + 2𝑥2 + 𝑥3 = 6
{ 𝑥1 + 3𝑥2 + 𝑥3 = 5
2𝑥1 + 2𝑥2 + 3𝑥3 = 7

O sistema acima pode ser representado pela seguinte matriz aumentada:

3 2 1⋮6
(1 3 1 ⋮ 5)
2 2 3⋮7

O método consiste realizar operações matemáticas de maneira que a


matriz acima seja convertida em outra matriz no formato:
10

𝛼1 0 0 ⋮ 𝛽1
(0 𝛼2 0 ⋮ 𝛽2 )
0 0 𝛼3 ⋮ 𝛽3

De fato, encontra-se uma solução imediata, onde:

𝛽1
𝑥1 =
𝛼1
𝛽2
𝑥2 =
𝛼2
𝛽3
𝑥3 =
{ 𝛼3

Dado o exemplo, inicialmente é necessário separar os pivôs de cálculo,


estes estão contidos na diagonal, convertidos no número 1 para que se
possa realizar os cálculos com as demais linhas:

3 2 1⋮6
(1 3 1 ⋮ 5)
2 2 3⋮7

a)

3 2 1⋮6 1 2/3 1/3 ⋮ 2


(1 3 1 ⋮ 5 ) ⟶ (1 3 1 ⋮ 5)
2 2 3⋮7 2 2 3 ⋮7

Todos os elementos da 1a linha foram dividos pelo valor 1º pivô

b)

1 2/3 1/3 ⋮ 2 1 2/3 1/3 ⋮ 2


(0 7/3 2/3 ⋮ 3) ⟶ (0 7/3 2/3 ⋮ 3)
2 2 3 ⋮7 0 2/3 7/3 ⋮ 3

Em seguida, a linha do pivô realiza operações com as linhas seguintes,


de forma que os elementos abaixo do pivô, pertencentes a mesma coluna,
sejam nulos.

Na segunda matriz do item a), a linha do pivô é multiplicada pelo valor


negativo do elemento abaixo, pertencente a segunda linha, o elemento de
valor 1. Em seguida, os elementos das duas linhas realizam a operação
de soma, de maneira que os resultados fiquem guardados na segunda
linha, cujo resultado é a primeira matriz do item b).
11

Na segunda matriz do item b), a mesma forma de efetuar os cálculos é


realizada novamente, desta vez entre a linha do pivô e a linha do seguinte
elemento da mesma coluna, pertencente a terceira linha. A linha do
elemento do pivô, inicialmente, é multiplicada pelo valor negativo do
elemento abaixo do mesmo, o elemento de valor 2. Em seguida, é
realizada a operação de soma entre os termos, de forma que o resultado
seja gravado na terceira linha.

c)
1 2/3 1/3 ⋮ 2 1 2/3 1/3 ⋮ 2
(0 1 2/7 ⋮ 9/7) ⟶ (0 1 2/7 ⋮ 9/7)
0 2/3 7/3 ⋮ 3 0 0 45/21 ⋮ 3

Visto que os valores dos elementos abaixo do 1º pivô são nulos, os


seguintes cálculos são realizados a partir do 2º pivô, indicado na segunda
matriz do item b), possui valor inicial de 7/3.

A linha do segundo pivô é, então, dividida pelo valor do mesmo para que
este possua valor igual a 1. Em seguida o mesmo processo de cálculo
realizados entre as linhas é efeituado para que o elemento abaixo do pivô
possua valor nulo.

Como os elementos abaixo da diagonal já possuem valor nulo, os cálculos


seguintes, realizados de maneira idêntica, são aplicados para que os
valores acima da diagonal dos pivôs sejam nulos. No entanto, estes
cálculos partirão de sentido oposto, ou seja, do 3º pivô, indicado na
segunda matriz do item c), de maneira que, no final do processo, o a
matriz final seja:

1 0 0⋮1
(0 1 0 ⋮ 1)
0 0 1⋮1

Onde:

𝑥1 = 1
{𝑥2 = 1
𝑥3 = 1

Para o método de elementos finitos a resolução do sistema é feita para o


seguinte sistema:
12

[𝐾𝑒 ]∗ ∗ {𝐷𝐸𝑆} = {𝐹}∗

Vale ressaltar que a [𝐾𝑒 ]∗ e {𝐹}∗ são respectivamente a matriz global da


estrutura e o vetor de forças da estrutura com restrições. E o {𝐷𝐸𝑆} são
os deslocamentos nodais da estrutura.

 Cálculo das reações de apoio: é feita uma multiplicação e uma subtração


da seguinte forma:

{𝑅𝐸𝐴ÇÃ𝑂} = [𝐾𝑒 ]∗ ∗ {𝐷𝐸𝑆} − {𝐹𝐺}

 Cálculo dos esforços internos: são feitas algumas operações de


multiplicação e subtração da seguinte forma:

{𝐸𝑆𝐹𝑂. 𝐼𝑁𝑇} = [𝐾𝑒 ]𝐿 ∗ [𝑅𝑒 ] ∗ {𝐷𝐸𝑆}𝐿 − {𝑓}

3. RESULTADOS E DISCUSSÕES

O programa implementado na linguagem de programação Python está


descrito a seguir (fig. 2 à 19).

Figura 2: Implementação computacional.


Fonte: Autor (2020).
13

Figura 3: Implementação computacional.


Fonte: Autor (2020).

Figura 4: Implementação computacional.


Fonte: Autor (2020).
14

Figura 5: Implementação computacional.


Fonte: Autor (2020).

Figura 6: Implementação computacional.


Fonte: Autor (2020).
15

Figura 7: Implementação computacional.


Fonte: Autor (2020).

Figura 8: Implementação computacional.


Fonte: Autor (2020).

Figura 9: Implementação computacional.


Fonte: Autor (2020).
16

Figura 10: Implementação computacional.


Fonte: Autor (2020).

Figura 11: Implementação computacional.


Fonte: Autor (2020).
17

Figura 12: Implementação computacional.


Fonte: Autor (2020).

Figura 13: Implementação computacional.


Fonte: Autor (2020).
18

Figura 14: Implementação computacional.


Fonte: Autor (2020).

Figura 15: implementação computacional.


Fonte: Autor (2020).
19

Figura 16: Implementação computacional.


Fonte: Autor (2020).

Figura 17: Implementação computacional.


Fonte: Autor (2020).
20

Figura 18: Implementação computacional.


Fonte: Autor (2020).

Figura 19: Implementação computacional.


Fonte: Autor (2020).

Os resultados obtidos com o programa e o ftool estão dispostos a seguir


(fig. 20 a 25).
21

Figura 20: Pórtico.


Fonte: Autor (2020).
22

Figura 21: Deslocamentos e reações.


Fonte: Autor (2020).
23

Figura 22: Esforços normais.


Fonte: Autor (2020).
24

Figura 23: Esforços cortantes.


Fonte: Autor (2020).
25

Figura 24: Momento fletor.


Fonte: Autor (2020).
26

Figura 25: Resultados no Python.


Fonte: Autor (2020).
27

4. COMCLUSÃO

Por meio do software Ftool, ferramenta utilizada dentro da engenharia civil


para cálculo de reações em estruturas, deslocamentos nodais e esforços
internos, foi possível realizar uma checagem entre os valores obtidos no software
e os valores obtidos por meio da execução do algoritmo implementado dentro da
Linguagem de programação Python. Por tanto, a partir da comparação, onde os
resultados vindos do algoritmo e software devem ser próximos, conclui-se que o
trabalho atendeu os objetivos propostos, que é: entender o método dos
elementos finitos por meio da implementação de um algoritmo cuja execução
almeja-se os resultados já conhecidos por meio do Ftool. Além disso, foi possível
estudar de forma mais aprofundada a linguagem python e como funciona o
campo de programação dentro da engenharia civil, como funcionam os
algoritmos aplicados nos programas utilizados.

5. REFERÊNCIAS

ASSAN, Aloisio. Métodos dos elementos finitos: primeiros passos. 2ª edição.


Campinas, SP: Editora da Unicamp, 2003.

Métodos diretos para solução de sistemas lineares. Disponível em:< http://www-


di.inf.puc-rio.br/~tcosta/cap2.htm>. Acesso em: 17de outubro de 2020.

Sistema de equação lineares. Disponível em:<


http://www.dt.fee.unicamp.br/~valente/capt23_044.pdf>. Acesso em: 17 de
outubro de 2020.

Você também pode gostar