| | | | |

2.5 Fundamentos da análise de elementos finitos

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

Em revisão

2.5.1 Existência e unicidade

Em revisão

Teorema 2.5.1.

(Matriz positiva definida) A matriz de rigidez é positiva definida.

Demonstração.

A matriz de rigidez A=[a(φj,φi)]ij=0ni1 é obviamente simétrica. Além disso, para todo 𝝃ni, 𝝃0, temos

𝝃TA𝝃 =i,j=0ni1ξja(φj,φi)ξi (2.56)
=i,j=0ni1ξjΩφjφidxξi (2.57)
=Ω(j=0ni1ξjφj)(i=0ni1ξiφi)dx (2.58)
=(j=0ni1ξjφj)L2(Ω)2. (2.59)

Portanto, 𝝃TA𝝃0 e é nulo se, e somente se, v=j=0ni1ξjφj for constante. Como vVh,0, temos que v constante implica v0, mas então 𝝃=0, o que é uma contradição. Logo, 𝝃TA𝝃>0 para todo 𝝃ni, 𝝃0. ∎

Teorema 2.5.2.

(Existência e unicidade) O problema de elementos finitos (2.40) tem solução única.

Demonstração.

O problema de elementos finitos (2.40) se resume a resolver o sistema linear A𝝃=𝒃. Do Teorema 2.5.1, temos que A é uma matriz definida positiva e, portanto, invertível. Daí segue, imediatamente, que o problema (2.40) tem solução única. ∎

2.5.2 Estimativa a priori do erro

Em revisão

Teorema 2.5.3.

(Ortogonalidade de Galerkin) A solução uh do problema de elementos finitos (2.40) satisfaz

a(uuh,vh)=0,vhVh,0, (2.60)

onde u é a solução do problema fraco (2.35).

Demonstração.

Segue, imediatamente, do fato de que Vh,0V0 e, portanto,

a(u,vh)=L(vh),vhVh,0, (2.61)

bem como

a(uh,vh)=L(vh),vhVh,0. (2.62)

Definição 2.5.1.

(Norma da energia.) Definimos a norma da energia por

|v|:=(Ωvvdx)1/2=vL2(Ω), (2.63)

para todo vV0.

Teorema 2.5.4.

(Melhor aproximação.) A solução uh do problema de elementos finitos satisfaz

|uuh||uvh|,vhVh,0. (2.64)
Demonstração.

Observando que uuh=uvh+vhuh e usando a ortogonalidade de Galerkin (Teorema 2.5.3), temos:

|uuh|2 =Ω(uuh)(uuh)dx (2.65)
=Ω(uuh)(uvh)dx+Ω(uuh)(vhuh)dx (2.66)
=Ω(uuh)(uvh)dx (2.67)
=(uuh)L2(Ω)2(uvh)L2(Ω)2 (2.68)
=|uuh|2|uvh|. (2.69)

Teorema 2.5.5.

(Estimativa a priori do erro.) A solução uh do problema de elementos finitos (2.40) satisfaz

|uuh|2CK𝒦hK2D2uL2(K)2. (2.70)
Demonstração.

O resultado segue do Teorema da melhor aproximação (Teorema 2.5.4) e da estimativa do erro de interpolação (Proposição 2.2.2), pois

|uuh|2 |uπu|2 (2.71)
=D(uπu)L2(Ω)2 (2.72)
CK𝒦hK2D2uL2(Ω)2. (2.73)

Para obtermos uma estimativa na norma L2(Ω), podemos usar a desigualdade de Poincaré.

Teorema 2.5.6.

(Desigualdade de Poincaré.) Seja Ω2 um domínio limitado. Então, existe uma constante C=C(Ω), tal que

vL2(Ω)CvL2(Ω),vV0. (2.74)
Demonstração.

Se Ω tem contorno suficientemente suave, então existe ϕ tal que Δϕ=1 em Ω com supxΩ|ϕ|<C. Com isso, temos

vL2(Ω)2 =Ωv2𝑑x (2.75)
=Ωv2Δϕ𝑑x. (2.76)

