openfoam implicit density-based solver
-
基于沈淳老师的相关工作并结合foam-extend 4.0提供的dbns库以及fvblockmatrix,写了一个基于隐式时间推进法(非matrix-free LU-SGS,类似于fluent的处理方法)密度基求解器,或者可能只可以叫做一个demo。目前euler方程已经没有大问题,并且似乎并行也OK。无低速预处理以及双时间步,并且暂时还没有引入湍流jacobian矩阵,写的代码也比较“脏”。来咱们这儿看看有没有同道中人?并探讨可行性,工作量,开发方向等问题。希望各位大神不吝赐教
-
看来大家做这方面工作的很少。
-
@李东岳 是的,貌似openfoam上做超声速高超声速的很少。定位问题吧可能
-
你认识沈淳老师?
-
@daniel_lee 不认识,只是看他的文章。
-
我也是用dbnsFoam以及dbnsTurbFoam,植入了一些新的无粘通量的格式,加速收敛技术只用了LTS,湍流的case依旧算的 很慢。shenchun的那篇文章LU-SGS实现纯粹是自己另写了一个求解器,跟OpenFOAM基本没太大关系。采用fvblockMatrix确实是个突破口。 之前思考过把vector3D改为vector5D但底层代码需要改太多就放弃了。
不知楼主可否分享一下代码?考虑粘性通量和湍流的计算确实是个难点。好久没上论坛,突然看见个做可压缩隐式求解器的同道中人,幸会。 -
@nuaawqf 不知道你是用的OpenFOAM的什么版本,如果恰好使用的是foam-extend的话,实现vector5目前并不是非常复杂的问题,并且extend中包含了完整的块矩阵以及相关的数值解法。可以现在这里说一下求解思路:
1、基本思路可以参考东岳大神主持翻译的fluent理论手册的求解器理论部分,目前手头没有这个资料,应该在20章左右。其中有关于隐式时间推进法的相关内容;
2、其中比较复杂的部分就是构建对流通量Jacobian矩阵 ,主要参考Blazek《Computational Fluid Dynamics Principles and Applications》附录中的表达式;
3、系统稀疏矩阵的构建可以参考fvm::UDiv的格式实现,并且基本思路一致。目前就这些实质内容,这两天测试CFL数能够在2000内保持稳定,当然只针对可压缩无粘流动,主要包括rhoCentralFoam中给出的几个经典算例,并且在32核的工作站上能保持相对良好的并行加速比。不知道你这边目前的侧重点在哪儿,可以进一步交流。
-
目前,我主要侧重于植入我们课题组的可压缩通量格式,主要是一些基于气体动理学的一些工作。替换dbnsFlux的通量模板参数,可以切换到新的通量格式进行计算。OpenFOAM的可压缩求解器平台不够完善,总是遇到大大小小的问题。
-
@nuaawqf 是这样,很不稳定。特别是设计粘性后更是很复杂。我写的东西暂时也很初级。如果你已经接触dbns库了,那就有的聊了。我的思路是在numericflux类中通过成员函数实现对流通量雅各比矩阵,基本思路与沈淳老师的实现方式一致。之后可以给你部分代码。目前主要想怎么实现预处理形式的隐式时间推进格式',可以做深入探讨。我了解南航一直在cfd数值计算方面还是挺有自主开发能力的,向'你们学习
-
@nuaawqf 今天测试了dbnsTurbFoam自带的naca0012算例,最大CFL数在100依然能保持稳定,最大自适应步长7.14e-5。更大的CFL目前暂时没有测试。感觉使用隐式时间推进之后求解器的鲁棒性提高了不少。。
10/12