Flujo Con Sedimentos
Flujo Con Sedimentos
clear all
close all
L=200;
W=80;
h=5;
Uoo=1;
Q=Uoo*W*h;
q=Q/W
dx=1; nx=L/dx+1;
dy=2; ny=W/dy+1;
alpha=(dx/dy)^2;
Lei=40; ie1=Lei/dx+1;
Lef=42; ie2=Lef/dx+1;
Hei=0; je1=Hei/dy+1;
Hef=30; je2=Hef/dy+1;
% definiendo la geometria
for j=1:ny
for i=1:nx
x(i,j)=(i-1)*dx;
y(i,j)=(j-1)*dy;
end
end
A(1:nx,1:ny,1)=0;
kmax=5000;
for k=1:kmax
for j=2:ny-1
for i=2:nx-1
A(i,j,k+1)=((A(i+1,j,k)+A(i-1,j,k)+alpha*(A(i,j+1,k)+A(i,j-1,k)))/
(2*(1+alpha)));
end
end
% condiciones de frontera
%izquierda y derecha
A(1:nx,ny,k+1)=q;
A(1:nx,1,k+1)=0;
% entrada y salida
for j=1:ny
A(1,j,k+1)=(j-1)*q/(ny-1);
A(nx,j,k+1)=(j-1)*q/(ny-1);
end
% en los espigones
for i=ie1:ie2
for j=je1:je2
A(i,j,k+1)=0;
end
end
end
for j=2:ny
for i=2:nx
u(i,j)=(A(i,j,k)-A(i,j-1,k))/dy;
v(i,j)=-(A(i,j,k)-A(i-1,j,k))/dx;
end
end
z(i:nx,j:ny,1)=5
dt=1;
for t=1:300
for j=2:ny-1
for i=2:nx-1
z(i,j,1)=h;
z(i,j,t+1)=z(i,j,t)+(0.1*dt/h)*(((u(i,j)*ny*z(i,j)-u(i-1,j)*ny*z(i-
1,j))/nx)+(v(i,j)*nx*z(i,j-1)-v(i,j-1)*nx*z(i,j-1))/ny);
end
end
end
figure
contour(x,y,A(:,:,kmax-1))
hold on
quiver(x,y,u,v,4)
axis equal
figure
surf(x,y,z(:,:,250))
hold on
%quiver(x,y,u,v,2)
axis equal
PROGRAMA 2:
clear all
close all
L=300;
W=50;
h=5;
% H=5;
Uoo=1;
Q=Uoo*W*h;
q=Q/W;
%
dx=1; nx=L/dx+1;
dy=1; ny=W/dy+1;
alpha=(dx/dy)^2;
Lei=145; ie1=(Lei/dx)+1;
Lef=155; ie2=(Lef/dx)+1;
Hei=15; je1=(Hei/dy)+1;
Hef=35; je2=(Hef/dy)+1;
% definiendo la geometria
for j=1:ny
for i=1:nx
x(i,j)=(i-1)*dx;
y(i,j)=(j-1)*dy;
end
end
A(1:nx,1:ny,1)=0;
kmax=1000;
for k=1:kmax
for j=2:ny-1
for i=2:nx-1
A(i,j,k+1)=((A(i+1,j,k)+A(i-1,j,k)+alpha*(A(i,j+1,k)+A(i,j-1,k)))/
(2*(1+alpha)));
end
end
% condiciones de frontera
%izquierda y derecha
A(1:nx,ny,k+1)=q;
A(1:nx,1,k+1)=0;
% entrada y salida
for j=1:ny
A(1,j,k+1)=(j-1)*q/(ny-1);
A(nx,j,k+1)=(j-1)*q/(ny-1);
end
% en los espigones
for i=ie1:ie2
for j=je1:je2
A(i,j,k+1)=q/2;
end
end
end
for j=2:ny
for i=2:nx
u(i,j)=(A(i,j,k)-A(i,j-1,k))/dy;
v(i,j)=-(A(i,j,k)-A(i-1,j,k))/dx;
end
end
z(i:nx,j:ny,1)=5
dt=1;
for t=1:500
for j=2:ny-1
for i=2:nx-1
z(i,j,1)=h;
z(i,j,t+1)=z(i,j,t)+(0.001*dt/h)*(((u(i,j)*ny*z(i,j)-u(i-1,j)*ny*z(i-
1,j))/nx)+(v(i,j)*nx*z(i,j-1)-v(i,j-1)*nx*z(i,j-1))/ny);
end
end
end
figure
contour(x,y,A(:,:,kmax-1))
hold on
quiver(x,y,u,v,1)
axis equal
figure
surf(x,y,z(:,:,500))
shading intup
quiver(x,y,u,v,0.5)
axis equal
PROGRAMA 3
clear all
close all
L=300;
W1=50;
W2=10;
h=5;
Q1=10;
Uoo1=Q1/(W1*h);
q1=Q1/W1;
Q2=2;
Uoo2=Q2/(W2*h);
q2=Q2/W2;
%
dx=1; nx=L/dx+1;
dy=1; ny=W1/dy+1;
alpha=(dx/dy)^2;
Lei=100; ie1=(Lei/dx)+1;
Lef=110; ie2=(Lef/dx)+1;
Hei=0; je1=(Hei/dy)+1;
Hef=50; je2=(Hef/dy)+1;
% definiendo la geometria
for j=1:ny
for i=1:nx
x(i,j)=(i-1)*dx;
y(i,j)=(j-1)*dy;
end
end
for j=1:ny
for i=1:nx
x(i,j)=(i-1)*dx;
y(i,j)=(j-1)*dy;
end
end
A(1:nx,1:ny,1)=0;
kmax=1000;
for k=1:kmax
for j=2:ny-1
for i=2:nx-1
A(i,j,k+1)=((A(i+1,j,k)+A(i-1,j,k)+alpha*(A(i,j+1,k)+A(i,j-1,k)))/
(2*(1+alpha)));
end
end
% condiciones de frontera
%arriba y abajo
A(1:nx,ny,k+1)=q1;
A(1:ie1,1,k+1)=0;
A(ie2:nx,1,k+1)=-q2;
% entrada y salida
for j=1:ny
A(1,j,k+1)=(j-1)*q1/(ny-1);
A(nx,j,k+1)=((j-1)*(q1+q2))/(ny-1);
end
% en la entrada del segundo caudal
for i=ie1:ie2
A(i,1,k+1)=(i-ie1)*(-q2)/(ie2-ie1);
end
end
for j=2:ny
for i=2:nx
u(i,j)=(A(i,j,k)-A(i,j-1,k))/dy;
v(i,j)=-(A(i,j,k)-A(i-1,j,k))/dx;
end
end
z(i:nx,j:ny,1)=5
dt=1;
for t=1:500
for j=2:ny-1
for i=2:nx-1
z(i,j,1)=h;
z(i,j,t+1)=z(i,j,t)+(0.01*dt/h)*(((u(i,j)*ny*z(i,j)-u(i-1,j)*ny*z(i-
1,j))/nx)+(v(i,j)*nx*z(i,j-1)-v(i,j-1)*nx*z(i,j-1))/ny);
end
end
end
figure
contour(x,y,A(:,:,kmax-1),20)
hold on
quiver(x,y,u,v,1)
axis equal
figure
surf(x,y,z(:,:,500))
shading intup
quiver(x,y,u,v,0.5)
axis equal
PROGRAMA 4
clear all
close all
L=300;
W1=50;
W2=10;
W3=10;
h=5;
Q1=20;
Uoo1=Q1/(W1*h);
q1=Q1/W1;
Q2=2;
Uoo2=Q2/(W2*h);
q2=Q2/W2;
Q3=3;
Uoo3=Q3/(W3*h);
q3=Q3/W3;
%
dx=1; nx=L/dx+1;
dy=1; ny=W1/dy+1;
alpha=(dx/dy)^2;
Lei=100; ie1=(Lei/dx)+1;
Lef=104; ie2=(Lef/dx)+1;
Jei=200; me1=(Jei/dx)+1;
Jef=204; me2=(Jef/dx)+1;
% definiendo la geometria
for j=1:ny
for i=1:nx
x(i,j)=(i-1)*dx;
y(i,j)=(j-1)*dy;
end
end
A(1:nx,1:ny,1)=0;
kmax=1000;
for k=1:kmax
for j=2:ny-1
for i=2:nx-1
A(i,j,k+1)=((A(i+1,j,k)+A(i-1,j,k)+alpha*(A(i,j+1,k)+A(i,j-1,k)))/
(2*(1+alpha)));
end
end
% condiciones de frontera
%arriba y abajo
A(1:me1,ny,k+1)=q1;
A(me2:nx,ny,k+1)=q1-q3;
A(1:ie1,1,k+1)=0;
A(ie2:nx,1,k+1)=-q2;
% entrada y salida
for j=1:ny
A(1,j,k+1)=(j-1)*q1/(ny-1);
A(nx,j,k+1)=-q2+((j-1)*(q1+q2-q3))/(ny-1);
end
% en la entrada
for i=ie1:ie2
A(i,1,k+1)=(i-ie1)*(-q2)/(ie2-ie1);
end
for i=me1:me2
A(i,ny,k+1)=q1+(i-me1)*(q3-q1)/(me2-me1);
end
end
for j=2:ny
for i=2:nx
u(i,j)=(A(i,j,k)-A(i,j-1,k))/dy;
v(i,j)=-(A(i,j,k)-A(i-1,j,k))/dx;
end
end
z(i:nx,j:ny,1)=5
dt=1;
for t=1:300
for j=2:ny-1
for i=2:nx-1
z(i,j,1)=h;
z(i,j,t+1)=z(i,j,t)+(0.01*dt/h)*(((u(i,j)*ny*z(i,j)-u(i-1,j)*ny*z(i-
1,j))/nx)+(v(i,j)*nx*z(i,j-1)-v(i,j-1)*nx*z(i,j-1))/ny);
end
end
end
figure
contour(x,y,A(:,:,kmax-1),20)
hold on
quiver(x,y,u,v,1)
axis equal
figure
surf(x,y,z(:,:,300))
shading intup
quiver(x,y,u,v,0.5)
axis equal
PROGRAMA 5
clear all
close all
L=300;
W1=40;
W2=10;
W3=10;
h=5;
Q1=20;
Uoo1=Q1/(W1*h);
q1=Q1/W1;
Q2=2;
Uoo2=Q2/(W2*h);
q2=Q2/W2;
Q3=3;
Uoo3=Q3/(W3*h);
q3=Q3/W3;
%
dx=1; nx=L/dx+1;
dy=1; ny=W1/dy+1;
alpha=(dx/dy)^2;
Lei=100; ie1=(Lei/dx)+1;
Lef=104; ie2=(Lef/dx)+1;
Jei=200; me1=(Jei/dx)+1;
Jef=204; me2=(Jef/dx)+1;
% definiendo la geometria
for j=1:ny
for i=1:nx
x(i,j)=(i-1)*dx;
y(i,j)=(j-1)*dy;
end
end
A(1:nx,1:ny,1)=0;
kmax=1000;
for k=1:kmax
for j=2:ny-1
for i=2:nx-1
A(i,j,k+1)=((A(i+1,j,k)+A(i-1,j,k)+alpha*(A(i,j+1,k)+A(i,j-1,k)))/
(2*(1+alpha)));
end
end
% condiciones de frontera
%arriba y abajo
A(1:me1,ny,k+1)=q1;
A(me2:nx,ny,k+1)=q1-q3;
A(1:ie1,1,k+1)=0;
A(ie2:nx,1,k+1)=-q2;
% entrada y salida
for j=1:ny
A(1,j,k+1)=(j-1)*q1/(ny-1);
A(nx,j,k+1)=-q2+((j-1)*(q1+q2-q3))/(ny-1);
end
% en la entrada
for i=ie1:ie2
A(i,1,k+1)=(i-ie1)*(-q2)/(ie2-ie1);
end
for i=me1:me2
A(i,ny,k+1)=q1+(i-me1)*(q3-q1)/(me2-me1);
end
% los cuadrados
for i=130:140
for j=7:13
A(i,j,k+1)=q1/4;
end
for j=17:23
A(i,j,k+1)=2*q1/4;
end
for j=27:33
A(i,j,k+1)=3*q1/4;
end
end
for i=220:230
for j=7:13
A(i,j,k+1)=(q1-q3)/4;
end
for j=17:23
A(i,j,k+1)=2*(q1-q3)/4;
end
for j=27:33
A(i,j,k+1)=3*(q1-q3)/4;
end
end
end
for j=2:ny
for i=2:nx
u(i,j)=(A(i,j,k)-A(i,j-1,k))/dy;
v(i,j)=-(A(i,j,k)-A(i-1,j,k))/dx;
end
end
z(i:nx,j:ny,1)=5
dt=1;
for t=1:300
for j=2:ny-1
for i=2:nx-1
z(i,j,1)=h;
z(i,j,t+1)=z(i,j,t)+(0.01*dt/h)*(((u(i,j)*ny*z(i,j)-u(i-1,j)*ny*z(i-
1,j))/nx)+(v(i,j)*nx*z(i,j-1)-v(i,j-1)*nx*z(i,j-1))/ny);
end
end
end
figure
contour(x,y,A(:,:,kmax-1),20)
hold on
quiver(x,y,u,v,1)
axis equal
figure
surf(x,y,z(:,:,300))
shading intup
quiver(x,y,u,v,0.5)
axis equal
PROGRAMA 5
clear all
close all
L=300;
W1=40;
W2=5;
W3=5;
W4=5;
W5=5;
h=5;
Q1=20;
Uoo1=Q1/(W1*h);
q1=Q1/W1;
Q2=3;
Uoo2=Q2/(W2*h);
q2=Q2/W2;
Q3=3;
Uoo3=Q3/(W3*h);
q3=Q3/W3;
Q4=3;
Uoo4=Q4/(W4*h);
q4=Q4/W4;
Q5=3;
Uoo5=Q5/(W5*h);
q5=Q5/W5;
%
dx=1; nx=L/dx+1;
dy=1; ny=W1/dy+1;
alpha=(dx/dy)^2;
Lei=150; ie1=(Lei/dx)+1;
Lef=155; ie2=(Lef/dx)+1;
Jei=200; me1=(Jei/dx)+1;
Jef=205; me2=(Jef/dx)+1;
% definiendo la geometria
for j=1:ny
for i=1:nx
x(i,j)=(i-1)*dx;
y(i,j)=(j-1)*dy;
end
end
A(1:nx,1:ny,1)=0;
kmax=1000;
for k=1:kmax
for j=2:ny-1
for i=2:nx-1
A(i,j,k+1)=((A(i+1,j,k)+A(i-1,j,k)+alpha*(A(i,j+1,k)+A(i,j-1,k)))/
(2*(1+alpha)));
end
end
% condiciones de frontera
%arriba y abajo
A(1:ie1,ny,k+1)=q1;
A(1:ie1,1,k+1)=0;
A(ie2:me1,ny,k+1)=q1+q3;
A(ie2:me1,1,k+1)=-q2;
A(me2:nx,1,k+1)=-q2+q5;
A(me2:nx,ny,k+1)=q1+q3-q4;
% entrada y salida
for j=1:ny
A(1,j,k+1)=(j-1)*q1/(ny-1);
A(nx,j,k+1)=-q2+q5+((j-1)*(q1+q2+q3-q4-q5))/(ny-1);
end
% en la entrada
for i=ie1:ie2
A(i,ny,k+1)=q1+(i-ie1)*(q3)/(ie2-ie1);
A(i,1,k+1)=(i-ie1)*(-q2)/(ie2-ie1);
end
for i=me1:me2
A(i,1,k+1)=-q2+(i-me1)*(q5)/(me2-me1);
A(i,ny,k+1)=q1+q3+(i-me1)*(-q4)/(me2-me1);
end
% los cuadrados
for i=96:104
for j=7:13
A(i,j,k+1)=q1/4;
end
for j=17:23
A(i,j,k+1)=2*q1/4;
end
for j=27:33
A(i,j,k+1)=3*q1/4;
end
end
for i=30:35
A(i,j,k+1)=q1;
end
for i=45:50
A(i,j,k+1)=q1;
end
end
for j=1:10
for i=21:26
A(i,j,k+1)=0;
end
for i=36:41
A(i,j,k+1)=0;
end
end
end
for j=2:ny
for i=2:nx
u(i,j)=(A(i,j,k)-A(i,j-1,k))/dy;
v(i,j)=-(A(i,j,k)-A(i-1,j,k))/dx;
end
end
z(i:nx,j:ny,1)=5
dt=1;
for t=1:300
for j=2:ny-1
for i=2:nx-1
z(i,j,1)=h;
z(i,j,t+1)=z(i,j,t)+(0.01*dt/h)*(((u(i,j)*ny*z(i,j)-u(i-1,j)*ny*z(i-
1,j))/nx)+(v(i,j)*nx*z(i,j-1)-v(i,j-1)*nx*z(i,j-1))/ny);
end
end
end
figure
contour(x,y,A(:,:,kmax-1),20)
hold on
quiver(x,y,u,v,1)
axis equal
figure
surf(x,y,z(:,:,300))
shading intup
quiver(x,y,u,v,0.5)
axis equal
PROGRAMA 6
clear all
close all
L=150;
W1=40;
h=10;
Q1=30;
Uoo1=Q1/(W1*h);
q1=Q1/W1;
%
dx=1; nx=L/dx+1;
dy=1; ny=W1/dy+1;
alpha=(dx/dy)^2;
Lei=100; ie1=(Lei/dx)+1;
Lef=105; ie2=(Lef/dx)+1;
Jei=0; me1=(Jei/dx)+1;
Jef=10; me2=(Jef/dx)+1;
% definiendo la geometria
for j=1:ny
for i=1:nx
x(i,j)=(i-1)*dx;
y(i,j)=(j-1)*dy;
end
end
A(1:nx,1:ny,1)=0;
kmax=1000;
for k=1:kmax
for j=2:ny-1
for i=2:nx-1
A(i,j,k+1)=((A(i+1,j,k)+A(i-1,j,k)+alpha*(A(i,j+1,k)+A(i,j-1,k)))/
(2*(1+alpha)));
end
end
% condiciones de frontera
%arriba y abajo
A(1:nx,ny,k+1)=q1;
A(1:nx,1,k+1)=0;
% entrada y salida
for j=1:ny
A(1,j,k+1)=(j-1)*q1/(ny-1);
A(nx,j,k+1)=(j-1)*q1/(ny-1);
end
% en la entrada
%Haciendo los espigones
for j=(ny-8):ny
for i=15:20
A(i,j,k+1)=q1;
end
for i=40:45
A(i,j,k+1)=q1;
end
for i=65:70
A(i,j,k+1)=q1;
end
end
for j=1:8
for i=31:36
A(i,j,k+1)=0;
end
for i=56:61
A(i,j,k+1)=0;
end
for i=6:11
A(i,j,k+1)=0;
end
for i=81:86
A(i,j,k+1)=0;
end
end
end
for j=2:ny
for i=2:nx
u(i,j)=(A(i,j,k)-A(i,j-1,k))/dy;
v(i,j)=-(A(i,j,k)-A(i-1,j,k))/dx;
end
end
z(i:nx,j:ny,1)=5
dt=1;
for t=1:300
for j=2:ny-1
for i=2:nx-1
z(i,j,1)=h;
z(i,j,t+1)=z(i,j,t)+(0.05*dt/h)*(((u(i,j)*ny*z(i,j)-u(i-1,j)*ny*z(i-
1,j))/nx)+(v(i,j)*nx*z(i,j-1)-v(i,j-1)*nx*z(i,j-1))/ny);
end
end
end
figure
contour(x,y,A(:,:,kmax-1),20)
hold on
quiver(x,y,u,v,1)
axis equal
figure
surf(x,y,z(:,:,250))
hold on
%quiver(x,y,u,v,2)
axis equal