Anda di halaman 1dari 41

Programao de Elementos Finitos com MATLAB 1

12
Programao de Elementos Finitos com
MATLAB
O
Captulo 12 inclui uma introduo geral s funes do MATLAB, tpicos selecionados em lgebra linear com
MATLAB e uma coleo de programas de elementos nitos para: trelias (Captulo 2), problemas unidimen-
sionais gerais (Captulo 5), conduo de calor em duas dimenses (Captulo 8) e elasticidade em duas dimenses
(Captulo 9). Este Captulo est publicado somente no formato eletrnico por diversas razes:
1. a estrutura de dados do programa de elementos nitos ser atualizada periodicamente para reetir as tecnologias
emergentes em elementos nitos e as mudanas de sintaxe no MATLAB;
2. para permitir que instrutores de curso utilizem o seu prprio MATLAB ou outros programas de elementos
nitos;
3. para criar um frum onde estudantes e instrutores possam trocar idias e propor alternativas de estruturas de dados
de programas de elementos nitos. O frum (em ingls) est instalado no endereo: http://1coursefem.blogspot.
com/
12.1 Usando o MATLAB para o MEF
1
12.1.1 As Janelas do MATLAB
Sobre a abertura do MATLAB voc deve ver trs janelas: a janela da rea de trabalho, a janela de comando e a janela
do histrico como mostrado na Figura 12.1. Caso voc no veja essas trs janelas, ou veja mais do que trs janelas,
voc pode modicar o leiaute clicando na seguinte seleo do menu: View desktop layout default.
12.1.2 A Janela de Comando
Se voc clicar na janela de comando um cursor ir aparecer para voc datilografar e entrar com vrios comandos. O
cursor est indicado por dois smbolos maior do que ().
1
Material opcional (pode ser omitido em sala de aula). Recomendado como leitura independente.
012fish.indd 1 07.05.09 11:28:02
2 CAPTULO DOZE
12.1.3 Expresses de Entrada
Aps clicar na janela de comando, voc pode entrar nos comandos que deseja que o MATLAB execute. Tente entrar
da seguinte forma: 84. Voc ver que o MATLAB retornar: resposta 12.
12.1.4 Criando Variveis
To logo os comandos do entrada no MATLAB, as variveis so criadas. O formato geral para a entrada de vari-
veis : varivel expresso. Por exemplo, entre com y 1 na janela de comando. O MATLAB retorna com:
y 1. Uma varivel y foi criada e o valor de 1 foi atribudo a ela. Esta varivel pode ser usada em vez do
nmero 1 em futuras operaes matemticas. Por exemplo, quando digitamos y*y na rea de comando, obtemos:
resposta 1. O MATLAB sensvel a letras maisculas e minsculas, de forma que y 1, e Y 5 criaro duas
variveis independentes.
12.1.5 Funes
O MATLAB possui muitas funes matemticas-padro, tais como o seno (sen(x)) e o cosseno (cos(x)) etc. Tambm
possui pacotes de programas computacionais, chamados de caixa de ferramentas, com funes especiais para tpicos
especcos.
12.1.6 Obtendo Ajuda e Determinando Funes
A capacidade para determinar e implantar funes e ferramentas do MATLAB a habilidade mais importante que o
principiante necessita desenvolver. O MATLAB contm muitas funes que podem ser teis alm daquelas descritas
a seguir.
Existem duas formas diferentes para obter ajuda:
Clique no pequeno cone que representa uma pergunta no topo da tela. Isto abrir a janela de ajuda que possui
diversas teclas teis para achar a informao.
Digite help na linha de comando: o MATLAB retornar com uma lista de tpicos para os quais ele possui
funes. Na base da lista, ele diz como obter mais informaes sobre um tpico. Como exemplo, se voc digitar
help sqrt o MATLAB retornar com uma lista de funes disponveis para a raiz quadrada.
Figura 12.1 As janelas do Matlab.
012fish.indd 2 07.05.09 11:28:02
Programao de Elementos Finitos com MATLAB 3
12.1.7 lgebra Matricial com MATLAB
O MATLAB um sistema computacional interativo para clculos numricos e grcos. Como o nome sugere, o
MATLAB especialmente projetado para clculos matriciais. Alm disso, ele possui uma variedade de capacidades
grca e de visualizao, e pode ser estendido por meio de programas computacionais escritos em sua prpria
linguagem de programao. Aqui, introduzimos somente alguns procedimentos bsicos, de forma que voc possa
realizar operaes matriciais essenciais e a programao bsica necessria para a compreenso e o desenvolvimento
do programa de elementos nitos.
12.1.8 Denio de Matrizes
Uma matriz um arranjo de nmeros ou variveis m n arranjados em m linhas e n colunas. Tal matriz dita ter
dimenso m n, conforme mostrado a seguir
As letras em negrito denotaro matrizes ou vetores. Os elementos de uma matriz a so denotados por a
ij
, onde i o
nmero da linha e j o nmero da coluna. Observe que tanto na descrio da dimenso da matriz quanto nos subs-
critos que identicam o nmero da linha e da coluna, o nmero da linha colocado primeiramente.
Um exemplo de uma matriz 33 :
Essa matriz a um exemplo de uma matriz quadrada, visto que o nmero de linhas igual ao de colunas.
Os seguintes comandos mostram como entrar com matrizes no MATLAB ( o comando MATLAB; ele pode
ser diferente em computadores diferentes ou em verses diferentes do MATLAB.)
Observe que as linhas de uma matriz so separadas por ponto e vrgula, enquanto as entradas sobre uma linha so
separadas por espaos (ou vrgulas). A ordem da matriz a pode ser determinada a partir de
A transposta de qualquer matriz obtida pelo intercmbio de linhas e colunas. Ento, por exemplo, a transposta de
a
No MATLAB, a transposta de uma matriz denotada por uma apstrofe ().
Se a
T
a, a matriz a simtrica.
Uma matriz chamada de matriz coluna ou um vetor se n = 1, como por exemplo
012fish.indd 3 07.05.09 11:28:03
4 CAPTULO DOZE
No MATLAB, matrizes com subscritos nicos so consideradas matrizes linhas ou vetores linha.
Portanto, um vetor coluna em MATLAB denido por
Observe a transposta usada para denir b como uma matriz coluna. As componentes do vetor b so b
1
, b
2
e b
3
. A
transposta de b um vetor linha
ou no MATLAB
Uma matriz chamada de uma matriz diagonal se somente as componentes da diagonal so diferentes de zero,
isto , a
ij
0, i
1
j. Por exemplo, a matriz a seguir uma matriz diagonal:
Uma matriz diagonal em MATLAB construda primeiramente pela denio de um vetor linha b [1 5 6], e
em seguida colocando esse vetor linha sobre a diagonal
Uma matriz diagonal em que todas as componentes na diagonal so iguais a um chamada de uma identidade ou
matriz unitria e denotada por I. Por exemplo, a matriz identidade 2 2 dada por
A expresso em MATLAB para uma matriz unitria de ordem n
eye(n)
Portanto, a expresso em MATLAB I eye(2) fornece essa matriz.
Uma matriz na qual todos os componentes so zero chamada de uma matriz zero e indicada por 0. No MATLAB,
B zeros (m, n) cria m n matrizes B de zeros. Uma matriz aleatria m n pode ser criada por rand m,n). No mtodo
dos elementos nitos, as matrizes so frequentemente esparsas, isto , elas contm muitos zeros. O MATLAB possui
a habilidade para estocar e manipular matrizes esparsas, com aumento crescente de sua utilidade para problemas
reais. O comando parse (m,n) estoca uma matriz zero m n em um formato esparso, no qual somente as entradas
diferentes de zero e seus locais so ordenados.
As entradas diferentes de zero podem ento ser colocadas uma a uma ou usando um loop.
012fish.indd 4 07.05.09 11:28:04
Programao de Elementos Finitos com MATLAB 5
Observe que o visor em qualquer declarao em MATLAB pode ser suprimido ao nalizar uma linha por ponto e
vrgula.
A inversa de uma matriz quadrada denida por
se a matriz a no for singular. A expresso em MATLAB para a inversa inv(a). Equaes algbricas lineares podem
tambm ser resolvidas pela utilizao do operador de barra oblqua invertidas, o que evita clculos da inversa, sendo,
portanto, mais rpido.
A matriz a no singular se o seu determinante, indicado por det (a), no igual a zero. Um determinante de
uma matriz 22 denido por
A expresso em MATLAB para o determinante
det(a)
Por exemplo,
12.1.9 Operao com Matrizes
Adio e Subtrao
Um exemplo de matriz adio em MATLAB dado a seguir:
012fish.indd 5 07.05.09 11:28:05
6 CAPTULO DOZE
Multiplicao
1. Multiplicao de uma matriz por um escalar
2. Produto escalar de dois vetores coluna
No MATLAB, o produto escalar, como denido por essa equao, dado tanto por a * b
c
como por dot(a,b).
O comprimento de um vetor a indicado por |a| e dado por
O comprimento de um vetor tambm chamado de sua norma.
3. Produto de duas matrizes
O produto de duas matrizes a (m k) e b (k n) denido como
Alternativamente podemos escrever essa equao como
012fish.indd 6 07.05.09 11:28:05
Programao de Elementos Finitos com MATLAB 7
Observe que a entrada i,j de c o produto escalar da linha i de a com a coluna j de b.
O produto c de duas matrizes a e b denido somente se o nmero de colunas em a igual ao nmero de linhas em b.
Em outras palavras, se a uma matriz (m k), ento b deve ser uma matriz (k n), onde k arbitrrio. O produto c
ter ento o mesmo nmero de linhas que a e o mesmo nmero de colunas que b, isto , ser uma matriz (m n).
Um fato importante a lembrar que a multiplicao de matrizes no comutativa, isto , ab
1
ba exceto em circuns-
tncias no usuais.
A expresso em MATLAB para a multiplicao de matrizes
c a * b.
Considere as mesmas matrizes a e c como antes. Um exemplo de multiplicao de matrizes com MATLAB
4. Outras operaes com matrizes
a) A transposta do produto: (ab)
T
b
T
a
T
b) O produto com a matriz identidade: aI a
c) O produto com a matriz zero: a0 0
12.1.10 Soluo do Sistema de Equaes Lineares
Considere o seguinte sistema de n equaes com n incgnitas, d
k
, k 1,2,L, n
Podemos reescrever esse sistema de equaes na notao matricial como se segue
em que
a soluo simblica desse sistema de equaes pode ser achada multiplicando-se ambos os lados pela inversa de K,
que leva a
A expresso em MATLAB para a soluo do sistema de equaes
ou
012fish.indd 7 07.05.09 11:28:06
8 CAPTULO DOZE
Um exemplo de soluo do sistema de equaes com o MATLAB dado a seguir
Como mencionado anteriormente, o operador de barra oblqua invertida proporciona uma forma rpida para resolver
equaes e deve sempre ser usado para sistemas grandes. A razo para isto que o operador de barra oblqua invertida
usa a eliminao para resolver com apenas um segundo membro, enquanto a determinao da inversa de uma matriz
n x n envolve a soluo do sistema usando n segundos membros. Portanto, o operador de barra oblqua invertida deve
sempre ser usado para resolver grandes sistemas de equaes.
12.1.11 Cadeias em MATLAB
As variveis em MATLAB tambm podem ser denidas como variveis do tipo cadeia de caracteres. Um caractere
de cadeia um texto acompanhado por notas nicas. Por exemplo:
tambm possvel criar uma srie de cadeias pela criao de uma matriz na qual cada linha seja uma cadeia separada.
Igualmente com todas as matrizes-padro, a linha precisa ser do mesmo comprimento. Assim
As cadeias so utilizadas para denir nomes de arquivos, ttulos de grcos e formatos de dados. Funes especiais
para manipulao de cadeias esto disponveis no MATLAB, de forma a permitir que voc trabalhe com cadeias.
Nos programas computacionais fornecidos neste livro fazemos uso de cadeias para comparar funes. Por exemplo,
a funo strcmpi compara duas cadeias
012fish.indd 8 07.05.09 11:28:07
Programao de Elementos Finitos com MATLAB 9
Uma declarao verdadeira resulta em 1 e uma falsa em 0. Para obter uma lista de todas as funes especiais para
manipulao de cadeias em MATLAB, digite
Outra funo usada nos programas computacionais fprintf. Essa funo permite ao usurio imprimir na tela (ou
para um arquivo) cadeias e informao numrica em forma de tabela. Por exemplo
O primeiro argumento para a funo chama o MATLAB para imprimir a mensagem na tela. O segundo argumento
uma cadeia, onde %d dene um caractere decimal com o valor de 10 e o \n dene uma nova linha. Para ter uma
descrio completa digite
12.1.12 Programando com MATLAB
O MATLAB muito conveniente para escrever programas simples em elementos nitos. Ele fornece a construo-
padro, tal como laos e condicionais; tais construes podem ser utilizadas interativamente para reduzir o tdio de
tarefas repetitivas, ou coletadas em programas estocados no m-les (nada mais do que um texto com extenso
.m).
12.1.12.1 Condicional e Laos
O MATLAB possui um padro condicional if-else.
A forma geral Um exemplo
t 0,76;
if expression1 if t 0,75
statements1 s 0;
elseif expression2 elseif t 0,25
statements2 s 1;
... else
... s 1-2*(t-0,25);
... end
else s
statements s
end 0
O MATLAB fornece dois tipos de loops, um loop for (comparvel a um loop do em Fortran ou a um
loop for em C) e um loop while. Um loop for repete a instruo no loop enquanto o ndice do loop toma
os valores em um dado vetor linha; o loop while se repete enquanto a expresso dada for verdadeira (dife-
rente de zero)
A forma geral Exemplos
for i1:1:3
disp(i^2)
for index start:increment:end
stataments end
end 1
4
9
x1;
while 11x1
while expression x x/2;
statements end
end x
x
1,1102e-16
012fish.indd 9 07.05.09 11:28:08
10 CAPTULO DOZE
12.1.12.2 Funes
As funes permitem ao usurio criar novos comandos no MATLAB. Uma funo denida em um m-le que
comea com uma linha da seguinte forma
O restante do m-le consiste em comandos normais do MATLAB que calculam os valores das sadas e realizam
outras aes desejadas. A seguir, apresentamos um exemplo simples de uma funo que calcula a funo quadrtica
f(x) = x
2
3x 1. Os seguintes comandos devem ser estocados no arquivo fcn.m (o nome da funo no MATLAB
o nome do m-le, sem a extenso)
12.1.13 Grcos Bsicos
O MATLAB uma excelente ferramenta para visualizar e traar grcos de resultados. Para traar um grco, o
usurio especica o vetor da coordenada x assim como o vetor da coordenada y, usando a seguinte sintaxe
Esses comandos geraro
Figura 12.2 Sada tpica do grco da funo (x, y).
Diversos tipos de linhas, smbolos grcos e cores podem ser obtidos com o grco (x, y, s) em que s uma cadeia
de caracteres que consiste em elementos de qualquer combinao das 3 seguintes colunas
b azul . ponto - slido
g verde o crculo : pontilhado
r vermelho x marca de x -. trao e ponto
c azul-esverdeado + mais -- tracejada
m carmesim * estrela (nenhuma) sem linha
y amarelo s quadrado
k preto d diamante
Para adicionar um ttulo, uma legenda para x e y, o usurio deve usar as seguintes funes MATLAB. Observe
que os argumentos para as funes so cadeias
012fish.indd 10 07.05.09 11:28:08
Programao de Elementos Finitos com MATLAB 11
No programa computacional para elementos nitos MATLAB fornecido no livro, usamos tambm dois grcos espe-
cializados. O primeiro grco a funo patch. Tal funo usada para visualizar polgonos em 2D com cores. As
cores so interpoladas a partir de ns do polgono para criar uma superfcie colorida. O exemplo seguinte gera um
quadrado preenchido. As cores ao longo do eixo x so as mesmas, enquanto as cores ao longo do eixo y so interpo-
ladas entre os valores [0, 1].
Usaremos a funo patch para visualizar temperaturas, tenses e outras variveis obtidas nas solues dos elementos
nitos. Outra funo para grco especializado a quiver. Essa funo usada para visualizar gradientes de funes
como um grco de setas. O exemplo seguinte demonstra o uso da funo quiver para traar os gradientes para a
funo y x
2
O comando hold on usado para guardar o grco atual e todas as propriedades dos eixos, de forma que os comandos
grcos subseqentes sero executados sobre o grco existente.
Usando a funo text, o usurio pode adicionar a um grco uma mensagem de texto. Por exemplo
O primeiro e o segundo argumentos denem a posio do texto sobre o grco, enquanto a cadeia fornece o texto.
Figura 12.3 Sada tpica da funo patch (x, y, c).
Figura 12.4 Sada tpica da funo quiver (x, y, cx, cy).
012fish.indd 11 07.05.09 11:28:09
12 CAPTULO DOZE
12.1.14 Observaes
a) Na prtica o nmero n de equaes pode ser muito grande. Atualmente, os PC podem resolver milhares de
equaes em uma questo de minutos, se as equaes forem esparsas (como elas esto em uma anlise pelo
MEF voc ler sobre isso mais tarde), porm, algumas vezes, milhes de equaes so necessrias, como
para um porta-avies ou um modelo completo para um avio; nesses casos, computadores em paralelo so
necessrios.
b) Solues tcnicas ecientes que tiram vantagem da esparsidade e de outras propriedades vantajosas das equaes
do MEF so essenciais para o tratamento, mesmo em sistemas moderadamente grandes. A discusso de como
resolver ecientemente grandes sistemas no ser considerada neste curso.
c) Neste curso, iremos ver que
A matriz correspondente ao sistema de equaes que aparece do MEF (denotada como K) no singular
(frequentemente chamada de regular), isto , K
1
existe se as condies de contorno corretas so prescritas
e os elementos nitos so formulados adequadamente. Alm disso, para bons modelos, a matriz normalmente
bem condicionada, isto , ela no muito sensvel a erros de arredondamento.
K simtrica, isto , K
T
K.
K denida positiva, isto , x
T
Kx 0 x (signicando para qualquer valor de x). Alternativamente,
K dita para ser denida positiva, se todos os autovalores forem estritamente positivos. O problema do
autovalor consiste em achar os autovalores y diferentes de zero e os autovalores correspondentes l que
satisfaam a

