时变的非均匀速度边界条件timeVaryingMappedFixedValue运行发散
-
请教各位老师一个边界条件文件,如题,我对于速度条件使用了在网上搜到的timeVaryingMappedFixedValue条件,可以导入时变、非均匀的风速数据,但是运行后会报发散错误,我认为是因为没有修改其他物理量边界条件的问题,但是没有找到相关的解决方法。
希望各位老师帮忙看下怎么修改对应的边界条件:
blockMesh如下:backgroundMesh { xMin 1250; xMax 8698; yMin 1343; yMax 9476; zMin -60; zMax 600; xCells 248; yCells 271; zCells 33; } convertToMeters 1; vertices ( ($!backgroundMesh/xMin $!backgroundMesh/yMin $!backgroundMesh/zMin) ($!backgroundMesh/xMax $!backgroundMesh/yMin $!backgroundMesh/zMin) ($!backgroundMesh/xMax $!backgroundMesh/yMax $!backgroundMesh/zMin) ($!backgroundMesh/xMin $!backgroundMesh/yMax $!backgroundMesh/zMin) ($!backgroundMesh/xMin $!backgroundMesh/yMin $!backgroundMesh/zMax) ($!backgroundMesh/xMax $!backgroundMesh/yMin $!backgroundMesh/zMax) ($!backgroundMesh/xMax $!backgroundMesh/yMax $!backgroundMesh/zMax) ($!backgroundMesh/xMin $!backgroundMesh/yMax $!backgroundMesh/zMax) ); blocks ( hex (0 1 2 3 4 5 6 7) ( $!backgroundMesh/xCells $!backgroundMesh/yCells $!backgroundMesh/zCells ) simpleGrading (1 1 1) ); boundary ( west { type patch; faces ( (0 3 7 4) ); } east { type patch; faces ( (1 5 6 2) ); } south { type patch; faces ( (0 4 5 1) ); } north { type patch; faces ( (3 2 6 7) ); } ground { type wall; faces ( (0 1 2 3) ); } top { type patch; faces ( (4 7 6 5) ); } );
各物理量边界条件如下:
Udimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { west { type timeVaryingMappedFixedValue; offset (0 0 0); setAverage off; } east { type pressureInletOutletVelocity; value uniform (0 0 0); } north { type timeVaryingMappedFixedValue; offset (0 0 0); setAverage off; } south { type pressureInletOutletVelocity; value uniform (0 0 0); } ground { type noSlip; } buildings { type noSlip; } wall { type noSlip; } top { type timeVaryingMappedFixedValue; offset (0 0 0); setAverage off; } }
P
dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { west { type zeroGradient; } east { type totalPressure; rho rho; psi none; gamma 1; p0 uniform 0; value uniform 0; } north { type zeroGradient; } south { type totalPressure; rho rho; psi none; gamma 1; p0 uniform 0; value uniform 0; } ground { type zeroGradient; } wall { type zeroGradient; } buildings { type zeroGradient; } top { type zeroGradient; } }
nut
dimensions [0 2 -1 0 0 0 0]; internalField uniform 0; boundaryField { west { type calculated; value uniform 0; } east { type calculated; value uniform 0; } north { type calculated; value uniform 0; } south { type calculated; value uniform 0; } ground { type nutkWallFunction; value uniform 0; } buildings { type nutkWallFunction; value uniform 0; } wall { type nutkWallFunction; value uniform 0; } top { type calculated; value uniform 0; } }
k
dimensions [0 2 -2 0 0 0 0]; internalField uniform 1.5; boundaryField { west { type fixedValue; value uniform 1.5; } east { type inletOutlet; inletValue uniform 1.5; value uniform 1.5; } north { type fixedValue; value uniform 1.5; } south { type inletOutlet; inletValue uniform 1.5; value uniform 1.5; } ground { type kqRWallFunction; value uniform 1.5; } buildings { type kqRWallFunction; value uniform 1.5; } wall { type kqRWallFunction; value uniform 1.5; } top { type inletOutlet; inletValue uniform 1.5; value uniform 1.5; } }
spsilon
dimensions [0 2 -3 0 0 0 0]; internalField uniform 0.03; boundaryField { west { type fixedValue; value uniform 0.03; } east { type inletOutlet; inletValue uniform 0.03; value uniform 0.03; } north { type fixedValue; value uniform 0.03; } south { type inletOutlet; inletValue uniform 0.03; value uniform 0.03; } ground { type epsilonWallFunction; value uniform 0.03; } buildings { type epsilonWallFunction; value uniform 0.03; } wall { type epsilonWallFunction; value uniform 0.03; } top { type inletOutlet; inletValue uniform 0.03; value uniform 0.03; } }
-
@coolhhh
大佬您好,感谢您的指导,以下我对于没说清楚的点的一些解释:
1、是的,我是计算的复杂地形上的建筑绕流,,但是不确定是否为URANS,我刚刚接触CFD,还没有具体学过湍流求解方法,现在选择RAS只是想先跑出结果;
2、top面设置为速度入口,是因为我的研究区域,top、west、east、south、north面的速度都是已知的,因此把top面速度条件也给加进去了(理论上应该把除地面外的五个面都设置好初始速度),我要做的工作就是把大尺度的风速给细化,得到研究区域区域内小尺度的风速;
3、zeroGradient这个条件也试过,但是还是发散,经过今天的学习,我认为是k文件epsilon文件的初始值也需要更改,准备以后测试一下。
最后再次感谢大佬的耐心指导!(刚接触CFD,可能对于一些问题的解释并不是很清楚) -
@李东岳
李老师您好,我刚实操OpenFOAM,不太确定是否为您说的单向流求解器:
1、我的研究区域top、west、east、south、north面的速度都是已知的,因此理论上应该把除地面外的五个面都设置好初始速度,我要做的工作就是把大尺度的风速给细化,得到研究区域区域内小尺度的风速(即复杂地形的建筑物扰流);
2、我也认为是湍流的边界条件问题,今天学习后发现可能是因为将入口设置为时变的非均匀速度条件后,并没有改变k文件和epsilon文件对应点位的值(如上边对应文件所示,k和epsilon只是简单的设置成了fixedValue);
3、李老师,想请问您一个问题:如果设置好入流面一个点的(u,v,w)后,这个点的脉动速度分别为(0.05u,0.05v,0.05w)吗?对于下面图中的k和速度场U的关系不是很理解
-
- URANS(Unsteady Reynolds-Averaged Navier-Stokes)就是用RANS湍流模型+瞬态求解器(pisoFoam,pimpleFoam),如果用simpleFoam求解器就是稳态,就不应该用时变的边界
- 没有试过其他5个面都设置速度入口。因为算的不可压缩湍流,我的理解是要能计算至少得满足5个面在每个瞬时的通量总和等于0,即流入等于流出。没看过有人这么设置过,一般都会设置个出口,通过计算自动调整出口的通量,使得满足不可压缩条件
- 既然算瞬态,可以用LES模拟,采用WALE湍流模型,0文件夹只需要设置p,U,nut
- 建议先拿一个简单的长方体空风洞开始,先测试只有1个速度入口+1个出口(侧面和顶面用symmetry),再测试2个速度入口+2个出口(顶面用symmetry),依次增加速度入口个数测试,最后才是看5个面都是速度入口能否算
-
@coolhhh
大佬您好,我可能忘了介绍我的研究时段了,我研究的是较长时间的模拟,理想模拟时间应该是2-3天;模拟区域也比较大,大概为长宽高为6km6km600m。
1、因为研究的时间较长,所以每个边界的风速肯定是变化的(风速输入用的是每个边界所设置的非均匀分布风塔的观测数据,每个面都有数个观测点,观测数据风速利用timeVaryingMappedFixedValue每隔十分钟输入)因为之前学习了windaroundbuildings这个算例(也是建筑扰流),所以设置求解器为simpleFoam,这个算例风速确实是时不变的,这一点没有考虑到,等换成瞬时求解器试试;
2、目前还没有试过五个入流面,因为我也认为可能不太符合通量守恒,所以先设置了3个速度入口和2个出口,我先做一下大佬在4中提供的建议;
3、LES模拟也考虑过,正在学习,等做完2中试验后尝试一下大佬提供的条件,就不用计算k和epsilon文件的设置了。