Agora, usando o Teorema de Green e a desigualdade de Cauchy-Schwarz, obtemos

vL2(Ω)2 =Ωv2nϕds+Ωv2ϕdx (2.77)
=Ω2vvϕdx (2.78)
supxΩ|ϕ|vL2(Ω)vL2(Ω). (2.79)

Com a desigualdade de Poincaré e da estimativa a priori do erro (Teorema 2.5.5), temos

uuhL2(Ω)C|uuh|ChD2uL2(Ω), (2.80)

onde h=maxK𝒦hK. Entretanto, esta estimativa pode ser melhorada.

Teorema 2.5.7.

(Estimativa ótima a priori do erro.) A solução uh do problema de elementos finitos (2.40) satisfaz

uuhL2(Ω)Ch2D2uL2(Ω). (2.81)
Demonstração.

Seja e=uuh o erro e ϕ a solução do problema dual (ou problema adjunto)

Δϕ =e,xΩ (2.82)
ϕ =0,xΩ. (2.83)

Então, usando a fórmula de Green, a ortogonalidade de Galerkin e, então, a desigualdade de Cauchy-Schwarz, temos

e2L2(Ω) =ΩeΔϕ𝑑x (2.84)
=ΩeϕdxΩenϕds (2.85)
=Ωe(ϕπϕ)dx (2.86)
eL2(Ω)(ϕπϕ)L2(Ω). (2.87)

Da estimativa a priori (2.80) (que segue do Teorema 2.5.5) temos

eL2(Ω)ChD2uL2(Ω). (2.88)

Agora, da regularidade elíptica D2ϕL2(Ω)CΔϕL2(Ω) [Evans1998a] e da estimativa do erro de interpolação (Proposição 2.2.2), temos

(ϕπϕ)L2(Ω)ChD2ϕL2(Ω)ChΔϕL2(Ω)CheL2(Ω). (2.89)

Então, temos

eL2(Ω)2ChD2uL2(Ω)×CheL2(Ω). (2.90)

Exemplo 2.5.1.

Consideremos o seguinte problema de Poisson

Δu =2(x02x0)2(x12x1),xΩ:=(0,1)×(0,1), (2.91)
u =0,xΩ. (2.92)

A solução analítica deste problema é u(x)=(x02x0)(x12x1). Aqui, obtemos aproximações por elementos finitos uh usando uma malha triangular uniforme n×n nodos, i.e. h=1/n. A Tabela 2.2 mostra os valores dos erros uuhL2(Ω) para diferentes valores de h.

Tabela 2.2: Erros de aproximações por elementos finitos referente ao problema dado no Exemplo 2.5.1.
#nodos h uuhL2(Ω)
10×10 1e1 9.29e4
20×20 5e2 2.34e4
100×100 1e3 9.40e6

Com o FEniCS, podemos computar a solução deste problema e o erro na norma L2 com o seguinte código:

from __future__ import print_function, division
from fenics import *
import numpy as np
import matplotlib.pyplot as plt

# malha
Nx = 100
Ny = 100
mesh = UnitSquareMesh(Nx,Ny)

# espaco
V = FunctionSpace(mesh, ’P’, 1)

# cond. contorno
def boundary(x,on_boundary):
    return on_boundary

bc = DirichletBC(V,Constant(0.0),boundary)

# f
f = Expression(’-2*(x[1]*x[1]-x[1])-2*(x[0]*x[0]-x[0])’,degree=2)

# MEF problem
u = TrialFunction(V)
v = TestFunction(V)
a = dot(grad(u), grad(v))*dx
L = f*v*dx

#computa a sol
u = Function(V)
solve(a == L, u, bc)

# sol. analitica
ua = Expression(’x[0]*(x[0]-1)*x[1]*(x[1]-1)’,degree=4)

# erro norma L2
erro_L2 = errornorm(ua, u, ’L2’)
print("||u-u_h||_L2 = %1.2E\n" % erro_L2)

# exportanto em vtk
vtkfile = File(’u.pvd’)
vtkfile << u

2.5.3 Estimativa a posteriori

