Beruflich Dokumente
Kultur Dokumente
Centro tecnolgico
Programa de ps graduao em Engenharia Mecnica
1. INTRODUO:
p
2 p 2 p
=a
+
t
x2 y 2
p
( x , y ,t )=0 para( x , y) R
n
Condio inicial:
p ( x , y ,0 )= pref
m1
n1 clulas no eixo y.
x2
h x2
2 p p i , j12 pi , j + pi , j+1
y2
h y2
Onde h x
h x=
Lx
n1
hy=
Ly
m1
e hy
p
2 pi , j + p i+1, j pi , j12 pi , j + pi , j+1
p
=a i1, j
+
t
h x2
h y2
Mtodo Implcito:
Segundo a metodologia implcita, tem-se:
pi , jk +1 p i , jk+1 pi , jk
t
t
Ou seja:
pi , j
k +1
pi , j
p
=a i1, j
t
k+1
2 p i , j
k+1
+ pi+1, j
k+1
h x2
pi , j1
k+1
2 pi , j
k+1
+ pi , j+1
h y2
k +1
( )
( )
( )
( )
( )
t
hy
hx
hx h y
hx
hy
( )
( )
( )
( )
( )
2a 2a 1
+ +
h x2 h y 2 t
bI=
a
h x2
cI =
a
h x2
dI =
eI =
a
h y2
a
2
hy
aI
cI
bI
aI
eI
cI
bI
eI
...
dI
...
...
cI
...
dI
bI
...
eI
aI
cI
bI
aI
cI
bI
aI
dI
( 1t ) p
k
1
( 1t ) p
k
2
..
.
( 1t ) p
k
I
..
.
( 1t ) p
k
N
Mtodo de Crank-Nicolson
Segundo o mtodo de Crank-Nicolson, tem-se:
pi , j
t
k +1
pi , j
k+1
k+ 1
pi , j f i , j f i , j
=
t
2
Onde f i , j
pi , j . Assim
pi , jk +1 pi , jk
=
t
[(
) (
a
a
a
a
1
a
a
a
pi , j1k+1 +
pi1, jk+1 + 2 + 2 +
pi , jk+1 +
pi+1, jk+1 +
pi , j+1k +1=
pi , j
2
2
2
2
2h y
2 hx
h x h y t
2 hx
2h y
2 h y2
( )
( )
( )
( )
( )
a
a
a
a
1
a
a
a
p Ink+1 +
p I1k+1 + 2 + 2 +
pI k+1 +
pI +1k+1 +
pI +nk+ 1=
p Ink +
2
2
2
2
2h y
2 hx
h x h y t
2 hx
2hy
2 hy2
2
( )
( )
( )
( )
( )
Condies de contorno:
Foram dadas condies de contorno de fluxo nulo e condies de contorno de
valor prescrito. Ambas esto descritas a seguir:
1 Fluxo nulo:
Agora encontra-se as equaes que compe o sistema linear provindas da
condio de contorno de fluxo zero:
p
( x , y ,t )=0 para( x , y) R
n
p
( x , 0,t )=0 ; 0< I <n
y
=0
y
h y2
Logo:
pi ,1 pi ,+1
Ou seja:
pI n p I +n
t
hy
hx
hx h y
hx
hy
( )
( )
pI n
( )
( )
( )
t
hx
hx h y
hx
hy
( )
( )
( )
Esta nova equao deve ser substituda no sistema para todo ponto
0< I <n
.
1.2 Fronteira superior:
Na fronteira superior, tem-se:
p
( x , 1,t )=0 ; N n<I < N
y
Onde:
N=mn
Analogamente ao caso anterior o ponto
=0
y
hy2
pi ,m+1 p i ,m1
pI +n p In
Portanto os novos coeficientes se tornam:
a a
a
~
d I =d I + e I = 2 2 =2 2
hy hy
hy
~
e I =0
Esta nova equao deve ser substituda no sistema para todo ponto
Nn< I < N .
a a
a
~
c I =c I +b I = 2 2 =2 2
hx hx
hx
~
b I =0
Isso vlido para
I =kn+1(0 k m1)
a a
a
~
b I =b I +c I = 2 2 =2 2
hx h x
hx
~
c I =0
I =kn(1 k m) .
Valor prescrito:
I =1 possuir os
seguintes coeficientes:
~
a I =1
~
b I =0
~
c I =0
~
d I =0
E o termo do vetor independente tambm se altera para:
b I= pI
I =N
da
~
d I =0
E o termo do vetor independente tambm se altera para:
b I = pref
IMPLEMENTAO:
A rotina gerada est exposta abaixo. Ela utiliza como entrada os parmetros o
nmero de nos desejado no eixo x e no eixo y o incremento temporal e o tempo final
no qual desejasse visualizar a soluo. A rotina gera como sada um grfico onde
mostra a distribuio de presso em um mapa de curvas e o campo de velocidade.
Comentrios foram feitos no prprio cdigo:
function [A,pind,p]=diferencasfinitas_2D_transiente (n,m,delta_t,t)
%Entradas do programa:
%n o nmero de ns no eixo x
%m o nmero de ns no eixo y
%deta_t o incremento de tempo
%t o tempo no qual queremos a soluo
%% Escolha do mtdo de incremento temporal:
% utilizou uma questdlg para a escolha do mtodo de incremento no tempo
metodo_escolhido = questdlg('Qual o mtodo a ser utilizado?', ...
'Mtodo de incremento no tempo', ...
'Implcito','Crank-Nicolson','Implcito');
%% Atribuio e clculo de constantes:
kmax=round(t/delta_t); %nmero de steps temporais para obtermos a soluo
desejada
Lx=1; %comprimento do domnio do problema em x
Ly=1;%comprimento do domnio do problema em y
K=100; %K a permeabilidade do meio
mi=1; %mi a viscosidade do leo
fi=0.1; %fi a porosidade do meio
pref=0; % a presso no poo extrator e apresso iniciao no domnio do
problema
pi=100; % a presso no poo injetor;
c=10; % a compressibilidade do meio
%calculo de constantes:
hx=Lx/(n-1);
hy=Ly/(m-1);
N=m*n; %nmero de pontos do domnio usado na idexao Lexicogrfica.
a=K/(mi*fi*c);
%coeficientes do sistema linear no sistema de indexao lexicogrfico
switch metodo_escolhido
case('Implcito')
ai=2*a/(hx^2)+2*a/(hy^2)+1/delta_t;
bi=-a/(hx^2);
di=-a/(hy^2);
ci=bi;
ei=di;
case('Crank-Nicolson')
ai=a/(hx^2)+a/(hy^2)+1/delta_t;
bi=-a/(2*hx^2);
di=-a/(2*hy^2);
ci=bi;
ei=di;
end
%% Montagem da matriz A
%A matriz A foi montada usando a funo Toeplitz.
r=zeros(N,1);
r(1,1)=ai;
r(2,1)=bi;
r(n+1,1)=di;
A=toeplitz(r);
%atribuio das condies de contorno:
for i=1:n
%fronteira inferior:
A(i,i+n)=A(i,i+n)+di;
%Fronteira Superior:
A(N-i+1,N-i+1-n)=A(N-i+1,N-i+1-n)+ei;
end
for i=0:m-1
%Fronteira esquerda:
A(i*n+1,i*n+2)=A(i*n+1,i*n+2)+bi;%faz ci=ci+bi
if(i>0) %utilizado para evitar que tente-se zerar o bi do ponto I=1
%pois o bi deste ponto no existe na matriz dos coeficientes.
A(i*n+1,i*n+1-1)=0; %torna o bi destes pontos igual a zero
end
%fronteira direita:
A((i+1)*n,(i+1)*n-1)=A((i+1)*n,(i+1)*n-1)+ci; %faz bi=bi+ci
if(i~=m-1) %utilizado para evitar que tente-se zerar o ci do ponto
I=1
end
corrigida
+...
-(di+ei)*p(n+n,k);
b(N-n+1)=p(N-n+1,k)*(1/delta_t-a/(hx^2)-a/(hy^2))-(bi+ci)*p(N-
n+1+1,k)+...
end
-(di+ei)*p(N-n+1-n,k);
end
b(1,1)=pi;
b(N,1)=pref;
disp(kmax-k) %mostra o andamento do cdico para o usuario
EXPERIMENTOS NUMRICOS:
O cdigo foi executado vrias vezes nas mais variadas situaes de modo a
identificar comportamentos no desejados. Alguns foram identificados e corrigidos
ou mitigados. A seguir encontram-se algumas imagens geradas pela rotina.
a) Mtodo implcito com n=10, m=10 e t=0,1.
Sabe-se que o mtodo das diferenas finitas tem uma caracterstica pontual. Devido
a este fato a obteno de gradientes de funes um ponto delicado. Pode-se notar
a caracterstica pontual deste mtodo analisando a variao do gradiente em funo
da forma dos elementos utilizados (n=10 e m=20 ou n=20 ou m=10). Para melhor
visualizao, mostra-se as duas imagens abaixo:
Resposta refinada
CONCLUSO: