我的代码以代码0退出,所以我的代码没有错误,但是它仍在运行,而没有在我想要的圆柱体上绘制流量,有人可以帮我解决这个问题吗?
import sympy as s
import matplotlib.pyplot as plt
import numpy as np
from sympy.abc import x,y
def cylinder_stream_fct(U=1,R=1):
r=s.sqrt(x**2+y**2)
theta=s.atan2(y,x)
return U*(r-R**2/r)*s.sin(theta)
def velocity_field(psi):
u=s.lambdify((x,y),psi.diff(y),'numpy')
v=s.lambdify((x,-psi.diff(x),'numpy')
return u,v
def plot_streamlines(ax,u,v,xlim=(-1,1),ylim=(-1,1)):
x0,x1=xlim
y0,y1=ylim
Y,X= np.ogrid[y0:y1:100j,x0:x1:100j]
ax.streamplot(X,Y,u(X,Y),v(X,color='red')
def format_axes(ax):
ax.set_aspect('equal')
ax.figure.subplots_adjust(bottom=0,top=1,left=0,right=1)
ax.xaxis.set_ticks([])
ax.yaxis.set_ticks([])
for spine in ax.spines.values():
spine.set_visible(False)
psi=cylinder_stream_fct()
u,v=velocity_field(psi)
xlim=ylim=(-3,3)
fig,ax=plt.subplots(figsize=(4,4))
plot_streamlines(ax,xlim,ylim)
c=plt.Circle((0,0),radius=1,facecolor='none')
ax.add_patch(c)
format_axes(ax)