Grupo1 - Dif em 2D: mudanças entre as edições

De Física Computacional
Ir para navegação Ir para pesquisar
Pedrow7 (discussão | contribs)
Sem resumo de edição
Pedrow7 (discussão | contribs)
Sem resumo de edição
Linha 268: Linha 268:
Foram obtidas as soluções mostradas nos gráficos a seguir, através do algoritmo de Gauss-Seidel.
Foram obtidas as soluções mostradas nos gráficos a seguir, através do algoritmo de Gauss-Seidel.


[[Arquivo:poisson0.png|450px|Solução do Problema de Contorno através do Método de Relaxação]]
[[Arquivo:poisson0.png|300px|Solução do Problema de Contorno através do Método de Relaxação]]
[[Arquivo:overrP0.png|450px|Solução do Problema de Contorno através do Método de Super Relaxação]]
[[Arquivo:overrP0.png|300px|Solução do Problema de Contorno através do Método de Super Relaxação]]




Linha 288: Linha 288:
Foram obtidas as soluções mostradas nos gráficos a seguir, através do algoritmo de Gauss-Seidel.
Foram obtidas as soluções mostradas nos gráficos a seguir, através do algoritmo de Gauss-Seidel.


[[Arquivo:poisson1.png|300px|Solução do Problema de Contorno através do Método de Relaxação]]
==== Exemplo 4 ====
[[Arquivo:overrP1.png|300px|Solução do Problema de Contorno através do Método de Super Relaxação]]
 
O segundo problema sobre a equação de Poisson, que é descrito pela seguinte expressão, para o domínio <math> \Omega = (0;L) \times (0;L) </math>:
 
<math>
\begin{cases}
\Delta u = -g(x, y) = -x*ye^{-(x^2 + y^2)}  \forall x,y \in \Omega \\
u(x,0) = Lsin(\frac{\pi x}{L})  \big( \forall x \in [0;L] \big)  \\
u(x, L) = Lcos(\frac{\pi x}{L}) \big( \forall x \in [0;L] \big) \\
u(0, y) = \frac{x^{2}}{L} \big( \forall y \in [0;L] \big) \\
u(L, y) = \frac{(L-x)^{2}}{L} \big( \forall y \in [0;L] \big) .
\end{cases}
</math>
 
Foram obtidas as soluções mostradas nos gráficos a seguir, através do algoritmo de Gauss-Seidel.
 
 
[[Arquivo:poisson2png|300px|Solução do Problema de Contorno através do Método de Relaxação]]
[[Arquivo:overrP2.png|300px|Solução do Problema de Contorno através do Método de Super Relaxação]]

Edição das 06h32min de 24 de outubro de 2017

A equação de Poisson:

Δu=2ux2+2uy2=g(x,y)

é uma equação do tipo Elíptica que representa fenômenos físicos estácionarios relacionados a Eletrostatica, Dinâmica de Fluídos e Transferência de Calor, se g(x,y)0 a equação passa a ser chamada de Equação de Laplace. Os problemas relacionados a equação de Laplace são estudados pela "Teoria do Potencial".

As soluções u=u(x,y) da Equação de Laplace são denominadas funções Harmônicas. Como já era de se esperar, os problemas mais habituais na vida de um físico, engenheiro ou matemático ao se depararem com uma EDP, são os problemas com Condições de Contorno, essencialmente será trabalhada a Condição de Dirichlet, que possui fronteiras conhecidas, tendo o seguinte formato:

