请教:buoyantBoussinesqPimpleFoam边界条件设置
-
物理问题描述(2-D) :(本来想画个图的,可惜我每次上传图片都不成功,还好这个问题不复杂,用文字描述好了) 一个方盒子,内部有5摄氏度的水(冷水),底部恒温加热(比如200摄氏度);左右两侧壁绝热且无流体出入(closed);顶部可供流体自由出入(比如冷水可以向下流动,热水可以向上流动流出)。假设整个盒子处于100 m深的冷水中,也就是顶部有一个固定液压1 MPa。
这个问题也就是流体受热在浮力作用下的流动问题。OpenFoam求解器 : buoyantBoussinesqPimpleFoam貌似可以求解这个问题,但是这个求解器里面有湍流模型和其他一些选项,不利于我这样的初学者理解。将buoyantBoussinesqPimpleFoam稍做修改:去掉了湍流模型,温度方程中的扩散系数假设为一个常数,取消了压力参考设置。 代码和算例以上传至github-hotwaterFoam
算例中设置了这样范围的一个二维网格 x: [0,0]; y:[-110,-100]; z: [-1,1]. 网格节点个数: (90 100 1) ;长度单位都是m。(算例文件也在hotwaterFoam里面)初始条件和边界条件设置如下,
出来的结果跟预想的不一样,不知道问题出在哪里了,代码应该没有问题。不知道这个边界条件设置是否正确,如果不正确,那么上面的这个物理问题应该如何设置边界条件。请教各位大神
- 温度 T
internalField uniform 5; boundaryField { floor { type fixedValue; value uniform 200; } ceiling { type inletOutlet; inletValue 5; value 0; } sideWalls { type zeroGradient; } }
- p_rgh
internalField uniform 0; boundaryField { floor { type fixedFluxPressure; rho rhok; value $internalField; } ceiling { type fixedFluxPressure; rho rhok; value $internalField; } sideWalls { type zeroGradient; } }
- p
internalField uniform 0; boundaryField { wall { type calculated; value $internalField; } }
- U
internalField uniform (0 0 0); boundaryField { floor { type noSlip; //type fixedValue; //value (0 0.001 0); } ceiling { type noSlip; } sideWalls { type noSlip; } }
-
太棒了! 我运行了楼主写的 hotWater 求解器。
我从运行结果上看,似乎是温度和期望值不同? 时间点为 50 的时候, 我发现温度的 contour 比较合理,热水上升。
但是下边界层温度的梯度是不是太大了?即便在 300 秒后,从 温度的 contour 上看,依旧是非常明显的分层。 个人觉得温度应该从下自上缓慢过度才对?
到模拟结束的时候,我发现全场的温度都稳定在了 27 (温度是 K?),确实是和想象中不一样。
楼主有没有试过用原来的求解器做相同的算列?结果怎么样呢?
-
fvScalarMatrix TEqn ( fvm::ddt(T) + fvm::div(phi, T) - fvm::laplacian(alphaEff, T) == radiation->ST(rhoCpRef, T) + fvOptions ( t) );
去掉这个
== radiation->ST(rhoCpRef, T) + fvOptions ( t)
个人觉得,楼主提供的数值算例是对这个修改过方程的解, 但是这样的修改,能否在一定精度内代表真实的物理现象呢?
-
@random_ran 是的,温度跟想象的不一样。
我试了底边界温度如果太低的话短时间内几乎不会有plume splitting,所以试了一下更高的温度。
我这里的温度单位都是摄氏度。这个我是从原来的求解器基础上改的,用自带的算例BenardCells一步一步测试,求解器简化后对这个算例的结果并没有什么影响,所以我猜求解器修改应该没错。
-
@random_ran 原来的求解器的
alphaEff
好像是根据湍流模型计算出来的,具体细节还没搞懂。我在原来求解器算例的求解过程中输出了这个量,发现是0.001,是个常数。从量纲来看应该与热传导系数/密度/比热
相同,我就在修改后的求解器中暂用DT/cp_f/rho0_f
代替了。而
==
后面的应该是与源项有关的东西,我这里没有其他热源,所以就去掉了,不知道是不是会有别的影响。(我在原来求解器和BenardCells算例基础上测试了,去掉这一项对结果没有什么影响)看结果好像是不能够有效地从底边界传热,不知道是不是边界条件设置的问题,还是其他什么原因
-
@东岳 帖子好像沉掉了,再次求助李老师。主要就是顶部边界条件不知道怎么设置,顶部是定压,也就是P是恒定的,但是流体可以自由出入。而方程中求解的是prgh,所以不知道prgh如何设置边界条件了,可能还需要与出口的速度边界条件保持一致性