diff --git a/60.Momentum_diffusion_in_an_incompressible_fluid.md b/60.Momentum_diffusion_in_an_incompressible_fluid.md new file mode 100644 index 0000000000000000000000000000000000000000..bc815d72714e143d27eb1f6f55436f775af7fa68 --- /dev/null +++ b/60.Momentum_diffusion_in_an_incompressible_fluid.md @@ -0,0 +1,86 @@ +#### 60 不可压缩流体中的动量扩散 +##### 60.1 控制方程 +在42.1节中讨论过不可压缩流体的控制方程 +$$ +\frac{\partial \mathbf{u}}{\partial t} + \nabla(\mathbf{uu}) + \underbrace{\nabla\cdot(dev(\mathbf{R}^{eff}))}_{=div(dev(\mathbf{R}^{eff})} = -\nabla p + \mathbf{Q} +$$ + +$$ +\mathbf{R}^{eff} = -\nu_{eff}(\nabla\mathbf{u} + (\nabla\mathbf{u}^T)) +$$ + +$$ +\frac{\partial \mathbf{u}}{\partial t} + \nabla(\mathbf{uu}) + \nabla\cdot(dev(-{\nu}^{eff}(\nabla\mathbf{u} + (\nabla\mathbf{u}^T)))= -\nabla p + \mathbf{Q} +$$ + +使用湍流模型来处理动量湍流项: +$$ +\underbrace{\nabla\cdot(dev(\mathbf{R}^{eff}))}_{=div(dev(\mathbf{R}^{eff})} \quad \Longleftrightarrow \quad \texttt{turbulance->divDevReff(U)} +$$ +##### 60.2 功能实现 +OpenFOAM中所有的湍流模型都基于泛型湍流模型类。在57.10节的图134给出了类图。图中所示,所有的RAS湍流模型类与LES湍流模型类都是从同样的基类继承过来。OpenFOAM中的大量求解器都允许使用者选择层流模型或者RAS、LES湍流模型。因此,在写源代码的时候,没有人需要知道动量扩散项使用哪种湍流模型。 + +因此为了克服这个问题,现代编程技术支持一种技术名为多态。在源代码中调用指令$\texttt{turbulence->divDevReff()}$计算扩散项。这条指令是调用对象$\texttt{turbulence}$的$\texttt{divDevReff()}$方法。 + +``` +// Solve the Moment equation +tmp UEqn +( + fvm::ddt(U) + + fvm::div(phi, U) + + turbulence->divDevReff(U) +); + +UEqn().relax(); + +source.constrain(UEqn()); + +volScalarField rAU(1.0/UEqn().A()); + +if (pimple.momentumPredictor()) +{ + solve(UEqn() == -fvc::grad(p) + source(U)); +} +``` +**Listing 482: *pimpleFoam*中的UEqn.H的文件** +$\texttt{createFields.H}$文件中的源代码告诉我们,$\texttt{turbulence}$对象的数据类型是$\texttt{turbulenceModel}$ +``` +singlePhaseTransportModel laminarTransport(U, phi); + +autoPtr turbulence +( + incompressible::turbulenceModel::New(U, phi, laminarTransport) +); +``` +**Listing 483: *pimpleFoam*中的createFields.H文件** +在编译的时候,确保$\texttt{turbulence}$对象的数据类型为$\texttt{turbulenceModel}$。然而,$\texttt{turbulence}$的实际数据类型并不是$\texttt{turbulenceModel}$,而是从$\texttt{turbulenceModel}$继承的一种类型。只有在运行时确定了$\texttt{turbulence}$的实际数据类型,才能确定$\texttt{divDevReff()}$的实际调用方法。 + +Listing 484给出了虚方法$\texttt{divDevReff()}$的声明。可以参考57.10节对虚方法的讨论。 + +Listing 485给出了OpenFOAM中标准$k-\epsilon$湍流模型的具体实现。 + +``` +//- Return the source term for the momentum equation +virtual tmp divDevReff(volVectorField& U) const = 0; +``` + +**Listing 484: *turbulenceModel.H*中的虚方法*divDevReff()*的声明** + +``` +tmp kEpsilon::divDevReff(volVectorField& U) const +{ + return + ( + - fvm::laplacian(nuEff(), U) + - fvc::div(nuEff()*dev(T(fvc::grad(U)))) + ); +} +``` +**Listing 485: *kEpsilon.H*文件中虚方法*divDevReff*的实现** + +$\texttt{divDevReff()}$的计算与公式79等价 +$$ +\texttt{divDevReff} = \nabla\cdot(dev(-\nu(\nabla{U} + (\nabla{U})^T)))\\ += \underbrace{-\nabla\cdot(\nu(\nabla{U}))}_{\texttt{laplacian(nu,U)}}-\underbrace{\nabla\cdot(\nu(\nabla{U})^T)}_{\texttt{div(nu*dev(T(grad(U))))}} +$$ +由于数值原因动量扩散项通常为分为两个部分。 \ No newline at end of file diff --git a/61.The incompressible k-epsilon turbulence model.md b/61.The incompressible k-epsilon turbulence model.md new file mode 100644 index 0000000000000000000000000000000000000000..96574f0fdd8191e995a3a44828404e16068307c4 --- /dev/null +++ b/61.The incompressible k-epsilon turbulence model.md @@ -0,0 +1,392 @@ +### 61 不可压缩$k-\epsilon$湍流模型 + +#### 61.1 文献中的$k-\epsilon$湍流模型 + +Wilcox[67]文献中给出单向流的$k-\epsilon$的控制方程 + +涡粘方程: +$$ +\mu_T=\rho C_{\mu}\frac{k^2}{\epsilon} +$$ +湍动能: +$$ +\rho\frac{\partial k}{\partial t}+\rho U_j\frac{\partial k}{\partial x_j} = \tau_{ij}\frac{\partial U_i}{\partial x_j} - \rho\epsilon+\frac{\partial}{\partial x_j}\left[(\mu+\frac{\mu_T}{\sigma_k})\frac{\partial k}{\partial x_j}\right] +$$ +湍耗散: +$$ +\rho\frac{\partial\epsilon}{\partial t} +\rho U_j\frac{\partial\epsilon}{\partial x_j} = C_{\epsilon 1}\frac{\epsilon}{k}\tau_{ij}\frac{\partial U_i}{\partial x_j}-C_{\epsilon 2}\rho\frac{\epsilon^2}{k}+\frac{\partial}{\partial x_j}\left[(\mu+\frac{\mu_T}{\sigma_k})\frac{\partial\epsilon}{\partial x_j}\right] +$$ +封闭系数: +$$ +C_{\epsilon 1} = 1.44, \quad C_{\epsilon 2} = 1.92, \quad C_{\mu} = 0.09, \quad \sigma_k=1.0, \quad \sigma_{\epsilon} = 1.3 +$$ +通过如下基本结构形式对$k$和$\epsilon$的输运方程重新组织: +$$ +\textrm{local derivative + convection + diffusion = source & sink terms} +$$ +湍动能: +$$ +\rho\frac{\partial k}{\partial t}+\rho U_j\frac{\partial k}{\partial x_j}-\frac{\partial}{\partial x_j}\left[\underbrace{(\mu+\frac{\mu_T}{\sigma_k})}_{D_k}\frac{\partial k}{\partial x_j}\right] =\underbrace{\tau_{ij}\frac{\partial U_i}{\partial x_j}}_{G} - \rho\epsilon +$$ +湍耗散: +$$ +\rho\frac{\partial\epsilon}{\partial t} +\rho U_j\frac{\partial\epsilon}{\partial x_j}-\frac{\partial}{\partial x_j}\left[\underbrace{(\mu+\frac{\mu_T}{\sigma_{\epsilon}})}_{D_{\epsilon}}\frac{\partial\epsilon}{\partial x_j}\right] = C_{\epsilon 1}\frac{\epsilon}{k}\underbrace{\tau_{ij}\frac{\partial U_i}{\partial x_j}}_{G}-C_{\epsilon 2}\rho\frac{\epsilon^2}{k} +$$ +扩散系数: +$$ +D_k = \mu + \frac{\mu_T}{\sigma_k} +$$ + +$$ +D_{\epsilon} = \mu + \frac{u_T}{\sigma_{\epsilon}} +$$ + +扩散项常数表达由扩散常数$D_k$和$D_{\epsilon}$合并组成。湍动能方程的右边第一项为湍动能生成$G$ + +#### 61.2 OpenFOAM中$k-\epsilon$湍流模型 + +###### 61.2.1 控制方程 + +OpenFOAM中的$k-\epsilon$模型基本上与61.1节的控制方程相同。因为OpenFOAM语法以向量为主,所以本节以向量描述。OpenFOAM中某型有一定的修正。 + +首先,$k$和 $\epsilon$的输运方程除以了密度$\rho$。因此,包含粘性的所有项使用运动粘度$\nu$而不是动力粘度$\mu$ + +第二,OpenFOAM中的标准$k-\epsilon$模型取消了模型常数$\sigma_k$。使该常数取1,则该常数取消了。这种操作不会改变模型。然而,如果用户尝试改变模型常数,不会有任何效果。可参考32.4.2节的讨论和例子。 + +最后,对流项根据微分规则分为两项。参考公式222。 + +涡粘,参考Listing 486 +$$ +\mu_T = \rho\nu_T +$$ + +$$ +\nu_T = C_{\mu}\frac{k^2}{\epsilon} +$$ + +湍动能,参考Listing 487 +$$ +U_j\frac{\partial k}{\partial x_j} = \mathbf{U}\cdot\frac{\partial k}{\partial \mathbf{x}} = \mathbf{U}\cdot\nabla k +$$ + +$$ +\mathbf{U}\cdot\frac{\partial k}{\partial \mathbf{x}} = \nabla\cdot(\mathbf{U}k)-(\nabla\cdot\mathbf{U})k +$$ + +$$ +\frac{\partial k}{\partial t} + \nabla\cdot(\mathbf{U}k) - (\nabla\cdot\mathbf{U})k - \nabla\cdot(D_k\nabla k) = G - \epsilon +$$ + +湍耗散: +$$ +\frac{\partial \epsilon}{\partial t} + \nabla\cdot(\mathbf{U}\epsilon) - (\nabla\cdot\mathbf{U})\epsilon - \nabla\cdot(D_{\epsilon}\nabla\epsilon) = C_1G\frac{1}{k} - C_2\frac{\epsilon^2}{k} +$$ + + +扩散常数$\sigma_k$通过下面方程可以消除: +$$ +D_k = \texttt{DkEFF} = \nu + \nu_T +$$ + +$$ +D_{\epsilon} = \texttt{DepsilonEff} = \nu + \frac{\nu_T}{\sigma_\epsilon} +$$ + +封闭系数,默认值: +$$ +C_{\epsilon 1} = 1.44, \quad C_{\epsilon 2} = 1.92, \quad C_{\mu} = 0.09, \quad \sigma_{\epsilon} = 1.3 +$$ +湍流模型类的构造函数中设置了模型常数的默认值。 + +##### 61.2.2 源代码 + +Listing 486给出了涡粘的计算代码。简短的代码可能会导致混淆,例如函数$sqr()$可能与平方根函数$sqrt()$的功能类似。 + +Listing 487给出了涡粘的输运方程。方程右边最后一项进行了扩展。 +$$ +\epsilon = \underbrace{\frac{\epsilon}{k}{k}}_{\texttt{fvm::Sp(epsilon/k, k)}} +$$ + + +``` +nut_ = Cmu_ * sqr(K_)/epsilon_ +``` + +**Listing 486: 涡粘的计算** + +``` +tmp kEqn +( + fvm::ddt(k_) + + fvm::div(phi_, k_) + - fvm::Sp(fvc::div(phi_), k_) + - fvm::laplacian(DkEff(), k_) +== + G + - fvm::Sp(epsilon_/k, k_) +); +``` + +**Listing 487: 湍动能输运方程** + +##### 构造函数 + +Listing488给出了$\texttt{kEpsilon}$类的构造函数第一行代码。该构造函数接收5个参数。分号后,为初始化列表。初始化列表包含模型常数的默认值。更多关于C++的细节可以参考56.5节。模型常数$C_{\mu}$在18行定义 + +``` +kEpsilon::kEpsilon +( + const volVectorField& U, + const surfaceScalarField& phi, + transportModel& transport, + const word& turbulenceModelName, + const word& modelName +) +: + RASModel(modelName, U, phi, transport, turbulenceModelName), + + Cmu_ + ( + dimensioned::lookupOrAddToDict + ( + "Cmu", + coeffDict_, + 0.09 + ) + ) + /* code continue */ +``` + +**Listing 488: kEpsilon类的构造函数 + +#### 61.3 $bubbleFoam$和$twoPhaseEulerFoam$中的$k-\epsilon$模型 + +$bubbleFoam$和$twoPhaseEulerFoam$两个求解器中已经植入了$k-\epsilon$模型,所以不能像OpenFOAM中其他求解器一样使用广义湍流模型。 + +关于色散两相流中的湍流模型仍然没有完全解答。但是有以下几种策略可供选择。 + +**Per phase**,每一项流体使用各自独立的湍流模型 + +**Mixture**,使用基于混合量的湍流模型。 + +**Liquid Phase**,使用基于液相数量的湍流模型。对于色散项可以忽略或者使用常数。 + +##### 61.3.1 控制方程 + +$bubbleFoam$和$twoPhaseEulerFoam$中的$k-\epsilon$湍流模型在某些方面与OpenFOAM的标准$k-\epsilon$模型有区别 + +1. 使用有效涡粘计算扩散常数。比较方程219,220和234,235 +2. 模型常数$\sigma_k$和$\sigma_{\epsilon}$用它们各自的对偶值代替。 +3. 与标准$k-\epsilon$模型不同,模型常数$\sigma_k$没有舍去。通过定义常数$\alpha_{1,k} = 1/\sigma_{k}$,来赋值$\sigma_{k}$ + +$bubbleFoam$和$twoPhaseEulerFoam$使用的湍流模型基于液相数量。气项湍流模型使用模型常数$C_t$。该常数连接液相湍流粘度和气项。如果该常数设为0,则忽略气相湍流模型。 + +涡粘 +$$ +\nu_{2,T} = C_{\mu}\frac{k^2}{\epsilon} +$$ + +$$ +\nu_{2,eff} = \nu_2 + \nu_{2,T} +$$ + +$$ +\nu_{1,eff} = \nu_{1} + C_t^2\nu_{2,T} +$$ + +湍动能,参考Listing487 +$$ +\frac{\partial k}{\partial t} + \nabla\cdot(\mathbf{U}_2k)-(\nabla\cdot\mathbf{U}_2)k-\nabla\cdot(\alpha_{1,k}\nu_{2,eff}\nabla k) = G - \epsilon +$$ + +$$ +\frac{\partial \epsilon}{\partial t} + \nabla\cdot(\mathbf{U}_2\epsilon)-(\nabla\cdot\mathbf{U}_2)\epsilon-\nabla\cdot(\alpha_{1,\epsilon}\nu_{2,eff}\nabla \epsilon) = C_1G\frac{1}{k} - C_2\frac{\epsilon^2}{k} +$$ + +扩散系数,注意不同定义 +$$ +\alpha_{1,k} = \frac{1}{\sigma_k} +$$ + +$$ +\alpha_{1,\epsilon} = \frac{1}{\sigma_{\epsilon}} +$$ + +$$ +D_k=\alpha_{1,k}\nu_{2,eff}=\frac{\nu_{2,eff}}{\sigma_k} +$$ + +$$ +D_{\epsilon} = \alpha_{1,\epsilon}\nu_{2,eff} = \frac{\nu_{2,eff}}{\sigma_{\epsilon}} +$$ + +##### 61.3.2 源代码 + +$bubbleFoam$和$twoPhaseEulerFoam$的输运方程其他内容可参考$\texttt{kEpsilon.H}$文件。Listing 489给出了$\texttt{kEpsilon.H}$文件中的重要代码。 + +``` +tmp tgradU2 = fvc::grad(U2); +vosScalarField G(2*nut2*tgradU2() && dev(symm(tgradU2())))); + +// Dissipation equation +fvScalarMatrix epsEqn +( + fvm::ddt(epsilon) + + fvm::div(phi2, epsilon) + - fvm::Sp(fvc::div(phi2), epsilon) + - fvm::laplacian + ( + alpha1Eps*nuEff2, epsilon, + "laplacian(DepsilonEff, epsilon)" + ) + == + C1*G*epsilon/k + - fvm::Sp(G2*epsilon/k, epsilon) +); + +// Turbulence kinetic energy equation +fvScalarMatrix eps +( + fvm::ddt(k) + + fvm::div(phi2, k) + - fvm::Sp(fvc::div(phi2), k) + - fvm::laplacian + ( + alpha1k*nuEff2, k, + "laplacian(DkEff, k)" + ) + == + G + - fvm::Sp(epsilon/k, k) +); + +//- Re-calculate turbulence viscosity +nut2 = Cmu*sqr(k)/epsilon; +``` + +**Listing 489: $bubbleFoam$和$twoPhaseEulerFoam$求解器的湍流输运方程** + +#### 61.4 湍动能生成模型 + +在比较文献和源码中的湍流模型方程时,二者在湍动能生成定义上有着巨大的差别。 + +##### 61.4.1 文献和源码的定义 + +湍动能生成的定义不同。 + +H.Rusche[54]的论文中,$bubbleFoam$和$twoPhaseEulerFoam$基于 +$$ +P_b = 2\nu_{2,eff}(\nabla\mathbf{U}_b\cdot \textrm{dev}(\nabla\mathbf{U}_b+(\nabla{U}_b)^T)) +$$ +源码-*bubbleFoam*对应的文件$\texttt{kEpsilon.H}$中,参考Listing 489的第二行 +$$ +G = 2\nu_T(\nabla\mathbf{U}_2:\textrm{dev(sym}(\nabla\mathbf{U}_2))) +$$ +源码-标准$k-\epsilon$模型对应的文件$\texttt{kEpsilon.C}$中, +$$ +G=2\nu_T[\textrm{sym}(\nabla\mathbf{U})]^2 +$$ +Ferzinger Peric[35] +$$ +P = \mu_T\nabla\mathbf{U}:(\nabla\mathbf{U}+(\nabla\mathbf{U})^T) +$$ +Wilcox[67] +$$ +G=\mu_T\nabla\mathbf{U}:(\nabla\mathbf{U}+(\nabla\mathbf{U})^T) - \frac{2}{3}\rho k\mathbf{I}:\nabla\mathbf{U} +$$ +有些定义使用动力粘度,有些使用运动粘度。对于不可压流动,这不是主要的区别。 + +##### 61.4.2 粘度使用的差别 + +方程237是唯一使用有效粘度代替湍流粘度的。具体原因此处不表。 + +然而,在Fluent理论指南[7]中所描述那样,当对于$k-\epsilon$模型在高雷诺数的情况下,使用有效粘度计算生成项。但是指南也没有进一步指明什么是$k-\epsilon$模型的高雷诺数情况。 + +##### 61.4.3 符号 + +在61.4.1节定义使用向量形式描述相关内容。但是对于方程237,这样会有一点问题。 +$$ +P_b = 2\nu_{2,eff}(\nabla\mathbf{U}_b\cdot \textrm{dev}(\nabla\mathbf{U}_b+(\nabla{U}_b)^T)) +$$ + +其中,点积符号并不是向量内积。从量纲角度看,除非点积符号表示缩并。因此,该公式应该为: +$$ +P_b = 2\nu_{2,eff}(\nabla\mathbf{U}_b : \textrm{dev}(\nabla\mathbf{U}_b+(\nabla{U}_b)^T)) +$$ + +##### 61.4.4 文献中的定义 + +公式240和241的唯一差别为最后一项 +$$ +G=\mu_T\nabla\mathbf{U}:(\nabla\mathbf{U}+(\nabla\mathbf{U})^T) - \frac{2}{3}\rho k\mathbf{I}:\nabla\mathbf{U} +$$ +使用下面等式,缩并可以用内积代替 + + +$$ +\mathbf{I}:\nabla\mathbf{U} = \textrm{tr}(\nabla\mathbf{U}) = \nabla\cdot\mathbf{U} +$$ +对于不可压流体,通过连续性方程可以推出速度的散度为0 +$$ +\nabla \cdot\mathbf{U} = 0 +$$ + +$$ +G=\mu_T\nabla\mathbf{U}:(\nabla\mathbf{U}+(\nabla\mathbf{U})^T) - \underbrace{\frac{2}{3}\rho k\mathbf{I}:\nabla\mathbf{U}}_{=0} +$$ +所以对于不可压缩流动而言,方程240和241是相等的。那么现在我们可以方程240作为参考检验生成项定义的不同。 + +##### 61.4.5 Rusche和*bubbleFoam*的定义 + +*bubbleFoam*和*twoPhaseEulerFoam*求解器基于H.Rusche的论文。但是,它们生成项的定义不同。比较方程237和238 +$$ +P_b = 2\nu_{2,eff}(\nabla\mathbf{U}_b\cdot \textrm{dev}(\nabla\mathbf{U}_b+(\nabla{U}_b)^T)) +$$ + +$$ +G = 2\nu_T(\nabla\mathbf{U}_2:\textrm{dev(sym}(\nabla\mathbf{U}_2))) +$$ + +我们忽视连续项速度符号的不同 +$$ +\mathbf{U}_2 = \mathbf{U}_b +$$ +上述两个公式第二个缩并符号不同。可以问一句,下述公式是否成立 +$$ +\nabla\mathbf{U}_2:\textrm{dev(sym}(\nabla\mathbf{U}_2)) = \nabla\mathbf{U}_b\cdot \textrm{dev}(\nabla\mathbf{U}_b+(\nabla{U}_b)^T) +$$ +如果有下述等式,上面这个问题很好回答 +$$ +\textrm{dev}(\mathbf{T}) = \mathbf{T} - \frac{1}{3}\textrm{tr}(\mathbf{T}) +$$ + +$$ +\textrm{sym}(\mathbf{T}) = \frac{1}{2}(\mathbf{T} + (\mathbf{T})^T) +$$ + +$$ +\mathrm{dev(sym(\nabla\mathbf{U}_2))} = \mathrm{dev\bigg(\frac{1}{2}(\nabla\mathbf{U}_2 + (\nabla\mathbf{U}_2)^T)}\bigg) +$$ + +$$ +\mathrm{dev(sym(\nabla\mathbf{U}_2))} = \frac{1}{2}\mathrm{dev(\nabla\mathbf{U}_2 + (\nabla\mathbf{U}_2)^T)} +$$ + +$$ +\mathrm{dev(sym(\nabla\mathbf{U}_2))} = \underbrace{\frac{1}{2}\bigg(\mathrm{(\nabla\mathbf{U}_2 + (\nabla\mathbf{U}_2)^T)} - \frac{1}{3}\mathrm{tr}\mathrm{(\nabla\mathbf{U}_2 + \mathrm{(\nabla\mathbf{U}_2}})^T)\bigg)}_{=\mathrm{dev(\nabla\mathbf{U}_2 + (\nabla\mathbf{U}_2)^T)}} +$$ + +$$ +\mathrm{dev(sym(\nabla\mathbf{U}_2))} = \frac{1}{2}\mathrm{dev(\nabla\mathbf{U}_2 + (\nabla\mathbf{U}_2)^T)} +$$ + +这样就给出了答案 +$$ +\nabla\mathbf{U}_2:\textrm{dev(sym}(\nabla\mathbf{U}_2)) = \frac{1}{2}\nabla\mathbf{U}_b\cdot \textrm{dev}(\nabla\mathbf{U}_b+(\nabla\mathbf{U}_b)^T) +$$ +从源代码的定义中可以发现有两种不同的生成项定义 + +1. 使用不同的粘性系数,参考公式237和238 +2. 公式247和公式254差了2倍的系数。 + +这个差异的原因不明。H. Rusche参考的文献不在有效。 \ No newline at end of file diff --git "a/\347\277\273\350\257\221\347\253\240\350\212\202\350\256\244\351\242\206.md" "b/\347\277\273\350\257\221\347\253\240\350\212\202\350\256\244\351\242\206.md" index c1f795ecf85592bdf9794d637ce84b353afc4939..099c859119f387160ee8fd07ee11dddb8c60466f 100644 --- "a/\347\277\273\350\257\221\347\253\240\350\212\202\350\256\244\351\242\206.md" +++ "b/\347\277\273\350\257\221\347\253\240\350\212\202\350\256\244\351\242\206.md" @@ -49,8 +49,8 @@ ### 39 The fvOption framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . skf0558 ### 40 The Lagrangian world 199 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . shujingshao ## V Solver 209 shujingshao -### **41 Solution Algorithms 209 -### **42 pimpleFoam 212 +### **41 Solution Algorithms 209 +### **42 pimpleFoam 212 ### **43 rhoPimpleFoam 219 ### **44 twoPhaseEulerFoam 220** ### **45 twoPhaseEulerFoam-2.3 226** @@ -72,14 +72,14 @@ ### 58 General remarks on OpenFOAM programming 340. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ## IX Theory 345 ### 59 **Discretization 345**. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . jesson Liu -### 60 **Momentum diffusion in an incompressible fluid 348** -### 61 **The incompressible k- turbulence model 349** -### 62 **Some theory behind the scenes of LES 357** -### 63 **The use of phi 362** -### 64 **Derivation of the IATE diameter model 365** -### 65 **Derivation of the MRF approach 376** +### 60 **Momentum diffusion in an incompressible fluid 348** wangyang +### 61 **The incompressible k- turbulence model 349* wangyang +### 62 **Some theory behind the scenes of LES 357** wangyang +### 63 **The use of phi 362** wangyang +### 64 **Derivation of the IATE diameter model 365** +### 65 **Derivation of the MRF approach 376** ## X Appendix 381 ### 66 **Useful Linux commands 381 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xfygogo ### 67 **Archive data 386 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xfygogo ## Bibliography 389 -## List of Abbreviations 392 \ No newline at end of file +## List of Abbreviations 392