CFD高阶格式,距离 ‘ 全民普及 ’ 还有多远?

CFD这面玩高阶格式的很多。今天就举几个例子。简单说一下这些高阶格式。

一、矩方法高阶格式

很多人可能一看标题就蒙了,其实不必,就简单理解为高阶格式就行。我也会把这个东西尽可能说的简单。

在矩方法领域,矩一般代表着某些变量,比如密度、动量等。那在这块,咱就假定密度是一种矩。

矩方法要对网格面上的矩进行重组,最简单的UPWIND格式,大家都非常熟悉。直接网格上游体心的值就等于面心的值。非常简单、非常straightforward。

当然,Upwind是一阶格式。

如果在矩方法中,如果要上二阶以上格式,这就费事了。需要某些特殊的算法,传统central中心格式不能用,会导致震荡。

目前在矩方法这个非常小非常小的领域,用的一些特殊的格式,这个植入的过程,真是够喝一壶的。

因为咱植入过这个格式,光是学习,就得学几个月。代码量也不少。当然了,这种流弊的东西,发文章可以大大的提升接受率。

然后,也只能实现个二阶。。。

大体上就是,为了实现个高阶格式,投资了3000万,到头来给项目方做项目,合同总价只加了30万。。。

二、WENO高阶格式

WENO高阶格式,这个在幼儿园大班大家就开始接触了。

由于结构网格已经成为过去式,但是在非结构网格植入WENO,喝个4 5壶绝对要的。有些搞不明白的,幼儿园都没法毕业。

现在对边看看比如在OpenFOAM里面植入WENO需要做哪些处理。

首先就是非结构网格那个stencil确定,本身咱们非结构网格没有编号,那么WENO怎么确定stencil?

CFD高阶格式,距离 ‘ 全民普及 ’ 还有多远?的图1

然后就是做积分,看下面这个图,直观来讲,central格式,upwind格式,直接插值过来就行。

但是WENO呢,需要做积分,虽然要离散化,但是这明显要比传统格式复杂好多。其中还要存储大量的离散系数,文献表示,3阶WENO每个面上要存储19个多项式系数!!

CFD高阶格式,距离 ‘ 全民普及 ’ 还有多远?的图2

然后还涉及到一个并行的问题,WENO在并行的时候,必然会引起效率低下,因为每个主网格,需要到不同的proc上面去通信。

比如下面这个图,不小心4个CPU都要用到。。。

CFD高阶格式,距离 ‘ 全民普及 ’ 还有多远?的图3

然后如果看WENO跟传统TVD之类格式的对比,文献里面有下面2个图,我是觉得差别基本可以忽略...

CFD高阶格式,距离 ‘ 全民普及 ’ 还有多远?的图4

CFD高阶格式,距离 ‘ 全民普及 ’ 还有多远?的图5

如果看真实的多相流溃坝问题,下面这个图是WENO格式、传统TVD格式以及实验的对比:

CFD高阶格式,距离 ‘ 全民普及 ’ 还有多远?的图6

照我来说,上面这个数据,个人感觉WENO跟传统TVD真是没啥区别哎。

三、最后

其实本文,不说是高阶格式不好。但是想说一些普遍性的东西。只不过WENO躺qiang而已..

很多算法上的东西吧,确实是流弊到极致。一个简单的例子,如果按照精度来看,迎风格式就是60分水平,那TVD格式可以到90分了。

然而一些高阶格式,能达到95甚至99分!

当然大家都知道,分数越高,每提高一分,需要付出的努力就越大。本文举例的一些高阶格式,就是在90分的TVD格式的基础上,花费了上千倍的努力,提升到了95分。

做学术是完全没问题的。JCP蹭蹭的发。但是另一方面,一个算法的提出,越难,用的人越少。

反而是那些极简,直击痛点的文章,虽然精度不高,但是大肆被CFD软件以及工业界采用。

再次声明,本文啊,不是说某些算法不好,只是想说一个普适性的原则,这些算法实在是太复杂了,流弊确实流弊!!就是用到工业界,还需要很长一段路要走。

我还发现一个事,之前我写的某些SCI,可能实在是太复杂了,引用的都少。。某些应用类,引用反而很高,可能因为比较简单,大家都看得懂吧

本文来自:CFD界

(7条)
默认 最新
感谢分享
评论 点赞
评论 点赞

查看更多评论 >

点赞 10 评论 7 收藏 1
关注