@wwzhao 谢谢你的建议,用 SST kOmega 是一样的结果;充分发展管流,进出口是周期性的边界,这样的情况下,kOmega 模型对入口的敏感性如何体现呢?
Bob在学习OpenFOAM
帖子
-
充分发展槽道流,kOmega 得到的速度曲线很诡异 -
充分发展槽道流,kOmega 得到的速度曲线很诡异@cfd-china boundaryFoam 对求解的方程进行了简化(边界层方程),而我们常用的就是 N-S方程。我也是看到这样的结果之后,觉得很奇怪,边界层方程算的对,用 NS算的就不对,很不合理,所以也向大家请教一下。
-
动量方程如何加入加压力梯度源项?@李东岳 谢谢你关注我的问题,我又尝试了槽道层流,上面的源项方法没有问题,个人比较偏向第2种,把压力梯度加入到 UEqn 矩阵中,感觉有点像隐式的求解方法。
-
充分发展槽道流,kOmega 得到的速度曲线很诡异物理问题:充分发展槽道流动,压力梯度pGrad=-10,运动粘度nu=1e-5,槽道高度H=0.1。
求解域:2D网格,z方向1层网格;高度H=0.1,两个壁面处边界层加密;流向1层网格,周期性条件;
湍流边界条件:k:kqRWallFunction, uniform 0.01;omega:omegaWallFunction,uniform 1000;epsilon:epsilonWallFunction,uniform 1;nut:nutkWallFunction,uniform 0;
求解器:OpenFOAM v3.0+
目的:验证湍流模型
调研:OpenFOAM自带的求解器 boundaryFoam通过求解 nu*d2u/dy2+ReynoldStress=dp/dy,能实现上述要求;但是它求解的是一个简化的边界层方程,而这里LZ想验证一下simpleFoam, pisoFoam等一些正常使用的求解器;
这个算例基于下面的一些认识:1)流向1层网格不会影响求解和结果;
动量方程加源项的方法:尝试了3种(请参见动量方程如何加入压力梯度源项),发现kEpsilon在这几种加源项的方法下,速度分布都很合理,但是,kOmega在槽道中心出现诡异的速度分布(壁面附近合理);物理问题 计算域 ---- ------ 结果
- kEpsilon速度分布和湍动能分布都很合理;
- kOmega在槽道中心速度分布奇怪,且不同的初值会收敛到不同的结果;
综上所述,kOmega计算充分发展槽道流,槽道中心区域U和k都不合理,请教各位,是我动量方程源项加的不对,还是湍流模型本身有问题呢?
附上 求解器和算例*附件
求解器:simpleFullyDevelopFoam
算例1:channel_pGrad_1cells_H_simple,用 simpleFullyDevelopFoam 求解器;
算例2:channel_pGrad_fvOptions,用 simpleFoam 求解器; -
动量方程如何加入加压力梯度源项?目的:求解充分发展槽道流动,进出口设置为cyclic周期性边界。通过动量方程中加入流动的驱动力:压力梯度。
求解器:OpenFOAM v3.0+
其他参考:fvOptions 的demo:simpleFoam\channel395,设置的是平均速度Ubar,还不是驱动压力;
目前遇到的问题:通过下面的这3种方法,加入压力梯度源项后,测试了 kEpsilon 和 kOmega 湍流模型,kEpsilon表现正常,kOmega在槽道中心区域算出诡异的速度分布,分析问题可能出现在两方面:1)加源项的方法,2)kOmega湍流模型本身。具体算例,我会在另一个帖子里说明。这篇帖子向大家请教添加源项的方法,下面是我尝试的几种方法,不知道是不是正确,请大家帮忙批评指正 :)
- 尝试1:
createField 中定义一个压力梯度向量 pGrad,变量类型为volVectorField
volVectorField pGrad ( IOobject ( "pGrad", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh );
simpleFoam 作如下改动:
solve(UEqn() == -fvc::grad(p)-pGrad); // UEqn.H U = HbyA - rAtU()*fvc::grad(p) - rAtU()*pGrad; // pEqn.H
- 尝试2:
同样需要在 createField.H 中定义 pGrad,不同的是换一种方法改动
simpleFoam,在 UEqn 中加入 -pGrad:
tmp<fvVectorMatrix> UEqn ( fvm::div(phi, U) + MRF.DDt(U) + turbulence->divDevReff(U) == fvOptions(U) - pGrad );
- 尝试3:
通过fvOptions加入源项,该方法参考 cfdonline,
这样给动量方程加入了 pGrad=10 的压力梯度
momentumSource { type vectorSemiImplicitSource; active on; selectionMode all; vectorSemiImplicitSourceCoeffs { //volumeMode absolute; // specific volumeMode specific; injectionRateSuSp { U ( (10 0 0) 0); } } }
- 尝试1: