OF可压流求解器
-
@nuaawqf 这两篇文章刚好最近在看。其中实现方法并没有涉及blockmatrix。最近着手在测试blockmatrix的灵活性,发现extend4.0版本或者3.x版本原则上可以实现不同维度数据结构以及基本运算的构建,从Vector,Tensor以及基于此的场以及矩阵数据结构都没问题。甚至感觉原则上能够实现任意多个方程的离散计算。其实如果不涉及非稳态计算(或者时间推进法?)都不会用到块矩阵。这个可以参考densitybasedturbo中的transonicSteadyMultiDesnityFoam。单纯的lusgs方法原则上也能够在不涉及blockmatrix的前提下实现,就如您提到的文章中的一篇。但是如果再加上预处理可能就有点儿无能为力了,包括一些matrix-free方法。
以上自己的一点理解,如有错误望各位斧正。希望也不会造成任何的误导,另希望有所帮助。多多交流!
-
最近看到一篇硕士论文,基于FOAM的可压缩流耦合求解器,不过是某国当地土话写的,而不是英语。。
Numerical Simulation of Compressible Flows using a Coupled Density-Based Solution Algorithm
-
https://github.com/chengdi123000/compressibleFoam/tree/of41
把 http://pavanakumar.github.io/compressibleFoam 移植到了openfoam 4.1下。里面有roe格式。没啥大区别。 -
耦合关系处理好了,不久快了么?
-
时隔四年了,还是没有有基于Godunov的近似通量和隐式推进方法的开源OpenFOAM application。
已有的替代解决方案是:
1、使用rhoCentralFoam的KT和KNP格式,本质上还是压力基的求解器。可能存在的问题是耗散大以及收敛性差。
2、使用foam-extend的dbnsFoam,里边有气动人常用的HLLC格式和Roe格式,但推进方法只有龙格库塔显式推进。并且Roe格式熵修正处理不好的话会有Cabuncle现象。
3、使用论文Implementation of density-based solver for all speeds in the framework of OpenFOAM作者公开的allSpeedUnsteadFoam,空间格式使用的是带低速预处理的AUSM系列格式。高超声速热化学非平衡计算中很多人喜欢使用AUSM系列的格式。但allSpeedUnsteadFoam依然只有Runge-Kutta推进。可以按照论文Implementation of density-based implicit LU-SGS solver in the framework of OpenFOAM 的方法实现LUSGS推进方法,工作量其实很小。如果原作者能开源其lusgsFoam最好了。
不过如果想进一步实现其他隐式推进方法,还是需要搞明白blockLduMatrix,并且组装Jacobian矩阵。我想对于foam-extend的大佬来讲,他们已经实现了blockLduMatrix类,以及后续的代数方程预处理及求解器,如果实现密度基的隐式推进方法应该是易如反掌的。不过等了四年依然没有看到有进展。
空闲时间我会自己着手做这件事情。有人同样在做的话可以一起交流合作~
-