Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
8AV2
15 - Abril - 2019
Condiciones Adicionales
1
3 DESARROLLO 2
∂u ∂u ∂u ∂P 1
∂2u ∂2u
Y con la segunda ecuación:
+u +v =− + + 2 (1)
∂t ∂x ∂y ∂x Re ∂x2 ∂y 2
∂ 2 v ∂u ∂v ∂v ∂2P 1 ∂3v 1 ∂3v
+ + =− 2+ +
∂y∂t ∂y ∂x ∂y ∂y Re ∂x2 ∂y Re ∂y 3
∂2v ∂2v
∂v ∂v ∂v ∂P 1
+u +v =− + 2
+ 2 (2) Estas dos ecuaciones se suman y se despeja a la pre-
∂t ∂x ∂y ∂y Re ∂x ∂y
sión:
Condición de Frontera de Dirichlet En ma- 2 2
∂2P ∂2u ∂2v
∂ P ∂u ∂v ∂u
temáticas, la C.F. de Dirichlet (o frontera de primer − + = + + +
∂x2 ∂y 2 ∂x∂t ∂y∂t ∂x ∂x ∂y
tipo) es un tipo de condición de frontera, nom-
brada en honor de Peter Gustav Lejeune Dirichlet
(1805–1859). Cuando se impone en una ecuación ∂u ∂v
2
∂v 1
3
∂ u ∂3u ∂3v ∂3v
diferencial parcial u ordinaria, especı́fica los valores + + − + + +
∂y ∂x ∂y Re ∂x3 ∂x∂y 2 ∂x2 ∂y ∂y 3
que la solución necesita tomar a lo largo de la
frontera del dominio. Se agrupan terminos:
2 2
∂2P
Condición de Frontera de Neumann En ma- ∂ P ∂ ∂u ∂v ∂u
temáticas, la C.F. de Neumann (o frontera de segun- − + = + + +
∂x2 ∂y 2 ∂t ∂x ∂y ∂x
3 DESARROLLO 3
2
uni,j − uni−1,j uni,j − uni,j−1 n n
" 2 #
2 vi,j − vi−1,j
∂2P ∂2P
∂u ∂u ∂v ∂v
+ =− +2 + +2
∂x2 ∂y 2 ∂x ∂y ∂x ∂y ∆x ∆y ∆x
(3) n n 2
vi,j − vi,j−1
Ahora, en este caso es necesario añadir el término +
∆y
∂ ∂u ∂v ∂a
+ = )
∂t ∂x ∂y ∂t uni+1,j − uni−1,j n
vi,j+1 n
− vi,j−1
1
− +
Con: ∆t ∆x ∆y
∂u ∂v
a= + y:
∂x ∂y
Para que el algoritmo sea estable, por lo que: 2 2
α= 2
+
∂a an+1 − an ∆x ∆y 2
=
∂t ∆t
En donde an+1 = 0, pero an no necesariamente, por β = ∆y 2
lo que la ecuación resulta en:
∂a −an
= γ = ∆x2
∂t ∆t
3 DESARROLLO 4
1 ∆t 20
un+1 uni+1,j − 2uni,j + uni−1,j
i,j = 2 21 P=zeros(nx,ny);
Re ∆x 22 u=zeros(nx,ny);
23 v=zeros(nx,ny);
1 ∆t ∆t n x=linspace(0,Lx,nx);
un − 2uni,j + uni,j−1 −uni,j u − uni−1,j24
+
Re ∆y 2 i,j+1 ∆x i,j 25 y=linspace(0,Ly,ny);
26 [X,Y]=meshgrid(x,y);
n ∆t
∆t 27 X=X';
uni,j − uni,j−1 − n n
n
−vi,j Pi+1,j − Pi−1,j +ui,j 28 Y=Y';
∆y 2∆x 29 starty = 0.01:0.01:0.1;
30 startx = zeros(size(starty));
(8) 31
32 uf=Re*mu/Lx
y 33
34 u(1,:)=uf;
n+1 1 ∆t n n n
35 u(nx,:)=uf;
vi,j = 2
vi+1,j − 2vi,j + vi−1,j 36 u(:,1)=0;
Re ∆x 37 u(:,ny)=0;
38
1 ∆t n n n
n ∆t n n
v(:,ny)=0;
+ 2
v i,j+1 − 2v i,j + v i,j−1 −ui,j v i,j − v i−1,j
39
Re ∆y ∆x 40 v(1,:)=0;
41 v(:,1)=0;
n ∆t n n
∆t n n
n 42 v(nx,:)=0;
−vi,j vi,j − vi,j−1 − Pi,j+1 − Pi,j−1 +vi,j 43
∆y 2∆y 44 P(1,:)=0;
45 P(nx,:)=0;
(9) 46 P(:,1)=P(:,2);
47 P(:,ny)=P(:,ny−1);
En este caso primero se resuelve la presión, de manera 48
similar al método de Jacobi, usando un ciclo ”while”. 49 for t=1:nt;
Posteriormente se obtienen las velocidades dentro de 50 un=u;
51 vn=v;
dos ciclos ”for”. Se fuerzan las condiciones de fronte-
52 e=1;
ra después de cada ciclo. Finalmente se grafica con la 53 errorf=0.0001;
función contourf la velocidad, las presiones, el campo 54 while e>errorf
de velocidades y las lı́neas de corriente de este campo. 55 Pn=P;
56 for i=2:nx−1
57 for j=2:ny−1
Se incluye el código final:
4 RESULTADOS 5
58 %a=(1/2/dx*(un(i+1,j)−un 82 v(:,ny)=0;
(i−1,j)))+(1/2/dy*( 83 v(1,:)=0;
vn(i,j+1)−vn(i,j−1)) 84 v(:,1)=0;
); 85 v(nx,:)=0;
59 a=(1/dx*(un(i,j)−un(i−1, 86
j)))+(1/dy*(vn(i,j)− 87 figure(1)
vn(i,j−1))); 88 contourf(X,Y,sqrt(u.ˆ2+v.ˆ2))
60 b=−((−a/dt)+((1/dx*(un(i 89 title(sprintf('V \n t = %.2f',t));
,j)−un(i−1,j)))ˆ2) 90 if t==nt
+(2*(1/dy*(un(i,j)− 91 saveas(gcf,'14.jpg')
un(i,j−1)))*(1/dx*( 92 end
vn(i,j)−vn(i−1,j)))) 93 figure(2)
+((1/dy*(vn(i,j)−vn( 94 contourf(X,Y,P)
i,j−1)))ˆ2)); 95 title(sprintf('P \n t = %.2f',t));
61 P(i,j)=(1/gamma/alpha*(P 96 if t==nt
(i+1,j)+Pn(i−1,j))) 97 saveas(gcf,'15.jpg')
+(1/beta/alpha*(Pn(i 98 end
,j+1)+Pn(i,j−1)))−(b 99 figure(3)
/alpha); 100 quiver(X,Y,u,v,3)
62 end 101 title(sprintf('Campo vectorial \n t
63 end = %.2f',t));
64 P(1,:)=0; 102 if t==nt
65 P(nx,:)=0; 103 saveas(gcf,'16.jpg')
66 P(:,1)=P(:,2); 104 end
67 P(:,ny)=P(:,ny−1); 105 figure(4)
68 106 streamline(X',Y',u',v',startx,starty
69 e=max(abs(P−Pn))/max(abs(P)); )
70 end 107 title(sprintf('Streamlines \n t =
71 for i=2:nx−1 %.2f',t));
72 for j=2:ny−1 108 if t==nt
73 u(i,j)=un(i,j)−(un(i,j)*dt/ 109 saveas(gcf,'17.jpg')
dx*(un(i,j)−un(i−1,j))) 110 end
−(vn(i,j)*dt/dy*(un(i,j) 111 end
−un(i,j−1)))+(1/Re*dt/(
dxˆ2)*(un(i+1,j)−2*un(i,
j)+un(i−1,j)))+(1/Re*dt
/(dyˆ2)*(un(i,j+1)−2*un(
i,j)+un(i,j−1)))−(dt/dx
/2*(Pn(i+1,j)−Pn(i−1,j))
);
74 v(i,j)=vn(i,j)−(un(i,j)*dt/
dx*(vn(i,j)−vn(i−1,j)))
−(vn(i,j)*dt/dy*(vn(i,j)
−vn(i,j−1)))+(1/Re*dt/(
dxˆ2)*(vn(i+1,j)−2*vn(i,
j)+vn(i−1,j)))+(1/Re*dt
/(dyˆ2)*(vn(i,j+1)−2*vn(
i,j)+vn(i,j−1)))−(dt/dy 4. Resultados
/2*(Pn(i,j+1)−Pn(i,j−1))
);
75 end
76 end
77 u(1,:)=uf; A continuación se muestran imágenes con las gráficas
78 u(nx,:)=uf; señaladas, se muestran las variables para el tiempo
79 u(:,1)=0; inicial t = 1,00s, para t = 5,00s y t = 50,00s para
80 u(:,ny)=0;
81
ver como evoluciona el flujo, y finalmente para t =
200,00s, momento a partir de donde el flujo es estable.
4 RESULTADOS 6
Figura 2: Simulación de V (x, y) para el tiempo t = 1 s Figura 4: Campo Vectorial de Velocidades para el
tiempo t = 1 s
Figura 3: Simulación de P (x, y) para el tiempo t = 1 s Figura 5: Lı́neas de Corriente para el tiempo t = 1 s
4 RESULTADOS 7
Figura 6: Simulación de V (x, y) para el tiempo t = 5 s Figura 8: Campo Vectorial de Velocidades para el
tiempo t = 5 s
Figura 7: Simulación de P (x, y) para el tiempo t = 5 s Figura 9: Lı́neas de Corriente para el tiempo t = 5 s
4 RESULTADOS 8
Figura 10: Simulación de V (x, y) para el tiempo t = Figura 12: Campo Vectorial de Velocidades para el
50 s tiempo t = 50 s
Figura 14: Simulación de V (x, y) para el tiempo t = Figura 16: Campo Vectorial de Velocidades para el
200 s tiempo t = 200 s
= − 4 ny=60;
Re ∂y ∗3 Re ∂x∗ ∂y ∗2 5 nx=4*ny;
6 nt0=5000;
Además de volver a agregar: 7 Ly=0.1;
8 Lx=4*Ly;
∗ ∗n dx=Lx/(nx−1);
∂a −a 9
= 10 dy=Ly/(ny−1);
∂t∗ ∆t∗ 11 dt=0.000001; %Agregar 0 para Re=500
12 nu=0.01;
Por lo que la ecuación adimensionalizada para el 13 rho=1;
campo de presiones resulta en: 14 mu=nu/rho;
4 RESULTADOS 11
15 alpha=(2/(dxˆ2))+(2/(dyˆ2)); vn(i,j−1)));
16 beta=dyˆ2; 68 b=−((−a/dt)+((1/dx*(un(i
17 gamma=dxˆ2; ,j)−un(i−1,j)))ˆ2)
18 Re=50 +(2*(1/dy*(un(i,j)−
19 un(i,j−1)))*(1/dx*(
20 P0=zeros(nx,ny); vn(i,j)−vn(i−1,j))))
21 u0=zeros(nx,ny); +((1/dy*(vn(i,j)−vn(
22 v0=zeros(nx,ny); i,j−1)))ˆ2));
23 x0=linspace(0,Lx,nx); 69 P(i,j)=(1/gamma/alpha*(P
24 y0=linspace(0,Ly,ny); (i+1,j)+Pn(i−1,j)))
25 +(1/beta/alpha*(Pn(i
26 x=x0/Lx; ,j+1)+Pn(i,j−1)))−(b
27 y=y0/Ly; /alpha);
28 70 end
29 [X,Y]=meshgrid(x,y); 71 end
30 X=X'; 72 P(1,:)=0;
31 Y=Y'; 73 P(nx,:)=0;
32 starty = 0.1:0.1:1; 74 P(:,1)=P(:,2);
33 startx = zeros(size(starty)); 75 P(:,ny)=P(:,ny−1);
34 76
35 uf=Re*mu/Lx 77 e=max(abs(P−Pn))/max(abs(P));
36 78 end
37 u0(1,:)=uf; 79 for i=2:nx−1
38 u0(nx,:)=uf; 80 for j=2:ny−1
39 u0(:,1)=0; 81 u(i,j)=un(i,j)−(un(i,j)*dt/
40 u0(:,ny)=0; dx*(un(i,j)−un(i−1,j)))
41 −(vn(i,j)*dt/dy*(un(i,j)
42 v0(:,ny)=0; −un(i,j−1)))+(1/Re*dt/(
43 v0(1,:)=0; dxˆ2)*(un(i+1,j)−2*un(i,
44 v0(:,1)=0; j)+un(i−1,j)))+(1/Re*dt
45 v0(nx,:)=0; /(dyˆ2)*(un(i,j+1)−2*un(
46 i,j)+un(i,j−1)))−(dt/dx
47 P0(1,:)=0; /2*(Pn(i+1,j)−Pn(i−1,j))
48 P0(nx,:)=0; );
49 P0(:,1)=P0(:,2); 82 v(i,j)=vn(i,j)−(un(i,j)*dt/
50 P0(:,ny)=P0(:,ny−1); dx*(vn(i,j)−vn(i−1,j)))
51 −(vn(i,j)*dt/dy*(vn(i,j)
52 nt=nt0*uf/Lx; −vn(i,j−1)))+(1/Re*dt/(
53 u=u0/uf; dxˆ2)*(vn(i+1,j)−2*vn(i,
54 v=v0/uf; j)+vn(i−1,j)))+(1/Re*dt
55 P=P0/rho/ufˆ2; /(dyˆ2)*(vn(i,j+1)−2*vn(
56 i,j)+vn(i,j−1)))−(dt/dy
57 for t=1:nt; /2*(Pn(i,j+1)−Pn(i,j−1))
58 un=u; );
59 vn=v; 83 end
60 e=1; 84 end
61 errorf=0.0001; 85 u(1,:)=uf;
62 while e>errorf 86 u(nx,:)=uf;
63 Pn=P; 87 u(:,1)=0;
64 for i=2:nx−1 88 u(:,ny)=0;
65 for j=2:ny−1 89
66 %a=(1/2/dx*(un(i+1,j)−un 90 v(:,ny)=0;
(i−1,j)))+(1/2/dy*( 91 v(1,:)=0;
vn(i,j+1)−vn(i,j−1)) 92 v(:,1)=0;
); 93 v(nx,:)=0;
67 a=(1/dx*(un(i,j)−un(i−1, 94
j)))+(1/dy*(vn(i,j)− 95 figure(1)
4 RESULTADOS 12
96 contourf(X,Y,sqrt(u.ˆ2+v.ˆ2))
97 title(sprintf('V \n t = %.2f',t));
98 if t==400
99 saveas(gcf,'18.jpg')
100 end
101 figure(2)
102 contourf(X,Y,P)
103 title(sprintf('P \n t = %.2f',t));
104 if t==400
105 saveas(gcf,'19.jpg')
106 end
107 figure(3)
108 quiver(X,Y,u,v,3),axis([0 1 0 1])
109 title(sprintf('Campo vectorial \n t
= %.2f',t));
110 if t==400
111 saveas(gcf,'20.jpg')
112 end
113 figure(4) Figura 18: Simulación adimensional de V (x, y) para
114 streamline(X',Y',u',v',startx,starty
)
el tiempo t = 400 s
115 title(sprintf('Streamlines \n t =
%.2f',t));
116 if t==400
117 saveas(gcf,'21.jpg')
118 end
119
120 end
Figura 20: Campo Vectorial de Velocidades adimen- Figura 22: Simulación adimensional de V (x, y) para
sional para el tiempo t = 400 s el tiempo t = 400 s
Figura 24: Campo Vectorial de Velocidades adimen- Figura 26: Simulación adimensional de V (x, y) para
sional para el tiempo t = 400 s el tiempo t = 100 s
Referencias
[1] Cheng, A. H.-D.; Cheng, D. T.Heritage and
early history of the boundary element method
Engineering Analysis with Boundary Elements.
(2005)
[2] John D. Anderson, Jr. Computational Fluid
Dynamics McGraw-Hill, Inc.
5. Conclusiones
Como se puede observar, el flujo entre las placas
paralelas empieza a avanzar y gradualmente se
empieza a formar un perfil de velocidades, lo que
indica que el flujo ha llegado a su estado estacionario.