import numpy as np
from matplotlib import pyplot as plt
# Parameters
nx =201
ny =81
nt = 3
xmin =0
xmax = 50
ymin =0
ymax = 20
dx = (xmax - xmin) / (nx - 1)
dy = (ymax - ymin) / (ny - 1)
x = np.linspace(0, 50, nx) #在指定的间隔内返回均匀间隔的数字。
y = np.linspace(0, 20, ny)
x,y = np.meshgrid(x, y)
#x = np.zeros((ny, nx))
#y = np.zeros((ny, nx))
a=(dx**2)+(dy**2)
b=dx*dy+dx*dy
c=(dx**2)+(dy**2)
d=dx*dy-dx*dy
def build_up_xy(a, b, c, d,nt):
xn = np.empty_like(x)
yn = np.empty_like(y)
for n in range(nt):
xn = x.copy()
yn = y.copy()
x[1:-1, 1:-1] = (a*(xn[1:-1, 2:] +xn[1:-1, 0:-2]) -0.5*b*(xn[2:, 2:] -xn[0:-2, 2:] -xn[2:, 0:-2] +xn[0:-2,0:-2]) +c*(xn[2:, 1:-1] + xn[0:-2, 1:-1]) +d**2)/(2*(a+c))
y[1:-1, 1:-1] = (a * (yn[1:-1, 2:] + yn[1:-1, 0:-2]) - 0.5*b*(yn[2:, 2:] - yn[0:-2, 2:] -yn[2:, 0:-2] + yn[0:-2, 0: -2])+c*(yn[2:,1:-1] + yn[0:-2, 1:-1])+d**2)/(2*(a + c))
x[0, 0] = 0
x[0, -1] = 50
x[-1, -1] = 50
x[-1, 0 ]=0
#x[2, 3] = 30
#x[0, 4] = 50
y[-1, 0] = 20
y[0, 0 ]= 0
y[-1, 10] = 20
y[50:81, 160:201] = 0
y[0, -1] = 0
return x, y,
x,y =build_up_xy(a, b, c, d, nt)
#x,y = numpy.meshgrid(x, y)
print(x)
print(y)
'''x,y=np.meshgrid(x,y)
#x,y=build_up_xy(a, b, c, d,nt)
print(x)'''
plt.figure(figsize=(20,50)) # 图像尺寸18x9cm
plt.subplot(1,1,1)
plt.plot(x,y,color="C0")
plt.plot(x.transpose(),y.transpose(),color="C1",alpha=0.5)
#plt.plot(x.transpose(),y.transpose(),color="C1")
#plt.subplot(1,2,2)
#plt.title("$f(z)=z^2$")
#plt.plot(x2,y2,color="C0")
#plt.plot(x2.transpose(),y2.transpose(),color="C1")
plt.xlim(-10,60)
plt.ylim(-10,30)
plt.show()
'''fig = pyplot.figure(figsize=(60,25), dpi=100)
# plotting the pressure field as a contour
pyplot.scatter(x, y, alpha=0.5)
pyplot.grid(b=True, which='both', axis='both')
pyplot.xlabel('X')
pyplot.ylabel('Y');
pyplot.show();'''
请问一下,我这个那些地方有问题,总是画不出网格
你可以把你的需求说一下。你的帖子我给你调整格式了。学一下markdown
def wangyang():
return 1 + 2
就是请老师们帮我看看我这个程序用于生成贴体网格合不合适,那些地方需要调整
1 个赞
你想做什么呀?把你的问题描述清楚呀。不然怎么帮你呢?
你大概要画什么样的网格。2维,3维?结构化
\Delta x = \Delta y
长度
1\times 1
还是什么?
这种叫贴体网格?
然后呢?你要求解什么问题?
你这样,想清楚做什么再说,不行,画个草图好吧。
好的。我抽时间给你画一个。
老师太谢谢您了,您有空也帮我看看我那个有什么问题
我现在帮你找到几个参考。你可以看一下。