如何用Python通过积分从二维流场x、y速度分量计算流函数?
二维流场流函数计算的实现尝试
最近我在处理二维流场的流函数计算,已知流场的x和y方向速度分量u、v,按照指定的流函数定义,参考了一种分步积分的方法——先对某一行的v分量做积分,再对所有位置的u分量积分,最后把这两部分结果叠加起来(我理解的是这样)。目前先写了一段基础代码片段,如下:
from scipy import integrate import numpy # 生成网格数据 y = numpy.linspace(0, 10, 40) x = numpy.linspace(0, 10, 50) X, Y = numpy.meshgrid(x, y) # 这里可以补充定义x和y方向的速度分量u、v # u = ... # v = ... # 流函数计算核心逻辑 # 先对y=0那一行的v分量沿x方向积分 psi_v = integrate.cumtrapz(v[0, :], x, initial=0) # 对每个x位置的u分量沿y方向积分 psi_u = numpy.zeros_like(X) for i in range(len(x)): psi_u[:, i] = integrate.cumtrapz(u[:, i], y, initial=0) # 叠加得到最终流函数 psi = psi_u + psi_v
注:上面的代码补充了流函数计算的核心逻辑,你可以根据实际的u、v定义来调整,要是积分过程中遇到边界条件或者精度问题,还可以进一步优化细节~
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

