Simulation d'un réservoir

Fermé
sergeghomsi Messages postés 1 Date d'inscription mercredi 13 mars 2013 Statut Membre Dernière intervention 8 septembre 2013 - 8 sept. 2013 à 10:12
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 8 sept. 2013 à 21:06
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

1 réponse

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
8 sept. 2013 à 21:06
Salut.
pour savoir s'il sagit d'un problème de codage ou de lenteur d'exécution, diminue la taille et le nombre d'iteration voir si tu as quelque chose.
0