第46章 reactingTwoPhaseEulerFoam (1)
46 reactingTwoPhaseEulerFoam
OpenFOAM-3.0.0136在2015年发布时,引入了reactingTwoPhaseEulerFoam和reactingMultiphaseEulerFoam的解算器。与先前的twoPhaseEulerFoam和multiphaseEulerFoam相比,这些解算器具有扩展的建模功能。这两个解决方案是来自化学化工的公司以及OpenFOAM制造商合作的结果之一。
reactingTwoPhaseEulerFoam和reactingMultiphaseEulerFoam形成EulerEuler解算器的reactingEulerFoam家族。这两个求解器使用基本模型的通用代码库,如相模型、界面动量传递模型和界面组成模型。twoPhaseEulerFoam求解器从OpenFOAM-2.2和更早版本到OpenFOAM-2-3的许多发展都得到了延续,从而使代码库得到了进一步推广。
由于两个解算器都源自一个基本上通用的代码库,因此本节主要适用于reactingTwoPhaseEulerFoam和ReactingMultiphaseEulerFoam。
46.1 解算器基础
该求解器使用PIMPLE算法来求解两相流的控制方程。
46.2 相建模
相建模库的代码库是封装、抽象和通用编程原理的一个很好的例子。
46.2.1 相模型类
有许多相模型模板类,每个模板类都实现了多相建模的不同方面,例如动量传递、传热等。因此,对于特定的模型,必须以类似于拉格朗日粒子模型的方式嵌套这些模板,因为拉格朗日粒子模型是通过将模板类相互插入来构建的。
提供某个方面建模的类模板也可以有相反的双重实现。这允许通过在编译时选择一组特定的模板来构建包含或不包含特定方面的相模型。这种双重实现的一个例子是反应。相可以是反应相,也可以是惰性相。因此,有两个处理反应的模板类:模板InertPhaseModel和ReactionPhaseModel。模板类的名称明显的暗示了每个类如何实现反应。
*相模型
这是所有相模型的基类,它定义了相的行为。这个类本身是从类volScalarField派生而来的。因此,相模型是其自身的体积分数场。除了相的索引、名称和指向阶段直径模型的指针之外,这个类只包含很少的数据。
然而,这个类定义了大量的抽象方法,各种模板类都需要实现这些方法。
未完待续~~
文章来源:OpenFOAM