OF可压流求解器
-
@cfd-china 的确存在这个问题。之前去知乎上也有讨论,由于国内知识产权问题,做开源还是个费力不讨好的事儿
-
@cfd-china @youmengtian
我觉得关键的限制性因素有两个:
- OF是GPL的,有传染性,修改、调用的代码必须同样以GPL开源,这就排除了收费盈利的可能性;
- 中国IP保护就是个SHIT,参考:
目前,中国《著作权法》和《计算机软件保护条例》并没有对开源软件进行规定。在2011年北京市海淀区人民法院一审、北京市第一中级人民法院终审判决的一起案件中,两审法院虽然都认定开源协议有效,但仍然支持违反GNU GPL协议,没有公开其新增的软件源代码的原告方未公开的源代码享有著作权。
某律师观点:本案显示了中国法院的实用主义特点。从逻辑上,法院的观点是不成立的,既然法院承认开源软件协议是有效的,那么使用开源软件开发软件者就应当遵守协议的规定,如果不遵守开源协议,其软件就不应当受到法律保护。但是目前90%以上的开源软件代码是国外开发者贡献,中国公司贡献很少,因此,不保护开源软件对国内产业影响不大,同时,目前法院需要保护国内竞争秩序,中国国内开发者不规范使用开源软件的情况比较普遍,虽然本案中的原告违反了开源协议,但其还是为软件付出了一定创造性劳动,如果不予保护,将使类似公司都面临问题,从而影响国内市场的竞争秩序。
-
最近也在实现一种通量计算方法,主要用于High order kinetics based finite volume method (KBFVM)( http://www.sciencedirect.com/science/article/pii/S0021999109004070 ). 目前并没有中文文献做这个,也不知道怎么翻译。主要思想是迎风格式比较耗散,高阶格式有时会不稳定(虽然理论上TVD是稳定的) http://www.cfd-china.com/topic/729/一阶迎风的耗散性/2 于是针对我的研究领域我需要植入KBFVM(基于
rhoCentralFoam
)。在实现了算法之后,我发现原来和通量分裂的想法是相同的。我们这个领域叫做KBFVM,空气动力学领域称之为通量分裂?:surprised:看来还得多涉猎,才能各个领域的技术互相贯通。
-
@youmengtian 发展方向这和老大的研究兴趣和资金有关。基金会老大本身燃烧出身。如果你看OpenFOAM官方版,拉格朗日、超音速、传热模型方面并没有太大改动。多相,CFD离散以及代码架构更新一直很频繁,毕竟本行。并且基金会赞助一直少。老大一直都自己干。Wikki那面老大本身是大学教授,带博士并且承接项目。大家都知道博士期间一个博士一般都能写个求解器雏形,再加上Wikki老大20多年经验,导致Extend那面各种求解器。因为最近也在看
rhoCentralFoam
,这个求解器只是进行了通量分裂,你们提到的Roe
,WENO
并没有植入进去,基金会做这个应该非常简单。但是OpenFOAM的发展取决于感兴趣的人,和资金赞助。本身做高阶格式的人非常少,再一个没有人赞助高阶格式开发,这些东西只能研究人员开发了。Wikki老大在大学很方便接项目了和申请基金了。当然,Wikki求解器比发布的还要多,并且Wikki的Extend外挂求解器是收费的。基金会完全开源,并且并没有人提供足够的赞助,不能奢求更多。同理在中国,依据个人些许经验和百度,赞助的项目完全不够支持开发的开销。
-
@youmengtian 目前openfoam的可压缩求解器确实没有不可压缩求解器那么强大。我也在参考densityBased求解器做一些算法植入工作。目前有人已经实现了LU-SGS方法,不知他的实现方法和blockMarix有何联系?
附上它的文章:
Shen C, Sun F, Xia X. Implementation of density-based solver for all speeds in the framework of OpenFOAM[J]. Computer Physics Communications, 2014, 185(10): 2730-2741.
Shen C, Xia X, Wang Y, et al. Implementation of density-based implicit LU-SGS solver in the framework of OpenFOAM[J]. Advances in Engineering Software, 2016, 91: 80-88.
期待进一步交流! -
@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类,以及后续的代数方程预处理及求解器,如果实现密度基的隐式推进方法应该是易如反掌的。不过等了四年依然没有看到有进展。
空闲时间我会自己着手做这件事情。有人同样在做的话可以一起交流合作~