A expresso em MATLAB para o problema dos autovalores

12.2 Programao em Elementos Finitos com MATLAB para Trelias
No Captulo 2, a estrutura bsica do mtodo dos elementos nitos para estruturas de trelias foi ilustrada. Nesta seo,
apresentamos um programa de elementos nitos simples que utiliza a linguagem de programao MATLAB. Visto
que o MATLAB manipula matrizes e vetores com relativa facilidade, o leitor pode enfocar as idias fundamentais
em vez dos detalhes do algoritmo.
O programa computacional escrito para seguir de perto a formulao dada neste captulo. De forma a entender
melhor como o programa funciona, a Figura 2.8 e o Problema Exemplo 2.2 no Captulo 2 foram includos como
exemplos resolvidos pelo programa. Avanar pelo programa com este guia e os problemas exemplos um mtodo
efetivo para compreender o programa.
As principais rotinas no programa computacional de elementos nitos so
1. Pr-processamento que inclui dados de entrada e montagem adequada dos arranjos, vetores e matrizes.
2. Clculos das matrizes de rigidez dos elementos e vetores fora.
3. Montagem direta das matrizes e vetores.
4. Partio e soluo.
5. Ps-processamento para variveis secundrias.
A explanao para vrias rotinas em MATLAB (estocadas em *.m les) descrita por meio de comentrios dentro
de cada sub-rotina.
12.2.1 Notaes e Denies
12.2.1.1 Fornecido pelo Usurio
012fish.indd 12 07.05.09 11:28:09
Programao de Elementos Finitos com MATLAB 13
12.2.1.2 Calculado ou Deduzido pelo Programa
nsd: nmero de dimenses espaciais (1 para problema 1D)
ndof: nmero de graus de liberdade por n
nnp: nmero de pontos nodais
nel: nmero de elementos
nen: nmero de ns do elemento (2 nesse caso)
nd: nmero de deslocamentos (conhecidos) prescritos
CArea: rea da seo transversal
rea CArea (nmero do elemento)
E: Mdulo de Young
Young E (nmero de elemento)
leng: comprimento do elemento
Length leng (nmero de elemento)
phi: ngulo do eixo x
c
para o eixo x para cada elemento especicado em graus. Lembre-se x
c
sempre do n local 1 para 2
phi phi (nmero de elemento)
IEN: matriz informao de conectividade
nmero do n global IEN (nmero do n local, nmero do elemento)
d_bar: vetor de deslocamento prescrito d