Em revisão

Para obtermos uma estimativa a posteriori vamos precisar da chamada desigualdade do traço.

Teorema 2.5.8.

(Desigualdade do traço) Seja Ω2 um domínio limitado com fronteira Ω convexa e suave. Então, existe uma constante C=C(Ω), tal que para qualquer vV temos

vL2(Ω)C(vL2(Ω)2+vL2(Ω)2)1/2. (2.93)
Demonstração.

Veja [Larson2013a]. ∎

Teorema 2.5.9.

(Estimativa a posteriori) A solução uh do problema de elementos finitos (2.40) satisfaz

|uuh|2CK𝒦ηK2(uh), (2.94)

onde o elemento residual ηK(uh) é definido por

ηK(uh)=hKf+ΔuhL2(K)+12hK1/2[nuh]L2(KΩ). (2.95)

Aqui, [nuh]|K denota o salto na derivada normal de uh nos lados interiores dos elementos de 𝒦. Além disso, lembremos que Δuh=0.

Demonstração.

Denotando e:=uuh o erro entre a solução do problema forte e a solução de elementos finitos, temos

|||e||||2 =eL2(Ω)2 (2.96)
=Ωeedx (2.97)
=Ωe(eπe)dx. (2.98)

Nesta última equação, temos usado a ortogonalidade de Galerkin (Teorema 2.5.3). Daí, temos

Ωe(eπe)dx =K𝒦Ke(eπe)dx (2.99)
=K𝒦KΔe(eπe)𝑑x
+Kne(eπe)𝑑s, (2.100)
=K𝒦K(f+Δuh)(eπe)𝑑x
+KΩne(eπe)𝑑s, (2.101)

uma vez que Δe|K=f+Δuh|K e, ambos, e e πe se anulam em Ω.

Para computarmos o segundo termo do lado direito da ultima equação, observamos que o erro em lado E recebe contribuições dos dois elementos K± que compartilham E. Com isso, temos

K+Kne(eπe)𝑑s=E (n+e+(e+πe+)
+ne(eπe))ds, (2.102)

onde utilizamos a notação v±=v|K±. Lembremos que o erro e é contínuo e, portanto, (e+πe+)|E=(eπe)|E. Ainda, u é contínuo, logo (n+u++nu)|E=0. Entretanto, uh|E não é geralmente contínuo, sendo apenas constante por partes. Assim sendo e denotando o salto [nuh]:=(n+uh++nuh), temos

E(n+e+(eπe) +ne(eπe))ds
=E[nuh](eπe)𝑑s. (2.103)

Com isso, temos

K𝒦KΩne(eπe)𝑑s=EIE[nuh](eπe)𝑑s, (2.104)

onde I é o conjunto dos lados interiores na triangularização 𝒦. Logo, retornando a (2.101), obtemos

|e|2 =K𝒦K(f+uh)(eπe)𝑑x
12Kω[nuh](eπe)𝑑s. (2.105)

Nos resta, agora, estimarmos estes dois termos do lado direito.

A estimativa do primeiro, segue da desigualdade de Cauchy-Schwarz seguida da estimativa padrão do erro de interpolação, i.e.

K(f+Δuh)(eπe)𝑑x f+δuhL2(Ω)eπeL2(Ω) (2.106)
f+ΔuhL2(Ω)C×hKDeL2(Ω) (2.107)

Para estimarmos as contribuições dos lados, usamos a desigualdade do Traço[Larson2013a]

vL2(Ω)2C(hK1vL2(K)2+hKvL2(Ω)2). (2.108)

Com esta, a desigualdade de Cauchy-Schwarz e a estimativa padrão do erro de interpolação, temos

KΩ[nuh](eπe)𝑑s [nuh]L2(K)eπeL2(K) (2.109)
[nuh]L2(K)C(hK1eπeL2(K)2
+hKD(eπe)L2(K)2)1/2 (2.110)
[nuh]L2(K)C×hK1/2DeL2(K). (2.111)

Daí, a estimativa segue das (2.107) e (2.111). ∎


Envie seu comentário

As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!