GRÁFICA 02
Por otro lado, el estudio del efecto de flujo fuente es importante para el
entendimiento de la micromorfología de las regiones de las líneas de
unión, producidas por el encuentro de dos frentes de flujo durante el
llenado de la cavidad del molde.
*En los métodos Eulerianos, la malla cubre tanto las regiones del líquido
como del aire y permanece fija durante el proceso iterativo, y la superficie
libre se ubica dentro de dicha malla, permitiendo resolver el problema sin
la necesidad de recalcular la malla. Con este método se pierde precisión a
la hora de determinar la forma final de la superficie. En los métodos
Lagrangianos, la malla se mueve con las partículas del fluido, lo que
permite definir con precisión la forma de la superficie libre, haciendo más
simple la imposición de las condiciones de frontera. Sin embargo, estos
métodos requieren la incorporación de algoritmos de re-enmallado
cuando existen grandes deformaciones de la superficie, lo que hace que el
método sea costoso desde el punto de vista computacional y complicado
de implementar en geometrías tridimensionales.
SUMIDERO
Vórtice
Fig. 4: Representación de vórtice anti horario mediante aplicación Pflow2 4
Todos los casos antes mencionados son ejemplos de flujos reales. En todos estos
casos, no es verdad que el flujo es irrotacional. Algunos de estos están cerca a
serlo, pero el flujo irrotacional es un término que hemos creado para idealizar
flujo, es decir, considerar que los efectos viscosos son despreciables (si estos se
consideraran, la viscosidad se opondría al flujo) y otras consideraciones de flujo
potencial.
Si se tuviera un vórtice, entonces a una distancia radial diferente, las capas de
fluido que giran deberían tener diferentes velocidades para evitar que se muevan
una tras otra. Imagínese torcer el fluido, para que se forme un vórtice, se necesita
que el fluido en un radio más pequeño arrastre a lo largo del fluido en un radio
más grande y lo haga rotar. De lo contrario, no puedes crear vórtices.
- FUENTE
program uniforme
implicit none
integer::n,i,j
real::u
real,dimension(201)::x,y
real,dimension(201,201)::xx,yy,phi,psi
u=1 !intensidad del flujo
do n=1,201
x(n)=0+(n-1)*0.02
y(n)=0+(n-1)*0.02
end do
do i=1,201
do j=1,201
xx(i,j)=x(i)
yy(i,j)=y(j)
phi(i,j)=u*x(i)
psi(i,j)=u*y(j)
end do
end do
open(11,file="mm.csv")
do i=1,201
write(11,'(201F10.2)') (xx(i,j),j=1,201)
end do
close(11)
open(12,file="nn.csv")
do i=1,201
write(12,'(201F10.2)') (yy(i,j),j=1,201)
end do
close(12)
open(13,file="phi.csv")
do i=1,201
write(13,'(201F10.2)') (phi(i,j),j=1,201)
end do
close(13)
open(14,file="psi.csv")
do i=1,201
write(14,'(201F10.2)') (psi(i,j),j=1,201)
end do
close(14)
end program
SUMIDERO
program sumidero
implicit none
integer::n,i,j
real::q,L,int,pi
real,dimension(201)::x
real,dimension(201)::y
real,dimension(201,201)::xx,yy,phi,psi
q=1
L=1
int=q/L !intensidad de flujo
pi=3.1412
do n=1,201
x(n)=-2+(n-1)*0.02
y(n)=-2+(n-1)*0.02
end do
do i=1,201
do j=1,201
xx(i,j)=x(i)
yy(i,j)=y(j)
phi(i,j)=int*log(x(i)**2+y(j)**2)/(4*pi)
psi(i,j)=-int*atan2(y(j),-x(i))/(2*pi)
end do
end do
open(11,file="mm.csv")
do i=1,201
write(11,'(201F10.2)') (xx(i,j),j=1,201)
end do
close(11)
open(12,file="nn.csv")
do i=1,201
write(12,'(201F10.2)') (yy(i,j),j=1,201)
end do
close(12)
open(13,file="phi.csv")
do i=1,201
write(13,'(201F10.2)') (phi(i,j),j=1,201)
end do
close(13)
open(14,file="psi.csv")
do i=1,201
write(14,'(201F10.2)') (psi(i,j),j=1,201)
end do
close(14)
end program
VORTICE LIBRE O IRROTACIONAL
program vortice
implicit none
integer::n,i,j
real::in,pi
real,dimension(201)::x
real,dimension(201)::y
real,dimension(201,201)::xx,yy,phi,psi
in=1 !intensidad
pi=3.1412
do n=1,201
x(n)=-2+(n-1)*0.02
y(n)=-2+(n-1)*0.02
end do
do i=1,201
do j=1,201
xx(i,j)=x(i)
yy(i,j)=y(j)
phi(i,j)=in*atan2(y(j),x(i))/(2*pi)
psi(i,j)=-in*log(x(i)**2+y(j)**2)/(4*pi)
end do
end do
open(11,file="mm.csv")
do i=1,201
write(11,'(201F10.2)') (xx(i,j),j=1,201)
end do
close(11)
open(12,file="nn.csv")
do i=1,201
write(12,'(201F10.2)') (yy(i,j),j=1,201)
end do
close(12)
open(13,file="phi.csv")
do i=1,201
write(13,'(201F10.2)') (phi(i,j),j=1,201)
end do
close(13)
open(14,file="psi.csv")
do i=1,201
write(14,'(201F10.2)') (psi(i,j),j=1,201)
end do
close(14)
end program
VORTICE LIBRE O IRROTACIONAL
program vortice
implicit none
integer::n,i,j
real::in,pi
real,dimension(201)::x
real,dimension(201)::y
real,dimension(201,201)::xx,yy,phi,psi
in=1 !intensidad
pi=3.1412
do n=1,201
x(n)=-2+(n-1)*0.02
y(n)=-2+(n-1)*0.02
end do
do i=1,201
do j=1,201
xx(i,j)=x(i)
yy(i,j)=y(j)
phi(i,j)=in*atan2(y(j),x(i))/(2*pi)
psi(i,j)=-in*log(x(i)**2+y(j)**2)/(4*pi)
end do
end do
open(11,file="mm.csv")
do i=1,201
write(11,'(201F10.2)') (xx(i,j),j=1,201)
end do
close(11)
open(12,file="nn.csv")
do i=1,201
write(12,'(201F10.2)') (yy(i,j),j=1,201)
end do
close(12)
open(13,file="phi.csv")
do i=1,201
write(13,'(201F10.2)') (phi(i,j),j=1,201)
end do
close(13)
open(14,file="psi.csv")
do i=1,201
write(14,'(201F10.2)') (psi(i,j),j=1,201)
end do
close(14)
end program
Código en Phyton
#importando archivo csv
#cada script exporta uno a uno los csv para ser ploteados en
#python
import numpy as np
import matplotlib.pyplot as plt
xx=np.loadtxt(mm.csv')
yy=np.loadtxt(nn.csv')
phi=np.loadtxt('phi.csv')
psi=np.loadtxt('psi.csv')
plt.figure()
plt.xlabel('Eje X')
plt.ylabel('Eje Y')
plt.title(' Tipo de Flujo: Uniforme') #fuente,sumidero,etc
p1=plt.contour(xx,yy,phi,np.linspace(-1,1,50),colors='r')
p2=plt.contour(xx,yy,psi,np.linspace(-1,1,20),colors='b')
lines=[p1.collections[0],p2.collections[0]]
labels=['phi','psi']
plt.legend(lines,labels)
plt.show()