na Eq.
Erro! Fonte de referncia no encontrada.
f_hat: vetor fora dado f

na Eq. Erro! Fonte de referncia no encontrada.


plot_truss: string for output control: [yes] to plot truss elements
plot_nod: string for output control: [yes] to plot truss global node numbers
plot_stress: string for output control: [yes] to plot stresses
neq: nmero total de equaes
K: matriz de rigidez global
d: vetores de deslocamento global estocado como:
para problemas 1D para problemas 2D

f: vetor fora global (excluindo as reaes) estocado como:
para problemas 1D para problemas 2D
e: nmero do elemento
ke: matriz de rigidez do elemento
de: vetor de deslocamento do elemento
para problemas 1D para problemas 2D
LM: matriz reunio
A matriz reunio usada para extrair os graus de liberdade do elemento e do local. Ela possui a seguinte estrutura:
grau de liberdade global LM (grau de liberdade local, nmero do elemento)
Quando ndof 1 (veja exemplo na Figura 2.8) IEN e LM so denidos como mostrado a seguir:

012fish.indd 13 07.05.09 11:28:10
14 CAPTULO DOZE
Observao: Neste captulo, os ns em que os deslocamentos so prescritos devem ser numerados primeiramente.
12.2.1.3 Programa MATLAB para Elementos Finitos em Trelias
Quando ndof 2 (veja exemplo no Problema 2.2) IEN e LM so denidos como:
Em ambos os exemplos, as colunas indicam os elementos e as linhas indicam os graus de liberdade global.
K_E: partio da matriz de rigidez global K baseada na Eq.
Erro! Fonte de referncia no encontrada.
K_EF: partio da matriz de rigidez global K baseada na Eq.
Erro! Fonte de referncia no encontrada.
K_F: partio da matriz de rigidez global K baseada na Eq.
Erro! Fonte de referncia no encontrada.
d_F: incgnita (livre) parte do vetor de deslocamento global d baseado na Eq.
Erro! Fonte de referncia no encontrada.
d_E: partio da matriz de rigidez global K baseada na Eq.
Erro! Fonte de referncia no encontrada.
f_E: partio da matriz de rigidez global K baseada na Eq.
Erro! Fonte de referncia no encontrada.
stress: tenso para cada elemento
012fish.indd 14 07.05.09 11:28:12
Programao de Elementos Finitos com MATLAB 15
012fish.indd 15 07.05.09 11:28:15
16 CAPTULO DOZE
012fish.indd 16 07.05.09 11:28:21
Programao de Elementos Finitos com MATLAB 17
012fish.indd 17 07.05.09 11:28:24
18 CAPTULO DOZE
12.3 Funes de Forma e Quadratura de Gauss com o MATLAB
No Captulo 2, a estrutura bsica para programao em elementos nitos foi introduzida para anlise em uma e duas
dimenses para estrutura de trelias. Nesta seo, damos as funes para a construo das funes de forma do elemento
em uma dimenso e suas derivadas. As funes de forma so denidas no sistema fsico de coordenadas.
12.3.1 Notaes e Denies
xe: coordenadas em x do elemento nodal
xt: coordenada em x na qual as funes so avaliadas
N: arranjo das funes de forma
B: arranjo das derivadas das funes de forma
gp: arranjo da posio dos pontos de Gauss no domnio de referncia do elemento
arranjo dos pesos
12.3.2 Programa MATLAB para Funes de Forma e Derivadas
012fish.indd 18 07.05.09 11:28:28
Programao de Elementos Finitos com MATLAB 19
12.3.3 Programa MATLAB para Quadratura de Gauss
12.4 Programao de Elementos Finitos em uma Dimenso com o MATLAB
Na Seo 12.2, a estrutura bsica para programao em elementos nitos foi introduzida para anlise em uma e
duas dimenses para estrutura de trelias. Em 12.3, as funes do programa para o clculo das funes de forma do
elemento, suas derivadas e quadratura de Gauss em uma dimenso foram introduzidas. Nesta seo, introduzimos
uma estrutura mais geral para programao em elementos nitos para problemas unidimensionais que, em principio,
similar quela em multidimenses a ser desenvolvida nas Sees 12.5 e 12.6 para problemas de conduo de calor
e elasticidade, respectivamente.
No Captulo 2, discutimos diversas metodologias para impor condies de contorno. Na abordagem baseada
na partio, os ento chamados ns-E (nos quais os deslocamentos so prescritos) so primeiramente numerados.
Entretanto, em geral, os ns e as numeraes dos elementos so denidos inicialmente por geradores de malhas e
subsequentemente renumerados para maximizar a ecincia de resolver um sistema de equaes lineares. Em nossa
implantao, identicamos os ns localizados sobre o contorno natural ou contorno essencial. Os ns sobre um
contorno natural so designados ag1, enquanto os ns sobre um contorno essencial so identicados como ag=2.
Subsequentemente, os ns so renumerados pelo programa, de forma que os ns E so primeiramente numerados.
Isto realizado por meio da construo dos arranjos ID e LM na funo setup_ID_LM. Com algumas modicaes
menores, o programa para problemas de elasticidade unidimensional pode ser alterado para analisar os problemas
de conduo de calor.
A explanao para vrias rotinas em MATLAB dada como comentrio no interior de cada funo.
Somente a nomenclatura e as denies que foram modicadas a partir dos captulos anteriores esto inclu-
das a seguir. A maioria do programa igual ou muito similar quele desenvolvido na Seo 12.2. Um arquivo de
entrada para o Exemplo 5.2, no Captulo 5, modelado com dois elementos quadrticos dado a seguir. Arquivos
adicionais de entrada para uma malha de elemento quadrtico e quatro malhas de elementos quadrticos so forne-
cidos no disco.
12.4.1 Notaes e Denies
12.4.1.1 Fornecido pelo Usurio
nd: nmero de ns sobre o contorno essencial (ns E)
ngp: nmero de pontos de Gauss
body: vetor de valores das foras de campo denido nos ns e interpolado usando as funes de forma
E: vetor dos valores nodais do mdulo de Young
CArea: vetor dos valores nodais da rea da seo transversal
ags: Arranjo de sinal denotando as condies de contorno essencial e natural
sinais (Nmero do n inicial global) valor do sinal
Os valores do sinal so: 1 contorno natural; 2 contorno essencial
x: vetor das coordenadas nodais em x
y: vetor das coordenadas nodais em y (usado somente para grcos)
e_bc: vetor das condies de contorno essenciais (deslocamento ou temperaturas)
n_bc: vetor das condies de contorno naturais (traes ou uxo no contorno)
P: vetor das foras pontuais (fontes pontuais em conduo de calor)
xp: vetor das coordenadas em x, em que as foras pontuais so aplicadas
np: nmero de foras pontuais (fontes pontuais em conduo de calor)
nplot: nmero de pontos usados para traar deslocamentos e tenses (temperaturas e uxos em conduo de calor)
IEN: matriz locao
012fish.indd 19 07.05.09 11:28:28
20 CAPTULO DOZE
12.4.1.2 Calculado pelo Programa de EF
A matriz locao relaciona o nmero global inicial do n e os nmero dos ns no local do elemento.
Subseqentemente, os ns so remunerados (veja setup

ID

LM.m), de forma que os ns E so primeiramente


