当前位置:服务支持 >  软件文章 >  问题讨论:使用Python学习CFD初级理论系列之线性对流方程解析(2/10)

问题讨论:使用Python学习CFD初级理论系列之线性对流方程解析(2/10)

阅读数 9
点赞 0
article_banner

一维常系数对流方程是CFD中最简单最基本的方程。然而这个简单的方程能够告诉我们很多关于CFD方面的东西。模型方程如下式: 

[问题讨论]使用Python学习CFD初级理论系列一线性对流方程(2/10)的图1

下面在Python中实现该求解过程。

代码如下所示:

import numpy as np
import matplotlib.pyplot as plt

nx = 41  #x方向网格节点数量
dx = 2/(nx-1)  #空间网格步长,x方向总长度2
nt = 25 # 时间步数
dt = 0.025  # 时间步长
c = 1 #常数

# 指定初始条件
u = np.ones(nx)
u[int(0.5/dx):int(1/dx + 1)] = 2 #这一行实际上是制造了一个方波
# 下面将初始条件画出来
plt.plot(np.linspace(0,2,nx),u, 'r',lw=3, label = 'init')

# 计算25个时间步后的波形
un = np.ones(nx)
for n in range(nt):
   un = u.copy() #后面的计算会改变u,所以将u拷贝一份
   for i in range(1,nx):
       u[i] = un[i] - c * dt / dx * (un[i] - un[i-1])

plt.plot(np.linspace(0,2,nx), u , 'b',lw =3,label= 'current')
plt.legend()

计算结果如下图所示:

[问题讨论]使用Python学习CFD初级理论系列一线性对流方程(2/10)的图2

从图中可以看出,在经过大约0.625s后,波形存在一定程度上的失真,说明数值算法存在扩散。

注:本系列教程来自国外一个使用Python进行CFD初级理论学习的项目,源项目网址为:http://lorenabarba.com/blog/cfd-python-12-steps-to-navier-stokes/。感兴趣的同学可以去官方主页了解更多信息。

本文转载自微信公众号“CFD之道”,有删减,感谢源作者。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空