0% found this document useful (0 votes)
35 views21 pages

Flujo Con Sedimentos

This document contains 5 programs that model 2D hydrodynamic flow using a finite difference method. Each program simulates flow through a channel with different geometries including obstacles, multiple inflows and outflows. The programs define the geometry, initialize variables, perform iterative calculations to solve flow equations, calculate velocities, and plot results including velocity vectors and water depth contours.

Uploaded by

Ronaldo Brioso
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views21 pages

Flujo Con Sedimentos

This document contains 5 programs that model 2D hydrodynamic flow using a finite difference method. Each program simulates flow through a channel with different geometries including obstacles, multiple inflows and outflows. The programs define the geometry, initialize variables, perform iterative calculations to solve flow equations, calculate velocities, and plot results including velocity vectors and water depth contours.

Uploaded by

Ronaldo Brioso
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 21

PROGRAMA 1

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

% calculando las velocidades


u(1:nx,1:ny)=0;
v(1:nx,1:ny)=0;

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

% calculando las velocidades


u(1:nx,1:ny)=0;
v(1:nx,1:ny)=0;

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

% calculando las velocidades


u(1:nx,1:ny)=0;
v(1:nx,1:ny)=0;

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

% calculando las velocidades


u(1:nx,1:ny)=0;
v(1:nx,1:ny)=0;

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

% calculando las velocidades


u(1:nx,1:ny)=0;
v(1:nx,1:ny)=0;

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

%Haciendo los espigones


for j=(ny-10):ny
for i=15:20
A(i,j,k+1)=q1;
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

% calculando las velocidades


u(1:nx,1:ny)=0;
v(1:nx,1:ny)=0;

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

% calculando las velocidades


u(1:nx,1:ny)=0;
v(1:nx,1:ny)=0;

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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy