Simulation d'un réservoir
Bonjour,
je suis étudiant de master, je travaille sur les réservoirs. j'ai simulé un réservoir en 2D.
maintenant, je veux le faire en 3D, mais je ne parvien pas à le faire.
j'ai écris le programme, mais lorsque je l'exécute, il n'affiche aucune erreur, mais il ne donne non plus de résultat. j'ai exécuté le programme de 20h à 07h le matin, mais aucun résultats.
s.v.p. aidez moi
voilà le programme en question.
clc; clear all;
format long;
Lx= 1.0;
Ly= 1.0;
Lz= 1.0;
kp= 1e-4;
delta_x= 0.01;
delta_y= delta_x;
delta_z= delta_x;
figure(1);
nx=100;
ny=100;
nz=100;
i=2:nx-1;
j=2:ny-1;
k=2:nz-1
Q(1:nx,1:ny,1:nz)=0;
P(1:nx,1:ny,1:nz)=3;
U(1:nx,1:ny,1:nz)=3;
P(1,:,:)=P(2,:,:);
P(:,1,:)=P(:,2,:);
P(:,:,1)=P(:,:,2);
P(nx,:,:)=P(nx-1,:,:);
P(:,ny,:)=P(:,ny-1,:);
P(:,:,nz)=P(:,:,nz-1);
Q(nx-1,ny-1,nz-1)=-1e0;
Q(2,2,2)=1e0;
for iter=1:20000
U(1:nx,1:ny,1:nz)=P(1:nx,1:ny,1:nz);
P(i,j,k)= (0.25)*(P(i+1,j,k)+P(i-1,j,k)+P(i,j+1,k)+P(i,j-1,k)+P(i,j,k+1)+P(i,j,k-1))+0.25*Q(i,j,k)*((delta_x)^2)/kp;
P(1,:,:)=P(2,:,:);
P(:,1,:)=P(:,2,:);
P(:,:,1)=P(:,:,2);
P(nx,:,:)=P(nx-1,:,:);
P(:,ny,:)=P(:,ny-1,:);
P(:,:,nz)=P(:,:,nz-1);
end
contour3(P);
[u v w]= gradient(P);
[verts averts]= streamslice(u,v,w,startx,starty,startz);
iverts= interpstreamspeed(u,v,verts,15);
sl= streamline(iverts);
set(sl,'Marker','.')
hold on; pcolor(P); shading interp
axis tight; view(3);
figure(2);
contour3(P);
di=abs(P-U);
ep=(sum(sum(di)))/sum(sum((abs(P))));
Q
je suis étudiant de master, je travaille sur les réservoirs. j'ai simulé un réservoir en 2D.
maintenant, je veux le faire en 3D, mais je ne parvien pas à le faire.
j'ai écris le programme, mais lorsque je l'exécute, il n'affiche aucune erreur, mais il ne donne non plus de résultat. j'ai exécuté le programme de 20h à 07h le matin, mais aucun résultats.
s.v.p. aidez moi
voilà le programme en question.
clc; clear all;
format long;
Lx= 1.0;
Ly= 1.0;
Lz= 1.0;
kp= 1e-4;
delta_x= 0.01;
delta_y= delta_x;
delta_z= delta_x;
figure(1);
nx=100;
ny=100;
nz=100;
i=2:nx-1;
j=2:ny-1;
k=2:nz-1
Q(1:nx,1:ny,1:nz)=0;
P(1:nx,1:ny,1:nz)=3;
U(1:nx,1:ny,1:nz)=3;
P(1,:,:)=P(2,:,:);
P(:,1,:)=P(:,2,:);
P(:,:,1)=P(:,:,2);
P(nx,:,:)=P(nx-1,:,:);
P(:,ny,:)=P(:,ny-1,:);
P(:,:,nz)=P(:,:,nz-1);
Q(nx-1,ny-1,nz-1)=-1e0;
Q(2,2,2)=1e0;
for iter=1:20000
U(1:nx,1:ny,1:nz)=P(1:nx,1:ny,1:nz);
P(i,j,k)= (0.25)*(P(i+1,j,k)+P(i-1,j,k)+P(i,j+1,k)+P(i,j-1,k)+P(i,j,k+1)+P(i,j,k-1))+0.25*Q(i,j,k)*((delta_x)^2)/kp;
P(1,:,:)=P(2,:,:);
P(:,1,:)=P(:,2,:);
P(:,:,1)=P(:,:,2);
P(nx,:,:)=P(nx-1,:,:);
P(:,ny,:)=P(:,ny-1,:);
P(:,:,nz)=P(:,:,nz-1);
end
contour3(P);
[u v w]= gradient(P);
[verts averts]= streamslice(u,v,w,startx,starty,startz);
iverts= interpstreamspeed(u,v,verts,15);
sl= streamline(iverts);
set(sl,'Marker','.')
hold on; pcolor(P); shading interp
axis tight; view(3);
figure(2);
contour3(P);
di=abs(P-U);
ep=(sum(sum(di)))/sum(sum((abs(P))));
Q