{Δu=0para (x,y)Ω,u=f(x,y)para (x,y)Ω.

A equação de Poisson possui forma parecida para o Problema de Dirichlet, que fica:

{Δu=g(x)para (x,y)Ω,u=f(x,y)para (x,y)Ω.


Para tais problemas, estudaremos os métodos de Relaxação e Super-Relaxação para encontrar as soluções da Equação de Laplace no Quadrado de Lado L ({Ω=(0,L)×(0,L)}) e faremos (se possível) a solução númerica via Formula de Poisson para a Bola Unitária centrada na origem {Ω=1(0)}.

Quadrado de Lado L

Solução Analítica da Equação de Laplace

Seja o problema em Ω=(0,L)×(0,L), temos:

{Δu(x,y)=0 em Ωu(x,y)=f(x) em Ω

sendo

f(x)={f(0,y)=f1(y);f(L,y)=f2(y);f(x,0)=f3(x);f(x,L)=f4(x).

Separamos o problema geral de Dirchlet em 4 problemas "menores" tal que obtemos os problemas desde:

{Δu1(x,y)=0 em Ω;u1(0,y)=f1(y) para y(0,L);u1(L,y)=u1(x,0)=u1(x,L)=0,

...

até:

{Δu4(x,y)=0 em Ω;u4(x,L)=f4(x) para x(0,L);u4(0,y)=u4(L,y)=u4(x,0)=0.


Podemos então utilizar o Método da Separação de Variáveis para resolver os 4 "probleminhas" e, como a Equação de Laplace é linear, sua soma será a solução completa do Problema de Dirichlet. O método consiste em supor u(x,y)=ϕ(x)θ(y), para então, ao substituirmos na equação obtermos a seguinte expressão:

Δui=ϕi¨(x)θi(y)+ϕi(x)θi¨(y)=0

Podemos isolar as funções ϕi e θi, de fato ficamos com com duas relações que dependem de suas variações, portanto para elas serem sempre iguais, é necessário que sejam constantes (=λ):

ϕi¨ϕi=θi¨θi=λ

Assim obtemos 2 EDOs de segunda ordem, que podem ser resolvidas pelo Método dos Coeficientes a Determinar. Como não é objetivo aqui realizar cálculos analíticos (especialmente "na mão") apenas será resolvido o primeiro problema (u1(x,y)):

As condições de contorno mostram que ϕ(L)θ(y)=0ϕ(L)=0, ϕ(x)θ(0)=0θ(0)=0 e ϕ(x)θ(L)=0θ(L)=0.

Dividindo o problema, temos a parte de ϕ


{ϕ1¨(x)λϕ1=0;ϕ1(L)=0;

Supondo uma solução da forma ϕ1(x)=Aesx:


ϕ1¨λϕ1=s2AesxλAesx=0 s=±λ

Ou seja, temos a solução de ϕ1 sendo

ϕ1(x)=A1eλx+A2eλx

Utilizando a C.C. vemos que A1/A2=tanh(λL).

Partindo para a segunda equação θ1(y),

{θ1¨(x)+λθ1=0;θ1(0)=0θ1(L)=0;


supondo solução do tipo θ1(y)=Beiωy temos:

θ1¨+θ1=ω2Beiωy+λBeiωy=0 ω=±λ

Ou seja, temos solução θ1(y)=B1eiλy+B2eiλy

Utilizando a primeira C.C. obtemos 0=B1+B2 ou seja, temos que

θ1(y)=Bsen(λy). Utilizando a segunda C.C. temos 0=sin(λy)λ=n2π2L2, ou seja, existem infinitos n tal que θ1 é solução.

Voltando a ϕ1, temos ϕ1(x)=senh(nπ(Lx)L) Finalmente unindo as respostas, temos

u1(x,y)=ϕ1(x)θ1(y)=C1nsenh(nπ(Lx)L)senh(nπ)sen(nπyL)

sendo C1n=2L0Lf1(y)sen(nπyL)dy

Para os outros problemas, temos soluções parecidas:

u2(x,y)=ϕ2(x)θ2(y)=C2nsenh(nπxL)senh(nπ)sen(nπyL); sendo C2n=2L0Lf2(x)sen(nπyL)dy,

u3(x,y)=ϕ3(x)θ3(y)=C3nsenh(nπ(Ly)L)senh(nπ)sen(nπxL); sendo C3n=2L0Lf3(y)sen(nπxL)dx,

u4(x,y)=ϕ4(x)θ4(y)=C4nsenh(nπyL)senh(nπ)sen(nπxL); sendo C4n=2L0Lf4(x)sen(nπxL)dx.

A solução completa do problema de Dirichlet no quadrado de Lado L é a soma das quatro soluções parciais: u(x,y)=u1(x,y)+u2(x,y)+u3(x,y)+u4(x,y).

Algoritmo de Relaxação

Discretizando a equação temos xxi e yyj para i, j=1,...,N e h=Δx=Δy=N/L a função g(x,y)=gij, nos deparamos com uma matriz ij=u(xi,yj)=uij quadrada sendo as bordas 1j=f(0,y)=u1j, Nj=f(L,y)=uNj, i1=f(x,0)=ui1 e iN=f(x,L)=uiN.

Realizando-se a discretização, podemos tomar as derivadas:

2ux2=u(i+1)j+u(i1)j2uijh2 e 2uy2=ui(j+1)+ui(j1)2uijh2

Substituindo na Equação, temos

u(i+1)j+u(i1)j2uijh2=ui(j+1)+ui(j1)2uijh2+gij, ou seja:

uij=u(i1)j+u(i+1)j+ui(j1)+ui(j+1)+h2gij4,

ou mais geralmente (supondo ΔxΔy):

uij=(Δy)2(u(i1)j+u(i+1)j)+(Δx)2(ui(j1)+ui(j+1))+(ΔyΔx)2gij2((Δx)2+(Δy)2),

para i,j=2,...,N1

Como condição de parada, foi convencionado tomar o Erro Relativo entre as iterações k e k+1, para estimar o erro se faz:

ϵ=|vkvk+1vk|

vk=18(u22+u2(M+1)+u(M+1)2+4u(M+2)2(M+2)2+u(M+1)(M+1))


Estabilidade

Erro relativo ao método de Relaxação em função da quantidade de iterações

A relaxação é um método Iterativo sobre os pontos vizinhos que pode ser feita de 2 modos, pelo Algoritmo de Jacobi, e pelo de Gauss-Seidel.

O algoritmo de Jacobi pega valores "antigos" para a iteração e possui convergencia muito lenta, por isso não é muito utilizado. Já o algoritmo de Gauss-Seidel pega os valores "novos" (que ja foram calculados) e os "antigos" (que não foram calculados), possui convergencia mais rapida, porém ainda é lenta.

Algoritmos iterativos tendem a convergir para solução unica, se a matriz que as representa for Diagonal Dominante, ou seja:

|aii|j=1(ij)N|aij|

De fato, podemos ver que a equação de Laplace respeita tal desigualdade.


Caso façamos um retangulo LxLy com ΔxΔy, obtemos o erro da imagem a seguir:

Erro obtido para diferentes comprimentos do retangulo

Método da Super Relaxação

Grafico mostra a quantidades de Iterações para convergência do exemplo 1 em função de omega

Podemos, assim como no caso não estacionário da condução do calor (Método de Crank Nicholson), que realiza uma média entre os valores explícito e Implícito da Equação, o método da Super relaxação é da seguinte forma:

uijk+1=uijk(1ω)+ωuijR

tal que uijR é o valor calculado através do método da Relaxação e ω[0:2].

Usaremos ω=21+πN que é um otimizador.

Exemplos

Foram realizados 5 exemplos, 2 sobre a equação de Laplace e 3 sobre a equação de Poisson.

Exemplo 1

O primeiro problema é descrito pela seguinte expressão, para o domínio Ω=(0;L)×(0;L):

{Δu=0x,yΩu(x,0)=L(x[0;L])u(x,L)=0(x[0;L])u(0,y)=0(y[0;L])u(L,y)=0(y[0;L]).

Foram obtidas as soluções mostradas nos gráficos a seguir, através do algoritmo de Gauss-Seidel.

Solução do Problema de Contorno através do Método de Relaxação (utilizando o algoritmo de Gauss-Seidel) Solução do Problema de Contorno através do Método de Super Relaxação (utilizando o algoritmo de Gauss-Seidel)


Exemplo 2

O segundo problema é descrito pela seguinte expressão, para o domínio Ω=(0;L)×(0;L):

{Δu=0x,yΩu(x,0)=Lsin(πxL)(x[0;L])u(x,L)=Lcos(πxL)(x[0;L])u(0,y)=x2L(y[0;L])u(L,y)=(Lx)2L(y[0;L]).

Foram obtidas as seguintes soluções mostradas nos gráficos, através do algoritmo de Gauss-Seidel.

Solução do Problema de Contorno através do Método de Relaxação (utilizando o algoritmo de Gauss-Seidel) Solução do Problema de Contorno através do Método de Super Relaxação (utilizando o algoritmo de Gauss-Seidel)


Exemplo 3

O primeiro problema sobre a equação de Poisson não poderia ser diferente, que é descrito pela seguinte expressão, para o domínio Ω=(0;L)×(0;L):

{Δu=g(x,y)=x*ye(x2+y2)x,yΩu(x,0)=0(x[0;L])u(x,L)=0(x[0;L])u(0,y)=0(y[0;L])u(L,y)=0(y[0;L]).

Foram obtidas as soluções mostradas nos gráficos a seguir, através do algoritmo de Gauss-Seidel.

Solução do Problema de Contorno através do Método de Relaxação Solução do Problema de Contorno através do Método de Super Relaxação


Exemplo 4

O segundo problema sobre a equação de Poisson, que é descrito pela seguinte expressão, para o domínio Ω=(0;L)×(0;L):

{Δu=g(x,y)=x*ye(x2+y2)x,yΩu(x,0)=0(x[0;L])u(x,L)=L(x[0;L])u(0,y)=0(y[0;L])u(L,y)=0(y[0;L]).

Foram obtidas as soluções mostradas nos gráficos a seguir, através do algoritmo de Gauss-Seidel.

Exemplo 4

O segundo problema sobre a equação de Poisson, que é descrito pela seguinte expressão, para o domínio Ω=(0;L)×(0;L):

{Δu=g(x,y)=x*ye(x2+y2)x,yΩu(x,0)=Lsin(πxL)(x[0;L])u(x,L)=Lcos(πxL)(x[0;L])u(0,y)=x2L(y[0;L])u(L,y)=(Lx)2L(y[0;L]).

Foram obtidas as soluções mostradas nos gráficos a seguir, através do algoritmo de Gauss-Seidel.


Solução do Problema de Contorno através do Método de Relaxação Solução do Problema de Contorno através do Método de Super Relaxação