Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INSTITUTO DE TECNOLOGIA
FACULDADE DE ENGENHARIA CIVIL
Belm PA
2014
Belm PA
2014
MAGNO PEREIRA ALMEIDA
Banca Examinadora
_________________________________________________
Prof. PhD. Remo Magalhes de Souza
Professor-Orientador ITEC / UFPA
_________________________________________________
Prof. D.Sc. Regina Augusta Campos Sampaio
Examinador ITEC / UFPA
_________________________________________________
Prof. MSc. Jos Hlio Alvarez Elarrat
Examinador ITEC / UFPA
aos
familiares,
amigos
RESUMO
SUMRIO
LISTA DE ILUSTRAES ................................................................................................. 7
INTRODUO ............................................................................................................ 9
1.1
OBJETIVOS .............................................................................................................. 9
1.2
2.2
2.3
2.4
2.4.1
2.4.2
2.5
2.5.1
2.5.2
2.6
ELEMENTOS ISOPARAMTRICOS.............................................................................. 27
2.6.1
3.2
3.3
3.3.1
3.3.2
3.3.3
3.3.4
4.2
4.2.1
4.2.2
4.2.3
4.3
4.3.1
4.3.2
CONCLUSO ........................................................................................................... 55
REFERNCIAS BIBLIOGRFICAS ......................................................................... 56
ANEXOS ................................................................................................................... 58
A - MALHAS GERADA COM DIFERENTE DOMNIOS ................................................ 58
B - CDIGO FONTE DO PROGRAMA GERADOR DE MALHA ................................... 61
Lista de Ilustraes
TABELA 2.1 ETAPAS DE MODELAGEM NUMA ANALISE ESTRUTURAL (SOTELITO, 2013)........................................................ 12
FIGURA 4.10 RESULTADO FINAL DE UMA MALHA GERADA COM O SOFTWARE. ..................................................................... 49
FIGURA 4.11 MALHA REFINADA ................................................................................................................................. 50
FIGURA 4.12 VIGA ENGASTADA LIVRE. ......................................................................................................................... 51
FIGURA 4.13 DESLOCAMENTOS DO PROBLEMA DA FIGURA 4.11 EM ANLISE COM O ABAQUS. .............................................. 51
FIGURA 4.14 DEFORMAES OBTIDAS ATRAVS DE ANLISE REALIZADA COM UMA MALHA CRIADO PELO SOFTWARE GERADOR. .... 52
FIGURA 4.15 CHAPA COM FURO. ................................................................................................................................ 52
FIGURA 4.16 RESULTADO DAS TENSES PRINCIPAIS NOS PONTOS P E Q (EIXO Y) EM ANLISE FEITA COM O ABAQUS. ................... 53
FIGURA 4.17 RESULTADO DAS TENSES PRINCIPAIS NOS PONTOS M E N (EIXO X) EM ANLISE FEITA COM O ABAQUS. .................. 53
FIGURA 4.18 CONDIES DE CONTORNO DO PROBLEMA APLICADAS NA MALHA CRIADA COM SOFTWARE GERADOR. .................... 54
FIGURA 4.19 TENSES REFERENTES AO EIXO X............................................................................................................... 54
FIGURA 4.20 - TENSES REFERENTE AO EIXO Y. ................................................................................................................ 54
INTRODUO
1.1
Objetivos
O objetivo principal deste trabalho desenvolver e apresentar um software
computacional para gerao de malhas triangulares de trs ns para ser utilizada com
o MEF.
Como objetivos secundrios destacam-se:
Breve estudo do MEF, seus fundamentos e formulaes bsicas.
Problemas de Estado Plano, comparao de resultado analticos
com resultados numricos.
Mtodos e Algoritmos geradores de malhas.
Computao grfica aplicada a engenharia.
1.2
Organizao do Texto
O desenvolvimento deste trabalho divide-se em quatro captulos, descritos
a seguir.
9
10
2.1
Anlise Estrutural
Segundo Martha (2010) o projeto estrutural tem por objetivo propor e
11
Aproximaes no MEF
Problema Real
Modelo Fsico
Erro de modelagem
Modelo Fsico
Modelo Matemtico
Erro de aproximao
Modelo Matemtico
Modelo Numrico
Erro de discretizao
Modelo Numrico
Modelo Computacional
Erro numrico
Um problema de engenharia corresponde ao problema real, sendo este
representado atravs um modelo fsico, um modelo simplificado da realidade. O
modelo fsico ter uma representao matemtica baseada em teorias e hipteses
que representam os fenmenos do sistema. Tal representao chamada de modelo
matemtico ou modelo estrutural, como por exemplo, o uso da Teoria de EulerBernoulli para uma viga. Para Martha (2010), a elaborao do modelo estrutural uma
das mais importantes na anlise estrutural e pode ser bastante complexa dependendo
do tipo de estrutura.
O modelo matemtico necessita de uma aproximao numrica para sua
resoluo, trata-se de um problema complexo. Tal aproximao denominada de
modelo numrico. A passagem do modelo matemtico para o modelo numrico
chama-se discretizao, nesta etapa [...] o comportamento analtico do modelo
estrutural substitudo por um comportamento discreto, em que solues analticas
12
2.2
Surgimento do MEF
Para facilitar o estudo do comportamento das estruturas, costuma-se
2.3
14
15
como:
conduo
de
calor,
conduo
de
eletricidade,
campos
2.4
Formulao Matemtica
O processo de desenvolvimento do MEF exige um vasto conhecimento
16
ii.
U 0m U 0m 1 U 0m 2 erroU 0m ( m )
Os
termos U 0
1
m
e U0
2
m
so
denominados
(2.1)
respectivamente
de
17
U 0 1 m ( m ) m
m
1
2
U 0 2 m m
m
(2.2)
U m
0m
dVm
(2.3)
U U m
(2.4)
m 1
Logo:
n
m 1
m 1
m 1
U U m1 U m 2 erroU m ( m )
(2.5)
U U 1 U 2 erroU
Onde:
n Vm
U m ( m ) m dVm
1
m 1 0
n Vm
U
2
m 1 0
(2.6)
1
m m dVm
2
U 1 mt m dVm
m 1 0
n Vm
U
2
m 1 0
(2.7)
1
mt m dVm
2
18
(2.8)
Wi1 fi di
1
2
Wi 2 fi di
(2.9)
19
W Wi
(2.10)
i 1
Logo:
n
i 1
i 1
11
W wi1 U i 2 erroWi ( d i )
(2.11)
W W 1 W 2 erroW
Onde:
n
W 1 f i d i
i 1
n
1
W fi di
i 1 2
(2.12)
W 1 f t d
1
2
W 2 f t d
(2.13)
U 1 W 1
(2.14)
m 1 0
t
m
m dVm f t d
(2.15)
A matriz de rigidez para um elemento finito pode ser obtida por meio da
equao acima. As grandezas virtuais m e d so relacionadas por equaes de
20
V1
t
t
t
t
1 1dV1 u1 q1dV1 u1 p1d 1 d1 f1
0
(2.16)
u N d
B d
(2.17)
21
uNd
Bd
C C B d
(2.18)
d t Bt C B dV d d t N t qdV N t pd f
0
(2.19)
Simplificando:
K d fq f p f
(2.20)
Onde:
K B t C B dV
V
f q N t q dV
(2.21)
f p N t p d
2.5
Figura 2.5 Chapa plana de espessura t com plano mdio xy . Adaptada de Vaz (2011).
u
x
v
y
y
u v
xy
x y
(2.22)
x x
y 0
xy
u
y v
(2.23)
L u
(2.24)
x
E
y x
E
(2.25)
y
x
E
E
y x y
E
E
(2.26)
24
Sendo que seus ngulos retos iro se fechar ou abrir de acordo com a
equao:
xy xy
2 1
E
xy
G
(2.27)
xy
1
2
x
0 y
2 1 xy
0
(2.28)
Resumidamente:
(2.29)
D1 C
(2.30)
25
1
E
C
1
1 2
0 0
1 / 2
0
(2.31)
y
z
y
E
y
E
z
E
xy xy
z
E
(2.32)
E
E
E
2 1
E
z x y
(2.33)
xy
1
0
0 x
0 y
2 xy
(2.34)
Resumidamente:
(2.35)
26
1
E
C
1
1 1 2 0
0
2.6
1 2 / 2
0
(2.36)
Elementos Isoparamtricos
Como demostrado nas equaes (2.21), para calcular os coeficientes da
problema.
Entretanto,
isso
dificulta
praticamente
impossibilita
uma
x( , ) N j ( , ) x j
j 1
n4
y ( , ) N j ( , ) y j
(2.37)
j 1
27
f q N t ( , )q dV
(2.38)
f p N t ( , ) p d
dV t det J d d
(2.39)
B t ( , )C B( , ) t det J d d
(2.40)
28
z
Figura 2.8 Elemento CST. Adaptada de (RIBEIRO, 2004).
29
1P
P23
;
2 P
P31
;
3 P
P12
(2.41)
1 2 3 1
(2.42)
1 1 x 1 y
2
2 x 2 y
2 2
2
3 x 3 y
3 3
2
(2.43)
onde:
i x j yk xk y j
i y j yk
(2.44)
i xk x j
Desta forma a geometria do elemento CST pode ser descrita como:
x N1 x1 N 2 x2 N3 x3
(2.45)
y N1 y1 N 2 y2 N3 y3
Com:
N1 1;
N 2 2 ;
N 3 3
(2.46)
(2.47)
L u , obtm-se:
x, y L N x, y d
(2.48)
30
N1 x, y
B
0
N x, y
1
x
0
N1 x, y
B L N x, y
N 2 x, y
0
x
N1 x, y
y
N 2 x, y
N 3 x, y
x
N 2 x, y
N 2 x, y
N 3 x, y
N 3 x, y (2.49)
y
N 3 x, y
y
0
31
3.1
32
Como
vantagens,
e otimizam
33
34
35
3.2
Malhas Triangulares
As malhas triangulares so largamente utilizadas por se adaptarem mais
36
3.3
37
Figura 3.9 Malha Gerada pelo mtodo da colocao dos ns. (AKEL JUNIOR, 2008)
38
ii.
iii.
39
Figura 3.11 Exemplo do Mtodo Avano da Fronteira. (AKEL JUNIOR, 2008 p. 24)
De acordo com Akel Junior (2008) este mtodo tambm muito utilizado
no refinamento das malhas. Ele torna fcil o controle da posio dos ns internos do
domnio, o que permite inserir, mover ou remover elementos especficos. Em
contrapartida, ele necessita de algoritmos de ordenao e buscas para trabalhar de
forma mais eficiente.
No elemento CST essa distoro pode ser calculada pela relao entre o
raio do crculo inscrito (r) e o raio do crculo circunscrito (R) do tringulo real. A razo
r/R alcana seu valor mximo, 1/2, quando o triangulo equiltero. Multiplicando essa
razo por 2, encontramos uma razo dita normalizada. Assim quando for zero pior
caso ou 1 melhor caso (AKEL JUNIOR, 2008).
2r
R
(3.1)
Laplaciana. Essa tcnica consiste em deslocar cada n para a posio mdia dos
vrtices em sua volta, ou desloc-lo para o centro do polgono formado por seus
vizinhos (Figura 3.13).
pL
n 1
pn
k
(3.2)
42
4.1
Ambiente de Desenvolvimento
O gerador de malhas foi implementado em ambiente MATLAB, verso
R2013a, pois, entres outros motivos, o MATLAB uma plataforma que se destaca
pela simplicidade com que efetua operaes matriciais e plotagem de grficos, alm
de possuir uma grande variedade de classes e funes nativas.
Uma dessas classes chama-se DelaunayTriangulation. Ela possui funes
que cria e manipula triangulaes. Para gerao de uma malha utilizando a classe
DelaunayTriangulation necessita-se, basicamente, apenas inserir as coordenadas
cartesianas dos Ns.
4.2
Algoritmos e Implementao
Os conceitos e mtodos apresentados no captulo anterior so a base dos
Entrada de Dados
Informando a Geometria
dos Domnios
Criando Ns no contorno
dos Domnios
Gerando as malhas
Integrando as malhas
Suavizando e Refinando as
malhas
44
nE 1
h
(4.1)
46
dx
2dy
2
dy
tg 60
3
(4.2)
7
Figura 4.7 Malha gerada apenas com os ns da regio interna e os vrtices do domnio.
47
48
Como era esperado, esta primeira malha possui uma excelente qualidade
nos elementos internos, entretanto no se observa os mesmo resultados no
elementos prximos as bordas.
Para resolver este problema, aplicou-se a suavizao Laplaciana com o
avano da fronteira de trs frentes de gerao. Este refinamento melhorou
consideravelmente os resultados:
49
4.3
50
PL3
3EI
(4.3)
(4.4)
51
Figura 4.14 Deformaes obtidas atravs de anlise realizada com uma malha criado pelo
software gerador.
52
P
8
3
80000 kN / m
be
0, 6 0, 005
P
8
2666, 67 kN / m
be
0, 6 0, 005
m,n 3
p,q
(4.5)
Figura 4.16 Resultado das tenses principais nos pontos p e q (eixo y) em anlise feita com o
Abaqus.
Figura 4.17 Resultado das tenses principais nos pontos m e n (eixo x) em anlise feita com
o Abaqus.
53
Figura 4.18 Condies de contorno do problema aplicadas na malha criada com software
gerador.
54
Concluso
A gerao automtica de malhas hoje um dos principais alvos de estudo
e aperfeioamento a respeito do MEF. Para um primeiro trabalho, o software aqui
desenvolvido correspondeu perfeitamente as expectativas, criando elementos de boa
qualidade, respeitando as condies de contorno e permitindo diferentes graus de
refinamento, cabendo ao usurio apenas informar as geometrias dos domnios.
O programa pode ser facilmente modificado e ampliado. Isso permite que
futuras melhorias possam ser implementadas, tais como:
55
Referncias Bibliogrficas
AKEL JUNIOR, Alberto Fares. 2008. Estudo Sobre Gerao De Malhas de
Elementos Finitos Para A Modelagem Numrica Do Mtodo MCSEM. TCC. Belm : UFPA,
2008.
AZEVEDO, lvaro F. M. 2003. Mtodo dos Elementos Finitos. [Online]
Faculdade de Engenharia da Universidade do Porto, 2003. [Citado em: 1 de Junho de 2012.]
http://www.fe.up.pt/~alvaro.
DELAUNAY, Boris Nikolajewitsch. 1932. 1932.
FELIPPA, Carlos A. 2004. Introduction to Finite Elements Methods. Notas de
aula da disciplina Introduction to Finite Elements Methods (ASEN 5007). [Online] Aerospace
Engineering Sciences Department, University of Colorado at Boulder, 2004. [Citado em: 1 de
Setembro de 2012.] http://www.colorado.edu/engineering/CAS/courses.d/IFEM.d/Home.html.
GONALVES, Nelson Daniel Ferreira. 2007. Mtodo dos Volumes Finitos em
Malhas No-Estruturadas. Tese de Mestrado. Porto, Portugal : Faculdade de Cincias da
Universidade do Porto, 2007.
MARTHA, Luiz Fernando. 1994. Notas de Aula do Curso CIV2118 - Metodo dos
Elementos Finitos. Rio de Janeiro : PUC-Rio, Departamento de Engenharia Civil, 1994.
. 2010. Anlise de estruturas: conceitos e mtodos bsicos. Rio de Janeiro :
Elsevier, 2010.
MATLAB. 2013. Centro de Documentao, MATLAB R2013a. 2013.
RIBEIRO, Fernando L B. 2004. Introduo ao Mtodo dos Elementos Finitos.
Notas de Aula. Rio de Janeiro : COPPE / UFRJ - Programa de Engenharia Civil, 2004.
SOTELITO, Elisa D. 2013. Notas de Aula do Curso CIV 2195 A Prtica da
Modelagem e Simulao de Sistemas Estruturais em Engenharia Civil. Rio de Janeiro : PUCRio, Departamento de Engenharia Civil, 2013.
SOUZA, Remo Magalhes de. 2003. O Mtodo dos Elementos Finitos Aplicado
ao Problema de Conduo de Calor. Notas de Aula. Belm : UFPA. NICAE (Ncleo de
Instrumentao e Computao Aplicada Engenharia), 2003.
56
57
ANEXOS
A - MALHAS GERADA EM DIFERENTE DOMNIOS
A1 Seo Circular
A2 Seo L
58
A3 Seo T
A4 Seo I
59
A1 Seo U
60
function main
clc
clear all
close all
%Funo de entrada, recebe a geometria do domnio e o nvel de refinamento
[dmn] = input();
%Coordenadas e valores mximos e mnimos das geometrias dos domnios
xMIN = min( dmn.coords(:, 1) );
xMAX = max( dmn.coords(:, 1) );
yMIN = min( dmn.coords(:, 2) );
yMAX = max( dmn.coords(:, 2) );
xMIN = xMIN - 0.01 * xMAX;
xMAX = xMAX + 0.01 * xMAX;
yMIN = yMIN - 0.01 * yMAX;
yMAX = yMAX + 0.01 * yMAX;
h
= abs( yMAX - yMIN );
b
= abs( xMAX - xMIN );
maxEixos = max( dmn.nEixos' );
%Nmero de Eixos horizontais mximos
dY = h / (maxEixos - 1);
dX = (dY * 2) / sqrt(3);
dM = (dY + dX) / 2;
nNoEixo = round( b / dX );
%Nmero de ns no Eixo
nLinha = nNoEixo * maxEixos;
%Nmero de linhas da matriz de coords
coords = zeros(nLinha, 2, dmn.nDom); %Pr alocao da matriz de coords
nLC
= zeros(1,1,dmn.nDom);
%Controle de linhas matriz coords
nLV
= zeros(1,1,dmn.nDom);
%Controle de linhas matriz de contornO
%=========================================================================
%Insero dos ns internos
for nD = 1 : dmn.nDom;
dy = h / (dmn.nEixos(1, nD) - 1);
dx = (dy * 2) / sqrt(3);
nNoEixo = round( b / dx );
nLC(1, 1, nD) = 0;
y = yMIN;
for i = 1 : dmn.nEixos(1, nD);
y = y + dy;
if mod(i, 2) == 1
%Linhas impares
for j = 0 : nNoEixo;
if j == 0
x = xMIN;
else
if j == nNoEixo
x = xMAX;
else
x = x + dx;
end
end
nLC(1, 1, nD) = nLC(1, 1, nD) + 1;
coords (nLC(1, 1, nD), 1, nD) = x;
coords (nLC(1, 1, nD), 2, nD) = y;
end
else
%Linhas pares
61
for j = 0 : nNoEixo + 1;
if j == 0
x = xMIN;
nLC(1, 1, nD) = nLC(1, 1,
coords (nLC(1, 1, nD), 1,
coords (nLC(1, 1, nD), 2,
x = x + (dx / 2);
else
if j == nNoEixo + 1
x = xMAX;
else
x = x + dx;
end
end
nLC(1, 1, nD) = nLC(1, 1, nD)
coords (nLC(1, 1, nD), 1, nD)
coords (nLC(1, 1, nD), 2, nD)
end
nD) + 1;
nD) = x;
nD) = y;
+ 1;
= x;
= y;
end
end
end
%=========================================================================
%Insero dos ns de contorno
n = 0;
nContorno = 0;
coordsContorno = zeros(1, 2, dmn.nDom);
for nD = 1 : dmn.nDom;
nLV(1,1, nD) = 1;
n = n + 1;
coordsContorno (nLV(1, 1, nD), 1, nD) = dmn.coords(n,
1);
coordsContorno (nLV(1, 1, nD), 2, nD) = dmn.coords(n,
2);
nV = dmn.nVertices(1, nD);
for i = 1 : nV;
xi = dmn.coords(n,
1);
yi = dmn.coords(n,
2);
xj = dmn.coords(n+1, 1);
yj = dmn.coords(n+1, 2);
n = n + 1;
l = sqrt((xj - xi)^2 + (yj - yi)^2);
npontos = round( l / dM );
dxi = (xj - xi) / (npontos);
dyi = (yj - yi) / (npontos);
for np = 1 : npontos;
str = num2str(xi + (dxi * np));
x
= str2num(str);
str = num2str(yi + (dyi * np));
y
= str2num(str);
nLV(1,1, nD) = nLV(1,1, nD) + 1;
coordsContorno (nLV(1, 1, nD), 1, nD) = x;
coordsContorno (nLV(1, 1, nD), 2, nD) = y;
end
end
nContorno = nContorno + nLV(1,1, nD);
end
contorno = zeros(nContorno, 2);
inicio = 1;
fim
= 0;
for nD = 1 : dmn.nDom;
fim = fim + nLV(1, 1, nD);
contorno(inicio:fim, :) = coordsContorno( 1:nLV(1, 1, nD), :, nD );
inicio = fim + 1;
end
coordsNodais = unique(contorno,'rows');
nContorno = numel(coordsNodais(:, 1));
62
%=========================================================================
%Gerao da malha
for nD = 1 : dmn.nDom;
m = 0;
D = [coordsContorno( 1:nLV(1, 1,nD), :, nD ); coords( 1:nLC(1, 1, nD), :, nD
)];
nump = nLV(1, 1, nD) + 1;
C = [(1:(nump-3))' (2:nump-2)'; (nump-2) 1];
DT = delaunayTriangulation( D, C );
io = isInterior(DT);
temp = DT.ConnectivityList(io, :);
noUt = [ temp(:, 1); temp(:, 2); temp(:, 3)];
noUt = unique(noUt,'rows');
temp = zeros(1,2);
for i = nLV(1, 1, nD) : numel(noUt);
m = m + 1;
temp(m, :) = DT.Points(noUt(i), :);
end
coordsNodais = [coordsNodais; temp];
end
inicio = 1;
fim = 0;
for nD = 1 : dmn.nDom;
D = [coordsContorno( 1:nLV(1, 1, nD), :, nD ); coordsNodais];
nump = nLV(1, 1, nD) + 1;
C = [(1:(nump-3))' (2:nump-2)'; (nump-2) 1];
DT = delaunayTriangulation( D, C );
io = isInterior(DT);
conectTemp = DT.ConnectivityList(io, :);
temp = zeros(nContorno, 1);
for i = 1 : nContorno;
no = DT.Points(i,:);
for j = 1 : nContorno;
if no(1, 1) == coordsNodais(j, 1)
if no(1, 2) == coordsNodais(j, 2)
temp(i) = j;
break;
end
end
end
end
for i = 1 : numel(conectTemp(:,1));
for j = 1 : 3;
no = conectTemp(i, j);
if no < nContorno + 1
for k = 1 : nContorno;
if no == k
conectTemp(i, j) = temp(k);
break;
end
end
end
end
end
fim = fim + numel(conectTemp(:, 1));
conect(inicio:fim, :) = conectTemp(:, :);
inicio = fim + 1;
[coordsNodais] = suavizar(coordsNodais, conectTemp, nContorno);
end
printOK(b, h, xMAX, xMIN, yMAX, yMIN, conect, coordsNodais)
return
63
%=========================================================================
%Suavizao da Malha
function [coordsNodais] = suavizar(coordsNodais, conect, nContorno)
for nSuavizar = 1: 3; %nmero de suavizaes
noContorno = zeros(nContorno, 1);
for i = 1 : nContorno
noContorno(i, 1) = i;
end
noFronteira = noContorno;
for ff = 1 : 3; %nmero de frente de fronteira
m = 0;
elemSuavizar = zeros(1,1);
noSuavizar = zeros(1,1);
for k = 1 : numel(noFronteira(:,1))
for i = 1 : numel(conect(:,1));
for j = 1 : 3;
no = conect(i, j);
if no == noFronteira(k)
m = m + 1;
elemSuavizar(m, 1) = i;
break;
end
end
end
end
elemSuavizar = unique(elemSuavizar,'rows');
noFronteira = [noContorno; noFronteira];
noFronteira = unique(noFronteira,'rows');
m = 0;
for i = 1 : numel(elemSuavizar(:,1));
elem = elemSuavizar(i);
for j = 1 : 3;
no = conect(elem, j);
for k = 1 : numel(noFronteira(:,1))
if no == noFronteira(k)
aux = 0;
break;
else
aux = 1;
end
end
if aux == 1
m = m + 1;
noSuavizar(m, 1) = no;
end
end
end
if noSuavizar(1,1) == 0;
break;
end
noFronteira = noSuavizar;
noSuavizar = unique(noSuavizar,'rows');
for k = 1 : numel(noSuavizar(:,1));
m = -1;
noVizinho = zeros(1,1);
for i = 1 : numel(conect(:,1));
for j = 1 : 3;
if noSuavizar(k) == conect(i, j)
m = m + 2;
if j == 1
noVizinho( m, 1) = conect(i,
noVizinho(m+1, 1) = conect(i,
elseif j == 2
noVizinho( m, 1) = conect(i,
noVizinho(m+1, 1) = conect(i,
2);
3);
1);
3);
64
elseif j == 3
noVizinho( m , 1) = conect(i, 1);
noVizinho(m+1, 1) = conect(i, 2);
end
break;
end
end
end
noVizinho = unique(noVizinho,'rows');
x = 0;
y = 0;
n = numel(noVizinho(:,1));
for i = 1 : n;
x = x + coordsNodais(noVizinho(i), 1);
y = y + coordsNodais(noVizinho(i), 2);
end
x = x / n;
y = y / n;
coordsNodais(noSuavizar(k), 1) = x;
coordsNodais(noSuavizar(k), 2) = y;
end
end
end
return
%=========================================================================
%Desenhar Malha
function printOK(b, h, xMAX, xMIN, yMAX, yMIN, conect, coordsNodais)
figure;
triplot(conect, coordsNodais(:,1), coordsNodais(:,2), 'k');
hold off
lado
= max([b,h]);
delta = lado/40;
axis equal
axis ([xMIN-delta, xMAX+delta, yMIN-delta, yMAX+delta]);
return
%=========================================================================
% ENTRADA DE DADOS DOS EXEMPLOS DO ANEXO A
function [dmn] = input()
dmn.nDom = 1;
% Nmero de Domnios
dmn.nEixos(1) = 20;
% Nmero de eixos de refinamento
% Seco circular
dmn.coord_1 = zeros(1,2);
r = 20;
for i = 0 : 36
alfa = i*10;
rad = pi * alfa / 180;
dmn.coord_1(i+1, 1) = r * cos(rad);
dmn.coord_1(i+1, 2) = r * sin(rad);
end
% Seco L
dmn.coord_1 = zeros(1,2);
dmn.coord_1 = [ 0
0;
20
0;
20
10;
10
10;
10
20;
0
20;
0
0];
% Seco T
65
dmn.coord_1 = zeros(1,2);
dmn.coord_1 = [ 7
0;
14
0;
14
14;
21
14;
21
21;
0
21;
0
14;
7
14;
7
0];
% Seco I
dmn.coord_1 = zeros(1,2);
dmn.coord_1 = [ 0
0;
21
0;
21
7;
14
7;
14
14;
21
14;
21
21;
0
21;
0
14;
7
14;
7
7;
0
7;
0
0];
% Seco U
dmn.coord_1 = zeros(1,2);
dmn.coord_1 = [ 0
0;
21
0;
21
21;
14
21;
14
7;
7
7;
7
21;
0
21;
0
0];
%=========================================================================
dmn.coords = [dmn.coord_1]
dmn.nVertices(1) = numel( dmn.coord_1(:, 1)) - 1; %Nmero de Vrtices subdominio 1
dmn.mat(1, :) = [2.4e7 0.15
0.3]; %Modulo de Elasticidade, Poisson, Espessura,
return
66