numerados. A matriz IEN possui a seguinte estrutura:
Nmero do n global inicial IEN (nmero do n local, nmero do elemento)
ID: Arranjo destino
Nmero do n global reordenado ID (nmero do n global inicial)
LM: Matriz locao
Nmero do n global reordenado LM (Nmero do n local, nmero do elemento)
Observe que a matriz LM est relacionada com a matriz IEN por
LM (I, e) ID(IEN(I,e))
12.4.2 Programa de Elementos Finitos em MATLAB para Problemas Unidimensionais
012fish.indd 20 07.05.09 11:28:31
Programao de Elementos Finitos com MATLAB 21
012fish.indd 21 07.05.09 11:28:35
22 CAPTULO DOZE
012fish.indd 22 07.05.09 11:28:40
Programao de Elementos Finitos com MATLAB 23
12.5 Programa de Elementos Finitos em MATLAB para Conduo de Calor em 2D
Na Seo 12.2, a estrutura bsica para programa de elementos nitos foi introduzida para anlise em uma e duas
dimenses de estruturas de trelias. Na Seo 12.3, uma estrutura mais geral para programas de elementos nitos
para problemas em uma dimenso foi desenvolvida. Nesta seo, descrevemos um programa de elementos nitos
para problemas de campo escalar em duas dimenses focando sobre a conduo de calor. Voc notar que a estrutura
do programa muito similar quela introduzida para problemas em uma dimenso. Uma breve discusso de vrias
funes fornecida a seguir.
Programa Principal: heat2D.m
O programa principal dado no arquivo heat2D.m. A estrutura do programa de elementos nitos consiste nos
seguintes passos:
- pr-processamento
- determinao das matrizes de condutncia do elemento, vetores fonte nodais do elemento e sua montagem
- adicionar contribuio a partir das fontes pontuais e do vetor uxo de contorno nodal
- soluo do sistema de equaes algbricas
- ps-processamento
012fish.indd 23 07.05.09 11:28:42
24 CAPTULO DOZE
Pr-processamento: preprocessor.m
Na fase de pr-processamento, o arquivo de entrada (input_le), que dene as propriedades do material, dados de
malha, inicializaes de vetor e matrizes, condies essenciais e naturais, fontes pontuais e a sada requerida, de-
nido pelo usurio. Na implantao fornecida aqui, os uxos so prescritos ao longo das bordas do elemento e so
denidos pelos valores nodais interpolados usando funes de forma. O arranjo n_bc usado para a estrutura de
uxos de dados. Para o problema de conduo de calor dado no Exemplo 8.1 com 16 elementos quadrilaterais (veja
Figura 8.9), o arranjo n_bc denido como mostrado a seguir
O nmero de colunas corresponde ao nmero de bordas (especicado por nbe) sobre o contorno natural; a primeira e
a segunda linhas indicam o primeiro e o segundo nmero de ns que denem a borda do elemento; a terceira e quarta
linhas correspondem aos respectivos valores de uxos nodais. Observe que uma descontinuidade nos contornos dos
elementos poderia ser prescrita. Os arquivos de entrada para as malhas do elemento 1 e do elemento 64 so dadas
no site da web.
Na fase de pr-processamento, a malha nita gerada e os arranjos de trabalho IEN e ID e LM so denidos. A
funo de gerao de malha mesh2d utiliza a funo integrada no MATLAB linspace (veja Captulo 1) para bisseo
de linhas.
012fish.indd 24 07.05.09 11:28:47
Programao de Elementos Finitos com MATLAB 25
012fish.indd 25 07.05.09 11:28:51
26 CAPTULO DOZE
Matriz de condutncia do elemento e vetor de uxo fonte nodal: heat2Delem.m
Esta funo usada para a integrao da matriz de condutncia do elemento quadrilateral e vetor fonte nodal usando
a quadratura de Gauss. A integrao feita sobre o domnio de referncia do elemento. As funes de forma so
calculadas em Nmatheat2D e suas derivadas ao longo da matriz Jacobiana, e seus determinantes so calculados em
Bmatheat2D. A fonte obtida por interpolao a partir dos valores nodais.
012fish.indd 26 07.05.09 11:28:54
Programao de Elementos Finitos com MATLAB 27
Fontes pontuais e funo uxo de contorno nodal: src_and_ux.m
Tal funo adiciona as contribuies das fontes pontuais P (prescrita somente nos ns) e o vetor uxo de contorno
ao vetor uxo global. O arranjo ID usado para relacionar as numeraes dos ns inicial e reordenada. Para calcular
o vetor uxo de contorno nodal, a funo executada em loop sobre todas as bordas de contorno nbe e realiza uma
integrao em uma dimenso usando a quadratura de Gauss. A integrao realizada pela transformao da borda de
contorno sobre o domnio de referncia. O vetor uxo de contorno ento montado para o vetor uxo nodal global
usando o arranjo ID.
O ps-processamento: postprocessor.m
O ps-processamento a fase nal no mtodo dos elementos nitos. Os resultados esto traados nas Figuras 8.10
a 8.12 no Captulo 8.
012fish.indd 27 07.05.09 11:28:57
28 CAPTULO DOZE
012fish.indd 28 07.05.09 11:29:01
Programao de Elementos Finitos com MATLAB 29
Funes que so idnticas quelas do Captulo 5:
setup_ID_LM.m, assembly.m, solvedr.m.
012fish.indd 29 07.05.09 11:29:03
30 CAPTULO DOZE
Funes fornecidas no Captulo 4: Nmatrix1D.m, Bmatrix1D.m, gauss.m
Funes fornecidas no Captulo 2: solvedr.m
12.6 Programa de Elementos Finitos para Problemas de Elasticidade em Bidimensionais
com o MATLAB
Neste captulo, introduzimos o programa de elementos nitos para problemas de elasticidade linear em duas dimen-
ses. Somente o elemento quadrilateral com quatro ns implantado. Nos problemas 9.6 e 9.7, no Captulo 9, os
estudantes tm a tarefa de implantar os elementos triangulares com 3 e 6 ns.
Programa principal: elasticity2D.m
O programa principal dado no arquivo elasticity2D.m. A estrutura do programa de elementos nitos consiste
nos seguintes passos:
- pr-processamento
- avaliao das matrizes de rigidez do elemento e dos vetores fora de campo do elemento e montagem
- montagem das foras pontuais (somente foras pontuais denidas nos ns)
- avaliao e montagem do vetor fora no contorno nodal
- soluo do sistema de equaes algbricas
- ps-processamento
012fish.indd 30 07.05.09 11:29:06
Programao de Elementos Finitos com MATLAB 31
Arquivo de entrada: input_le.m
Os dados para a condio de contorno natural so fornecidos no arranjo n_bc. Por exemplo, para a malha de 16
elementos no Exemplo 9.3 no Captulo 9, o arranjo n_bc dado como
O nmero de colunas indica o nmero de bordas posicionadas sobre o contorno natural (especicado por nbe). A
primeira e a segunda linhas indicam o primeiro e o segundo ns que denem a borda de um elemento. A terceira e
a quarta linhas correspondem aos valores apropriados de trao nas direes x e y no primeiro n, respectivamente,
enquanto a quinta e sexta linhas correspondem s traes nas direes x e y especicadas no segundo n. Os arquivos
de entrada para as malhas com 1 e 64 elementos so dados no programa no site da web.
012fish.indd 31 07.05.09 11:29:10
32 CAPTULO DOZE
Renumerao de ns: setup_ID_LM.m
A gerao do arranjo ID similar quela no problema de conduo de calor, exceto que nd dene o nmero de
graus de liberdade sobre o contorno essencial. O arranjo LM um indicador para os graus de liberdade da renu-
merao. Para isto, tratamos cada n como sendo um bloco que consiste em dois graus de liberdade. Denimos
um apontador, indicado como blk para o incio de cada bloco e o loop sobre todos os graus de liberdade ndof
naquele bloco.
Funo de rigidez e foras do elemento: elast2Delem.m
A funo elast2Delem.m para a integrao numrica da matriz de rigidez do elemento e do vetor fora de campo
nodal do elemento permanece a mesma que para o programa computacional de conduo de calor, exceto para as
funes de forma NmatElast2D e suas derivadas BmatElast2D.
012fish.indd 32 07.05.09 11:29:12
Programao de Elementos Finitos com MATLAB 33
Funo vetor foras pontuais e fora no contorno nodal: point_and_trac.m
A funo executa loops sobre as bordas nbe no contorno essencial e realiza uma integrao em uma dimenso
usando a quadratura de Gauss. A integrao realizada pela transformao da borda no contorno para o sistema de
coordenadas matriz x [0, 1]. O vetor fora de contorno nodal ento montado para o vetor fora global usando
o arranjo ID. Similarmente, foras pontuais denidas nos ns so montadas no vetor fora nodal global usando
o arranjo ID.
012fish.indd 33 07.05.09 11:29:15
34 CAPTULO DOZE
Ps-processamento: postprocessor.m
A funo ps-processamento chama primeiramente a funo displacements para traar a congurao deformada
baseada nos deslocamentos nodais. O usurio estabelece um fator de escala no arquivo de entrada para representar
em escala a deformao como mostrado na Figura 9.13, no Captulo 9.
Para obter o contorno ou as bordas dos grcos das tenses, estas so calculadas nos ns dos elementos e ento a
mdia feita sobre os elementos conectados ao n. Alternativamente, as tenses podem ser calculadas nos pontos de
Gauss onde elas so mais precisas e, em seguida, interpoladas nos ns. Frequentemente, o usurio est interessado
no somente nas componentes individuais da tenso, mas em alguns valores de tenso global, tais como a tenso de
Von Mises. No caso de tenso no plano, a tenso de Von Mises dada por , em que
1
e
2
so
as tenses principais dadas por . A Figura 9.14, no Captulo 9, mostra o contorno
da tenso
xx
para a malha de 64 elementos.
012fish.indd 34 07.05.09 11:29:20
Programao de Elementos Finitos com MATLAB 35
012fish.indd 35 07.05.09 11:29:25
36 CAPTULO DOZE
012fish.indd 36 07.05.09 11:29:30
Programao de Elementos Finitos com MATLAB 37
Funes que so idnticas quelas no Captulo 8:
preprocessor.m, mesh2d.m, plotmesh.m, assembly.m, solvedr.m.
12.7 Programa de Elementos Finitos com MATLAB para Vigas em Duas Dimenses
Nesta seo, descrevemos um programa de elementos nitos para vigas em duas dimenses. A estrutura do programa
muito similar quela introduzida para problemas em uma dimenso, na Seo 12.3, com uma diferena fundamental,
usar dois graus de liberdade por n. Uma breve descrio das vrias funes fornecida a seguir.
beam.m
O programa principal dado no arquivo beam.m. Pode-se ver que ele quase idntico quele na Seo 12.3.
preprocessor.m
A funo preprocessor l o arquivo de entrada e gera os arranjos ID e LM. A estrutura do arranjo ID idntica quela
para o problema de campo escalar (veja, por exemplo, o programa no Captulo 5); o arranjo LM relaciona elementos
(colunas) ao nmero de equaes aps a renumerao. O arranjo LM para Exemplo do Problema 10.1
012fish.indd 37 07.05.09 11:29:34
38 CAPTULO DOZE
input_le_example10_1.m
A rea de seo transversal prescrita nos ns e interpolada usando funes de forma lineares. O mdulo de Young
e as foras de campo so considerados constantes dentro de um elemento; estes so prescritos para cada elemento.
As condies de contorno essencial e natural so prescritas para cada grau de liberdade sobre os contornos natural
e essencial, respectivamente.
012fish.indd 38 07.05.09 11:29:37
Programao de Elementos Finitos com MATLAB 39
012fish.indd 39 07.05.09 11:29:42
40 CAPTULO DOZE
Funes que so idnticas quelas no Captulo 5 so: assembly.m, solvedr.m, gauss.m.
Problemaslgebra Linear
Problema 1.1
Escreva um programa em MATLAB para gerar um conjunto de equaes algbricas lineares Ax = b em que A
uma matriz n x n dada por
012fish.indd 40 07.05.09 11:29:45
Programao de Elementos Finitos com MATLAB 41
e calcule A
1
. Em seguida, verique o quo perto B A
1
A corresponde a I. Faa isso para n 5, 10, 1.000 e para
um valor maior que voc escolher. A preciso do produto calculado pode ser comparada aos resultados corretos pelo
clculo da norma do erro dada por
Repita este procedimento com a matriz A denida por
Repita esse procedimento para n 3, 4, 5, 6, 7.... Pare quando o erro for maior do que um, visto que a soluo ,
neste caso, sem sentido.
Essa equao da forma que iremos ver nas equaes em elementos nitos. Elas podem ser resolvidas com
preciso, mesmo para sistemas muito grandes para os quais no suscetvel a erros de arredondamento. Elas so
conhecidas como bem condicionadas. A segunda matriz chamada de matriz de Hilbert. Ela um exemplo de uma
matriz extremamente mal condicionada.
Problema 1.2
Considere um sistema de equaes lineares
a) Escreva o sistema de equaes na notao matricial Ax b e resolva para a incgnita x usando o MATLAB.
b) Suponha que impomos uma restrio adicional sobre a soluo g(x) x
1
x
2
x 1 0. Usando o MATLAB,
determine um novo vetor x
novo
de forma que ele satisfar exatamente a equao de restrio g(x
novo
) e minimizar
o erro err (x
novo
) (Ax
novo
b)
T
(Ax
novo
b).
Problema 1.3
Considere as seguintes matrizes simtricas K:
Em que k, k
1
, k
2
so constantes positivas.
a) Verique se essas trs matrizes so denidas positivas. Lembre-se de que se para qualquer vetor x
1
0 temos
x
T
Kx 0, ento a matriz K chamada de Simtrica Positiva Denida (SPD). Se, por outro lado, x
T
Kx
3
0 para
qualquer vetor x
1
0, ento a matriz K simtrica semipositiva denida. Escolha uma das matrizes semipositivas
denidas apresentadas anteriormente e mostre que, para qualquer vetor f do segundo membro, o sistema de equa-
es Kd f no possui uma nica soluo.
b) Verique os seus resultados pelo clculo dos eigenvalores para as trs matrizes dadas.
012fish.indd 41 07.05.09 11:29:45

Anda mungkin juga menyukai