Upload
sara-lourenco
View
265
Download
10
Embed Size (px)
DESCRIPTION
Aprenda MEF
Citation preview
Elementos Finitos
Tatiana Leone da Cunha Lara Alves de Oliveira Soares
Orientadores: Eduardo Gomes Dutra do Carmo Webe Joo Mansur
1 1
, ,
2
2 ;
2
2
2
2
2
1
coord[0], ., coord[15]
Nop[0][0] = 0
Nop[0][1] = 1
Nop[0][2] = 8
(do global para o local)
Nop[2][0] = 2
Nop[2][1] = 3
Nop[2][2] = 10
Nop[2][3] = 11
20 2
21 3
1 1
Polinmio de Lagrange nas coordenadas locais () ou naturais
Grau N
1 1
Linear
Grau 1
Quadrtico
Grau 2
Cbico
Grau 3
........
, , . , , 2, . ,
1; 1;2
11 1 1
N 1 = intervalos
1 1 2 1
1 1 2 1 3 1 . . . 1 1
.
Para L = 0,1,....,N ;
1
0, ;
0, 1, ,
Nmero de pontos L + 1;
Nmero de intervalos L + 1;
K pontos por intervalo;
Nop [e][1] , l = 0, 1, ..., N
Nop [e][0] = e
Nop [e][1] = e + 1
Nop [e][2] = L + eK + 1
Nop [e][3] = L + eK + 2 . . . Nop[e][i] = L + eK + (i 1) . . . Nop[e][K + 1] = L + eK + (K + 1 1) = L + eK + k = L + (e + 1)K
Coord [0][0] = x0
Coord [1][0] = x1 . . . Coord [i][0] = xi . . . Coord [L][0] = xL
0 0
1
.
.
. . . .
,,,
,,
1
, : , ,
, : , , ||
1
, ; ,
;
2. .
2 .
2
2, , 0
2
0
2 0
2 2
1 2
2.
2
,
Definio: Duas funes em , so ditas iguais quase em toda parte, ou
equivalentes, ou indistinguveis, se e somente se: 0
,
/
1
i. , 0
ii. , ,
iii. , 0
iv.
, , ,
| | || ||
| |
0
0
,,,
, ; e,
,
| |
Problema
Encontrar e ,,, que melhor aproxima na distncia , dada pela
equao 1.
,
resduo
, ,
(L = 9)
Nop [7][0] = 7
Nop [7][1] = 8
,
/
,
/
;
,
0, , 2
Minimizando , obtm-se:
0, , 1
0, , 1
,
0
1
1
2
0
1 2
Equao para 1, 2
1, , 2
Equao para um ponto vrtice interior
0 1
11 0
2 1
2
0
, ,
, ,
0
2
2
, ,
2
2
, ,
,
0
,
,
,
, ,
, , 0
0, , 1
0 0, , 1
0, , 1
, 0, , 1
0 00
0 ,0
0
0
0
,
,
,
,
, ,
,
,
, ,
0
0 0
0
0
,
,
,
,
,
0,
Soluo prescrita no n 0 no n
i sendo o n considerado
,
0, , 1 0
Controle para condies de contorno
0
1
2
3
0, , 1
0
0 0
0
0 1
0 0
1
0
0
0
1
1
0
,, , 1
60 7
61 10
602 11
63 12
5 5 6 0
2 10
0
1 2
65
0 /5
2 10
0
65
0
10 125 2 10
125
25
65
5
65
0
65
0 /10 125
25/10
125
0
65
5
65
0
0 /10
125
25/10
125
0 0 1
6
5 10 125
565
25/10
125
65
0
0 /10
125
25/10
125
0 0 1
1 6
5 10 125
565
25/
10.125
0 --[Varia i=0, NTPO-1
1--[Varia j=0, NPTO-1
0
Fim da variao 1
0
Fim da variao 0
1--[Varia el=0, NtotalElem
2--[Varia ipto=0, NptoElem[el]
3--[Varia jpto=0, NptoElem[el]
A [ipto] [jpto] =
M Nop[el] [ipto] Nop[el] [jpto]
A [ipto] [jpto] +
M Nop[el] [ipto] Nop[el] [jpto]
Fim da variao 3
B[ipto] =
b Nop[el] [ipto]
Fim da variao 2
Fim da variao 1
Matriz lgica de controle para implementar Solver operando com elementos no nulos da matriz
1 NcolNZeroDirDiago[NgrausLiberdade]
NgrausLiberadeNmero de Incgnitas por n x Nmero de Ns
2 NLinDepAbaixDiag[NgrausLiberdade]
ApontadorDirCol[eldiag][elcol]
eldiag = 0, ... , (NgrausLiberade-1)
elcol = 0, ... , (NcolNoZeroDirDiag[eldiag]-1)
Exemplo:
1 2 0 0 3 0 3 0 0 15 0 0 7 0 0 5 0 . . . 0 0 1 0 0
NcolNoZeroDirDiag[5] = 2
Diagonal[5] = 15
ApontadorDircol[5] [0] = 7
ApontadorDircol[5] [1] = 5
ApontadorAbaixo[eldiag][elLin]
eldiag = 0, ... , (NgrausLiberade-1)
ellin = 0, ... , (NlinDepAbaixDiag[eldiag]-1)
Exemplo:
1 0 2 0 1
1 0 2 3 4
0 0 13 0 0 5 7
0 0 0 14 0 1 0
0 0 0 0 15 1 1 0
0 0 0 1 0 16 0 1
0 0 0 0 0 0
0 0 0 2 0 0
0 0 0 0 0 0
Diagonal[2] = 0
NcolNoZeroDirDiag[2] = 3
NlinDepAbaixDiag[2] = 0
ApontadorDircol[2] [0] = 2
ApontadorDircol[2] [1] = 3
ApontadorDircol[2] [2] = 4
Diagonal[4] = 14
NcolNoZeroDirDiag[4] = 1
NlinDepAbaixDiag[4] = 2
ApontadorDircol[4] [0] = 1
ApontadorAbaixoLin[4] [0] = 1
ApontadorAbaixoLin[4] [1] = 2
Algoritmo para moldar o nmero de graus de liberdade
1--[Varia ipto = 0, (NumTotalPtoMalha-1)
2--[Varia igl = 0, (NumGLporN-1)
IP IP+1
LigaGL [IP] [0] = ipto
LigaGL [IP] [1] = igl
LigaInvGL [ipto] [igl] = IP
Fim da variao 2
Fim da variao 1
NtotalGrauLib = IP
Path de um nso elementos que contm o n
NelemContemPto[pto]
Pto = 0, ... (NumTotalPtoMalha-1)
1--[Varia ipto = 0, (NumTotalPtoMalha-1)
NelemContemPto[pto] = 0
Aux[pto] = -1
Fim da variao 1
2--[Varia elem = 0, (NtotalElem-1)
3--[Varia jpto = 0, NptoElem[elem]
NelemContemPto[Nop[elem] [jpto]]
NelemContemPto[Nop[elem] [jpto]]+1
Fim da variao 3
Fim da variao2
Exemplo:
Pto=0
NelemContemPto[0] = NelemContemPto[Nop[0] [0]]
0+1=1
Pto=1
NelemContemPto[1] = NelemContemPto[Nop[0] [1]]
0+1=1
NelemContemPto[1] = NelemContemPto[Nop[1] [0]]
1+1=1
....
ElemContemPto[pto] [OrdemElem]
OrdemElem = 0, ... , (NelemContemPto[pto]-1)
4--[Varia elem = 0, (NtotalElem1)
5--[Varia jpto = 0, (NptoElem[elem]-1)
Aux[Nop[elem] [jpto]=
Aux[Nop[elem] [jpto]]+1
PathPto[Nop[elem] [jpto]] [Aux[Nop[elem] [jpto]]] = elem
Fim da variao 5
Fim da variao 4
6--[Varia ig = 0, (NtotalGrauLib-1)
NcolNaoZeroDirDiag[ig] = 0
NlinDepAbaixDiag[ig] = 0
Aux[ig] = -1
Aux0[ig] = 0
Fim da variao 6
7--[Varia ig = 0, (NtotalGrauLib -1)
jpto = LigaGL[ig][0]
igl = LigaGL[ig][1]
8--[Varia jg = igl +1, (NumGlporNo -1)
NcolNaoZeroDirDiag[ig]=
NcolNaoZeroDirDiag[ig] +1
NlinDepAbaixDiag[ig]=
NlinDepAbaixDiag[ig]+1
Fim da variao 8
9--[Varia ordem = 0, (NelemContemPto[jpto] -1)
elem = PathPto[jpto] [ordem]
10--[Varia lpto = 0, (NptoElem[elem] -1)
Kpto = Nop[elem] [lpto]
11--[Se (Kpto > jpto e Aux[Kpto] = 0). Faa
12--[Varia lg = 0, (NumGLporNo -1)
NcolNaoZeroDirDiag[ig]=
NcolNaoZeroDirDiag[ig] +1
NlinDepAbaixDiag[ig]=
NlinDepAbaixDiag[ig] +1
Aux0[Kpto]=1
12a--[Varia ig=0, (NtotalGrauLib -1)
Aux0[ig] = 0
Fim da variao 12a
Fim da variao 12
Fim do teste 11
Fim da variao 10
Fim da variao 9
Fim da variao 7
13--[Varia ig = 0, (NtotalGrauLib -1)
jpto = LigaGL[ig][0]
igl = Liga[ig][1]
14--[Varia jg = igl +1, (NumGLporNo 1)
Aux[ig] = Aux[ig] + 1
ApontadorDirCol[ig] [Aux[ig]]=
LigaInvGL[jpto] [jg]
ApontadorAbaixoLin[ig] [Aux[ig]]=
LigaInvGL[jpto] [jg]
Fim da variao 14
15--[Varia ordem = 0, (NelemContemPto[jpto]-1)
Elem = PathPto[jpto] [ordem]
16--[Varia lpto = 0, (NptoElem[elem]-1)
Kpto = Nop[elem] [lpto]
17--[Se (kpto > jpto e Aux0[Kpto]=0). Faa
18--[Varia lg = 0, (NumGLporNo-1)
Aux[ig] = Aux[ig] + 1
ApontadorDirCol[ig] [Aux[ig]]=
LigaInvGL[kpto] [jg]
ApontadorAbaixoLin[ig] [Aux[ig]]=
LigaInvGL[kpto] [jg]
Aux0[ig] = 1
Fim da variao 18
Fim do teste 17
Fim da variao 16
Fim da variao 15
Fim da variao 13
19--[Varia id = 0, (NtotalGrauLib 1)
TermoIndep[id] = 0.0
MatDiag[id] = 0.0
20--[Varia icol = 0, (NcolNaoZeroDirDiag[id] -1)
MatDirCol[id] [icol] = 0.0
Fim da variao 20
21--[VariaiLin = 0, (NlinDepAbaixDiag[id] -1)
MatAbaixoLin[id] [Nlin] = 0.0
Fim da variao 21
Fim da variao 19
22--[Varia el = 0, (NtotalElem-1)
Ativa CalcMatElem(el, ... , MatEl)
Ativa CalcTermoIndElem(el, ... , TermoIndEl)
23--[Varia jpto = 0, (NptoElem[el] -1
jptoGlob = Nop[el] [jpto]
24--[Varia ig = 0, (NumGLporNo-1)
igrauGlob = LigaInvGL[jptoGlob][ig]
MatDiag[igrauGlob]
MatDiag[igrauGlob]+
MatEl[jpto] [ig] [jpto] [ig]
TermoIndep[igrauGlob]
TermoIndep[igrauGlob]+1
TermoIndEl[jpto] [ig]
25--[Varia Kpto = 0, (NptoElem[el]-1)
KptoGlob = Nop[el] [Kpto]
26--[Varia jg=0, (NelemGLporNo -1)
jgrauGlob = LigaInvGL[KptoGlob] [jg]
27--[Se jgrauGlob . igrauGlob. Faa
28--[Varia iaux=0, (NcolNaoZeroDirDiag[igrauGlob]-1)
29--[Se ApontadorDirCol[igrauGlob] [iaux]=jgrauGlob. Faa
V para 30
Fim do teste 29
Fim da variao 28
30--[MatDirCol[igrauGlob] [iaux]
MatDirCol[igrauGlob][iaux]+
MatEl[jpto][ig][kpto][jp]
31--[Varia iaux = 0, (NlinDepAbaixoDiag[igrauGlob]-1)
32--[Se ApontadorAbaixoLin[igrauGlob][iaux]=jgrauGlob. Faa V para 33
Fim do teste 32
Fim da variao 31
33--[MatAbaixoLin[igrauGlob] [iaux]
MatAbaixoLin[igrauGlob] [iaux]+
MatEl[kpto] [jg] [jpto] [ig]
Fim do teste 27
Fim da variao 26
Fim da variao 25
Fim da variao 24
Fim da variao 23
Fim da variao 22
Integrao Numrica
Integrao de Gauss
1
1
1 1
1 1 1
2 2
1 2
2
2
2
2
2
2
2
1 1
1 0 1
2 1 3 1
1 3 1
3 0.774596669241483 0.555615
0.0 0.888915
0.774596669241483
4 . . .
.
.
.
.
, ,
N pontos de Gauss, integram exatamente um polinmio de grau 2 1
2
2
2
2
mapeamento direto
, , ; 1, ,
~
Mapeamento inverso
, ,
det ~ 0 para todo ento o mapeamento direto inversvel.
:
*
|| , 0, 0
|det |
1 2
1, 11, 1
reas
, , ) = (,
Coordenadas reas
A012 = rea do tringulo 012
A01P = rea do tringulo 01P
A12P = rea do tringulo 12P
A20P = rea do tringulo 20P
1 1
)2L,1L ,0L
, ,L ;2L,1L ,0L
.
1 1
1 1
, *
, *
, |det |
, |det |
, det
,
1 1
1 1
,
0 ,
1 ,