首页/文章/ 详情

流体有限元求解器开发-不可压定常流动模型

7月前浏览546


关键词:CFD,有限元,对流项,圆柱绕流,收敛性

在《流体有限元求解器开发-二维斯托克斯方程》一文中,我们介绍了斯托克斯流动方程的有限元实现。

CFD一般讲的NS方程,即纳维-斯托克斯方程,多出来的“纳维”就是在斯托克斯方程基础上增加了对流项(惯性项)。

这个对流项的引入很不得了,一下把线性方程干成了非线性,让收敛性成为CFD模拟的一大难题,各种人工粘性、求解算法、湍流模型、网格技术等等应运而生,也塑造了CFD玄学的大名。

从90年代,到本世纪前十年,是国内航空大发展的阶段,各种先进型号立项,高速发展。很多空气动力学的课题组在铺天盖地航空研发项目中积累了独门算法,成为航空院校中先富起来的一波。学生们也在这个过程中,锻炼了复杂算法开发能力,因此前些年很多CFD专业的学生毕业后从事金融、软件开发,也完成了“先富”。

时间倏忽而过,就在新型号逐渐变少,科研圈疯狂卷项目卷基金的当下,低空经济、商业航天又给这个行业打了一剂强心剂。一时间,似乎又变的人人都有钱赚。

然而当下和20年前是不一样的,20年前我们的导师辈40岁左右,年富力强,并且项目多,教授少啊,研究生也少,一人一个方向,大家都吃的挺饱。现在我们也到了这个年纪,老一辈虽然到了退休年纪,但是一堆帽子在身,仍然掌握话语权。再环顾身边,一堆师兄弟或者远房师兄弟都在一个口子里面抢项目,大部人活成了科研难民的状态。

如今无论是混高校院所,还是市场上就业,再想像过去那样,学得两三招式就能库库挣大钱,已经不可能了。

控制方程

控制方程如下:

(1) 连续方程:

(2) 动量方程:

动量方程的第一项就是对流项,这个项之所以麻烦是因为,速度和它的偏导数耦合在一起。我们在数值求解的时候就会面临先有鸡还是先有蛋的问题。

当然,数值方法可以假设先有一只鸡,即预先定义一个初始速度场作为已知量,然后逐渐迭代它以期待收敛。我们在数值方法课程学习中,很多简单方程用这个思路都可以很好地求解。

但是到了NS方程这,它就会忽左忽右,逐渐发散,教你做人。

单元方程

采用有限元法进行求解。参考《流体有限元求解器开发-二维斯托克斯方程》方法,速度采用三角形二阶单元,压力采用线性单元。

采用伽辽金方法,权函数=插值函数,控制方程与权函数相乘,积分取0,得到单元方程:

求解思路

不同于《流体有限元求解器开发-二维斯托克斯方程》,只要一次求解就行。左侧单元矩阵中,需要预设的速度结果掺入进去,然后得到新的速度场,然后根据两次迭代的速度结果差异判断是否收敛,当差异足够小的时候,才认为是收敛。

这个和之前开发瞬态热传导求解器思路有点类似,只不过瞬态热传导方程的求解是在时间尺度上迭代。而这个定常流动求解,就是针对速度变量的迭代。它是把非线性求解,转化为线性 交替求解。

其余的边界条件的处理与约束,包括整体求解器框架,基本可以采用之前斯托克斯方程的方法。

绕流问题应用

我期望开发的求解器可以用于绕流问题的计算,这也是当年开发飞机结冰软件的留下的执念。

为了提升通用性,随便换个翼型都可以用,借助meshpy库开发绕流流场网格生成工具,只要导入翼型壁面的节点,即可完成流场网格创建。

圆柱绕流网格

NACA 0012翼型流场网格

圆柱绕流

设定圆柱半径为0.05m,考虑流体介质参数:密度:900kg/m3,粘度1.01e-1Pa·s,来流速度0.1m/s。得到绕流结果如下:

圆柱绕流流场结果

之所以没有直接用水或者空气介质参数,是因为...它不收敛。即便是目前这个粘度很高的介质参数,如果来了速度增加到1m/s,它就立刻甩脸子发散了:

翼型绕流

设定NACA0012弦长为1m,考虑流体介质参数:密度:900kg/m3,粘度1Pa·s,来流速度1m/s。得到绕流结果如下:

同样地。增加粘度后才能收敛,否则也是不收敛。比如把速度增加到10m/s:



来源:静界有限元
非线性湍流二次开发通用航空航天控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-03-12
最近编辑:7月前
静界有限元
博士 签名征集中
获赞 27粉丝 5文章 64课程 0
点赞
收藏
作者推荐

梁单元的妙用

我和有限元的缘分实在不浅。大一刚入学,学校给我们班每五个人配了一个导师。导师第一次见我们就问,知不知道有限元。我以为是多元函数那个元,就按照这个说了一下。老师微微一笑,给我们讲了一遍。那会我连基础概念都没有,所以老师具体怎么说的,我也记不得了。怎么判断你和一个人有缘分呢?很简单,如果两个人看似没什么关联,但是经常因为各种原因能碰到面,这大概率就是有缘分。我与有限元的缘分也是这样。严格来说,我光有限元的课程就上了6次,本科阶段的弹性力学、结构力学、变分有限元,研究生又上了一遍变分有限元、数值计算。博士又选修了一门有限元基础。主打一个只要有,我就选。当时学的时候,并没有想过以后要搞有限元软件开发,并且这些课程教学目的也是让学生了解有限元理论,没指望大家从事有限元基础研究。所以我相当于手机上打掼蛋,每次都是打二,尽管学了多次,都还是从入门到入门。我正儿八经主动编写有限元算法,并实际应用是在做硕士论文的时候。第一次实际应用我当时课题中需要解决一个问题,想通过理论推导出一种复材结构在各个基础工况下的失效载荷预测公式,其中一个工况需要给出三维折线结构的失稳载荷。结构力学里面有个压杆失稳的公式,但是这个是针对一根直杆的,不适用于折线。为了保证理论预测部分的统一性,我没有使用商用软件去模拟。有天我随手翻看有限元教材,忽然想到还是得用有限元做,但是需要我自己要把算法写出来。实际上屈曲失稳在有限元计算中十分简单,只要有了刚度矩阵,失稳问题就是一个求矩阵特征值的事。就这样,我把三维折线模型几何参数化,写了一个梁单元屈曲算法,完成了这部分工作。虽然这个东西并不难,但是这是我第一次在工程问题中,主动想到通过开发有限元算法解决问题。对我后面处理很多工程问题启发很大。更关键的是,我从此对梁单元开始感兴趣。梁单元梁是一种常用的力学模型。常用于能够抗弯的刚(注意不是“钢”)架结构的力学分析,典型的刚架结构见下图。简单理解:细细长长结构骨架,就可以用梁模型来处理。梯架高铁站棚顶埃菲尔铁塔我之前在文章中专门“吹嘘”过梁单元。可以这样说,梁模型就是专门为工程而生的。工程上的很多结构,如果采用实体单元,其单元数量是难以想象的,一旦用梁模拟,可能上百个单元就可以把非常复杂的宏观结构力学响应模拟出来。比如管道。且不说天然气、石油这种大型、远距离的管网系统,我们就到地下车 库去看下就会发现,头顶上各类管道密密麻麻。对于发电厂、核电这种设施,管道系统更是复杂,且服役环境恶劣。图来源:https://speedchina.cn/detail/2204011413342517如此复杂的模型,如果我们在ANSYS或者ABAQUS中进行模拟,无论是建模还是计算量都是不可想象的。在管道设计领域,最核心的力学分析就是采用梁单元,并且诞生了CAESARII这种占据行业主导地位的商用软件。梁单元之所以这么牛,核心原因在于,它把一个三维的东西简化成了1维,一根柱子在这里就是一根线。再复杂的管道,到它那无非就是一堆线。力学的魅力就在于简化,水平越高的人越能够简化问题。由此,计算量指数级下降。《道德经》讲,圣人抱一为天下式。按我的理解,就是找到一个“道”,天下所有的问题都可以按这个“道”来处理。有限元就是这个特点,梁单元更具有这个特点。管道中有很多奇特的本身不太适合用梁来处理的结构,比如下图这个膨胀节。但是为了让梁统一管网,针对各种结构,开发了对应的特殊梁单元进行处理。再强调一次,梁单元就是专门为工程而生的。进入有限元开发领域说了半天的管道,是因为我曾经主导过一款管道应力分析有限元软件的开发,也是在这个过程里面我才见识到,竟然有如此多奇怪的工程梁单元。我此前一直觉得,搞有限元软件就应该像搞ABAQUS那样。在这之后我意识到,对于起步阶段来说,先搞行业类的有限元软件或许才是破局关键。在国内搞通用有限元软件最难的一点是,在起步阶段,这个软件功能只能做到非常基础,和国外软件比没有任何优势,并且还处处比不过。大家没有使用的兴趣,更没有那么多时间等你赶超上来。如果从一个小的点和领域开始做,以快速解决工程实际需求为目标,一切就都具体了,有限元软件变得不再遥远,开发出来就能用,就能建功。实际上,ABAQUS最初也是从梁单元项目起家的。当时团队开发梁单元用于美国核电设施的设计仿真,后来以此为基础,成立了ABAQUS。我现在下决心开发复合材料工程壳有限元软件,就是出于这个考虑。工程中应用梁单元除了开发这个管道应力软件之外,我自我感觉在叶轮机械领域用这个梁单元用的比较成功。最开始是领导找我讨论能否解决,叶轮机械轴系安装的标高设计问题。简单理解这个背景,大尺寸叶轮机组一般由多个轴组成,每个轴两个安装支点。这样以来,每个轴都有重力变形,大家重力变形又不匹配,轴和轴连接位置就会有较大应力。大概就是这个图的意思所谓的“标高”设计,就是调整每个轴两侧支点的高度,让整个轴系变形后,是自然过渡的抛物线,从而消除连接应力。我当时就想到可以用梁来解决。因为思路肯定是,不停迭代调整每个轴的两个支点的高度,一直到满足悬链线为止。所以算法就应该是迭代算法+梁单元求解器。如果借助商用软件就麻烦了,因为需要开发数据交互接口和调用接口。但是有了自己的求解器,一切都变得可实现了。为了提高结果展示效果,我还开发了映射渲染功能。什么是映射渲染呢?ABAQUS里面就有类似的功能,通过“Render”把本来是线条显示的梁,转换成带有截面效果的三维模型显示。就这样,我开发出了轴系标高设计软件,可以在几分钟内完成多个轴构成的轴系的标高自动设计。目前整个软件已经成功应用在多个叶轮机械安装设计中。2025年,我又开发了三维梁单元的振动分析模块,实现了叶轮机械设计遇到的振动相关性能预测功能。复材中应用梁单元之前的文章提到过,我在立体织物研究中,用梁来模拟纤维束,并且那时候我就开发针对纤维的映射渲染技术,给出了三维渲染的仿真结果。目前我的体会,梁单元,也包括壳单元,最大的瓶颈在于它无法模拟厚度方向的细节。比如我想固定一根柱子的侧面,然后在另一个侧面拉伸。但是在梁单元中,就没有厚度方向的节点,所以无法模拟这问题一个截面就一个节点,无法既固定又拉伸。但是在一些特殊问题中,可以有一些替代策略。这里就不细说了,我最近做的工作就是开发专门用于复合材料固化变形的梁单元,它可以在极短时间内完成固化变形的预测。而复合材料厚度方向的固化效应对结构整体变形影响很大,因此就需要做一些特殊处理。结语以上种种,足以说梁单元妙用无穷。作为一种非常典型的工程单元,值得我们在工程问题中思考它的用法。来源:静界有限元

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