吾生有涯 学海无涯
析模有界 知识无界

Julia CFD|02 一维非线性对流


一维非线性对流问题的控制方程为:

采用时间向前空间向后差分格式进行离散,其离散方程为:

改写为迭代形式为:

注:

此处的离散格式为显式,也可以尝试改成其它差分格式(如时间向后、空间向前、中心差分等)进行离散。若采用隐式方式可能会涉及到代数方程的组装与求解。

代码如下所示。

using PyPlot
using Printf
nx = 41;
dx = 2 / (nx - 1);
nt = 25;
dt = 0.025;

c = 1;
u = ones(nx);
s = Int(0.5 / dx);
e = Int(1 / dx);
u[s:e] .= 2;

un = ones(nx)

for n in 1:nt
PyPlot.cla()
un = copy(u)
for i in 2:nx
u[i] = un[i] - un[i] * dt / dx * (un[i] - un[i - 1])
end
plot(range(0, stop=2, length=nx), u, color="red", linewidth=2)
PyPlot.title(@sprintf("times=%.3f s", n * dt))
PyPlot.pause(.2)
end

PyPlot.show()

计算结果如下图所示。

波形随时间变化

本篇文章来源于微信公众号: CFD之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《Julia CFD|02 一维非线性对流》
文章链接:https://www.topcfd.cn/12692/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册