CFD理论过渡到编程的最简单教学教程(附源程序)

CFD理论过渡到编程的傻瓜入门教程鲁棒性
(注:这是一篇不知道谁写的介绍一维无粘可压缩Euler方程,以及如何编程实现求解该方程的论文。作者从最基本的概念出发,深入浅出的讲解了控制方程,有限体积格式,MSUCL方法,限制器,Roe格式等相关知识。这篇论文我觉得有利于大家学习CFD编程的相关知识,所以推荐给大家。文章的后面附有我写的程序(C语言),用于求解一维激波管问题,大家有兴趣可以看看(程序中加了注释说明)胡偶2011)
借宝地写几个小短文,介绍CFD的一些实际的入门知识。主要是因为这里支持Latex,写起来比较方便。
CFD,计算流体力学,是一个挺难的学科,涉及流体力学、数值分析和计算机算法,还有计算机图形学的一些知识。尤其是有关偏微分方程数值分析的东西,不是那么容易入门。大多数图书,偏重数学原理而不重实际动手,因为作者都把读者当做已经掌握基础知识的科班学生了。所以数学基础不那么好的读者往往看得很吃力,看了还不知道怎么实现。本人当年虽说是学航天工程的,但是那时本科教育已经退步,基础的流体力学课被砍得只剩下一维气体动力学了,因此自学CFD的时候也是头晕眼花。不知道怎么实现,也很难到教学代码——
那时候网络还不发达,只在教研室的故纸堆里搜罗到一些完全没有注释,编程风格也不好的冗长代码,硬着头皮分析。后来网上淘到一些代码研读,结合书籍论文才慢慢入门。可以说中间没有老师教,后来读博士为了混学分上过CFD专门课程,不过那时候我已经都掌握课堂上那些了。
回想自己入门艰辛,不免有一个想法——写点通俗易懂的CFD入门短文给师弟师妹们。本人不打算搞得很系统,而是希望能结合实际,阐明一些最基本的概念和手段,其中一些复杂的道理只是点到为止。目前也没有具体的计划,想到哪里写到哪里,因此可能会很零散。但是我争取让初学CFD的人能够了解一些基本的东西,看过之后,会知道一个CFD代码怎么炼成的(这“炼”字好像很流行啊)。欢迎大家提出意见,这样我尽可能的可以追加一些修改和解释。
言归正传,第一部分,我打算介绍一个最基本的算例,一维激波管问题。说白了就是一根两端封闭的管子,中间有个隔板,隔板左边和右边的气体状态(密度、速度、压力)不一样,突然把隔板抽去,管子内的气体怎么运动。这是个一维问题,被称作黎曼间断问题,好像是黎曼最初研究双曲微分方程的时候提出的一个问题,用一维无粘可压缩Euler方程就可以描述了。
这里
这个方程就是描述的气体密度、动量和能量随时间的变化()与它们各自的流量(密度流量,动量流量,能量流量)随空间变化()的关系。
在CFD中通常把这个方程写成矢量形式

这里


进一步可以写成散度形式

一定要熟悉这种矢量形式
以上是控制方程,下面说说求解思路可压缩流动计算中,有限体积(FVM)是最广泛使用的算法,其他算法多多少少都和FVM有些联系或者共同的思路。了解了FVM,学习其他高级点的算法(比如目前比较热门的间断有限元、谱FVM、谱FDM)就好说点了。
针对一个微元控制体,把Euler方程在空间积分

用微积分知识可以得到

也就是说控制体内气体状态平均值的变化是控制体界面上流通量的结果edas。因此我们要计算光伏并网发电模拟装置的演化,关键问题是计算控制体界面上的萨维切维奇
FVM就是以这个积分关系式出发,把整个流场划分为许多小控制体,每个控制体和周围相邻的某个控制体共享一个界面,通过计算每个界面上的通量来得到相邻控制体之间的影响,一旦每个控制体的变化得到,整个流场的变化也就知道了。
所以,再强调一次,关键问题是计算控制体界面上的
初学者会说,这个不难,把界面上的插值得到,然后就可以计算。有道理!
咱们画个图,有三个小控制体 i-1到i +1,中间的“|”表示界面,控制体i操作条件反射右边的界面用表示,左边的就是

tiedaobu| i-1 | i | i+1 |

本文发布于:2024-09-22 09:46:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/261402.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:控制   方程   编程   基本   界面
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议