[1]:
from Orr_Sommerfeld import OS
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['text.usetex'] = True
%matplotlib inline
Poiseuille Flow
\begin{align*} U(y)=1-y^2 \end{align*}
[2]:
#Schlatter R=5000 a=1.12 b=0 n=0
u2di=np.loadtxt('datos/OSTemSchlatter/u2di')
u2dr=np.loadtxt('datos/OSTemSchlatter/u2dr')
v2di=np.loadtxt('datos/OSTemSchlatter/v2di')
v2dr=np.loadtxt('datos/OSTemSchlatter/v2dr')
#R=5000 a=1.12 b=2.1 son con n==2 (son de inestabilidad secundaria)
u3di=np.loadtxt('datos/OSTemSchlatter/u3di')
u3dr=np.loadtxt('datos/OSTemSchlatter/u3dr')
v3di=np.loadtxt('datos/OSTemSchlatter/v3di')
v3dr=np.loadtxt('datos/OSTemSchlatter/v3dr')
w3di=np.loadtxt('datos/OSTemSchlatter/w3di')
w3dr=np.loadtxt('datos/OSTemSchlatter/w3dr')
Parametros de entrada
[3]:
N=100
R=5000
alp=1.12
b=2.1
n3d=2
n2d=0
Np=0
_,y=OS.cheb(N)
y=y[1:-1]
Validación perturbaciones
Caso 2D
[4]:
lam2d,u2d,v2d,w2d=OS.Orr_Sommerfeld_Temporal(N,R,alp,0,n2d,Np)
[5]:
x_ = [ele.real for ele in lam2d]
y_ = [ele.imag for ele in lam2d]
plt.scatter(x_, y_)
#plt.scatter(lam01[:,0],lam01[:,1],marker='^')
plt.scatter(lam2d[n2d].real,lam2d[n2d].imag,label="autovalor elegido")
plt.ylabel('Img($\lambda$)')
plt.xlabel('Re($\lambda$)')
plt.title(r'$Re=5000$ ; $\alpha=1.12$ ; $\beta=0$')
plt.ylim(-1,0.1)
plt.xlim(0,1)
plt.grid()
plt.legend()
plt.show()
[6]:
plt.plot(u2d.real,y,label= "$u_r(y)$")
plt.scatter(u2dr[:,1],u2dr[:,0],label= "$ur_{Sch}(y)$", s=10)
plt.plot(u2d.imag,y,label= "$u_i(y)$")
plt.scatter(u2di[:,1],u2di[:,0],label= "$ui_{Sch}(y)$", s=10)
#plt.plot(u_parametrosReal,y,u_parametrosImag,y)
plt.xlim(-1.1,1.1)
plt.ylim(-1.,1)
plt.xlabel('$u$')
plt.ylabel('$y$')
plt.title('Perfil de la perturbación $u_{2D}(y)$')
plt.grid()
plt.legend()
plt.show()
plt.plot(v2d.real,y,label= "$v_r(y)$")
plt.scatter(v2dr[:,1],v2dr[:,0],label= "$vr_{Sch}(y)$", s=10)
plt.plot(v2d.imag,y,label= "$v_i(y)$")
plt.scatter(v2di[:,1],v2di[:,0],label= "$vi _{Sch}(y)$", s=10)
plt.xlim(-1.1,1.1)
plt.ylim(-1.,1)
plt.xlabel('$v$')
plt.ylabel('$y$')
plt.title('Perfil de la perturbación $v_{2D}(y)$')
plt.grid()
plt.legend()
plt.show()
Caso 3D
[7]:
lam3d,u3d,v3d,w3d=OS.Orr_Sommerfeld_Temporal(N,R,alp,b,n3d,Np)
[8]:
x_ = [ele.real for ele in lam3d]
y_ = [ele.imag for ele in lam3d]
plt.scatter(x_, y_)
#plt.scatter(lam01[:,0],lam01[:,1],marker='^')
plt.scatter(lam3d[n3d].real,lam3d[n3d].imag,label="autovalor elegido")
plt.ylabel('Img($\lambda$)')
plt.xlabel('Re($\lambda$)')
plt.title(r'$Re=5000$ ; $\alpha=1.12$ ; $\beta=2.1$')
plt.ylim(-1,0.1)
plt.xlim(0,1)
plt.grid()
plt.legend()
plt.show()
[ ]:
plt.plot(u3d.real,y,label= "$u_r(y)$")
plt.scatter(u3dr[:,1],u3dr[:,0],label= "$ur_{Sch}(y)$", s=10)
plt.plot(u3d.imag,y,label= "$u_i(y)$")
plt.scatter(u3di[:,1],u3di[:,0],label= "$ui_{Sch}(y)$", s=10)
plt.xlim(-1.1,1.1)
plt.ylim(-1.,1)
plt.xlabel('$u$')
plt.ylabel('$y$')
plt.title('Perfil de la perturbación $u_{3D}(y)$')
plt.grid()
plt.legend()
plt.show()
plt.plot(v3d.real,y,label= "$v_r(y)$")
plt.scatter(v3dr[:,1],v3dr[:,0],label= "$vr_{Sch}(y)$", s=10)
plt.plot(v3d.imag,y,label= "$v_i(y)$")
plt.scatter(v3di[:,1],v3di[:,0],label= "$vi_{Sch}(y)$", s=10)
plt.xlim(-.04,.02)
plt.ylim(-1.,1)
plt.xlabel('u')
plt.ylabel('y')
plt.title('Perfil de la perturbación $v_{3D}(y)$')
plt.grid()
plt.legend()
plt.show()
plt.plot(w3d.real,y,label= "$w_r(y)$")
plt.scatter(w3dr[:,1],w3dr[:,0],label= "$wr_{Sch}(y)$", s=10)
plt.plot(w3d.imag,y,label= "$w_i(y)$")
plt.scatter(w3di[:,1],w3di[:,0],label= "$wi_{Sch}(y)$", s=10)
plt.xlim(-1.1,1.1)
plt.ylim(-1.,1)
plt.xlabel('$w$')
plt.ylabel('$y$')
plt.title('Perfil de la perturbación $w(y)$')
plt.grid()
plt.legend()
plt.show()
[ ]:
[ ]: