你好,请问你编写的NSRFG,在使用时计算域是多大,网格尺度是多大,能否在整个计算域上保持低耗散甚至无耗散么
疏影横斜水清浅
帖子
-
-
@脉动通风 你好,能详细说一下么,你是用的哪种颗粒注入方式,内部画网格是指生成面还是cellzone,你使用的方式是连续注入么
-
@Vortex 请问dynamicLagrangian湍流模型,flm和fmm的边界设置是什么样的
-
@SHUKK 是壁面函数的原因吗
-
@SHUKK 请问你这个问题解决了么
-
@李东岳 是的,我使用的OpenFOAM7,我安装个10试试。
-
@李东岳 我在controlDict中写入
cacheTemporaryObjects ( k ); functions { #includeFunc writeObjects("k") }
结果出现错误,请问李老师,能知道是什么原因吗
-
@李东岳epsilon()函数要不要改
template<class BasicTurbulenceModel> tmp<volScalarField> tshbSmagorinsky<BasicTurbulenceModel>::epsilon() const { k_ = (this->k(fvc::grad(this->U_))); return volScalarField::New ( IOobject::groupName("epsilon", this->alphaRhoPhi_.group()), this->Ce_*k_*sqrt(k_)/this->delta() ); }
-
@2019201300 请问,这个代码是能够将每个网格的体积存储在Vcell中吧?
volScalarField Vcell ( IOobject ( "Vcell", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, dimensionedScalar("", dimVolume, 0.0) ); forAll(Vcell ,i) { Vcell[i] = mesh.V()[i]; }
-
请问这个代码怎么修改,才可以使用网格的体积,
volScalarField muc ( IOobject ( IOobject::groupName("mu", continuousPhaseName), runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), rhoc*laminarTransport.nu() ); volScalarField Rep("Rep", dp/laminarTransport.nu()*mag(Up - U)); volScalarField CDRe("CDRe", 24/Rep+3.6*pow(Rep,-0.313)); scalar deltaTs = runTime.deltaTValue(); Up = Up + deltaTs*(3/4*muc/rhop/pow(dp,2.0)/mesh.V()*CDRe*(U - Up) + g);
其中的mesh.V()怎么修改才可以。
-
@ShaneHEEE 是的,和出口设置一样,就可以了
-
@脉动通风 没有解决,如果createPatch,这就会变成边界面,不符合。我后来采用了入口面释放。
-
@李东岳 好的,谢谢老师
-
@李东岳 老师您好,这个表示为0,那输运方程能不能删除kSource()。
-
template<class TurbulenceModel, class BasicTurbulenceModel> tmp<fvScalarMatrix> kOmegaSST<TurbulenceModel, BasicTurbulenceModel>::kSource() const { return tmp<fvScalarMatrix> ( new fvScalarMatrix ( k_, dimVolume*this->rho_.dimensions()*k_.dimensions()/dimTime ) ); }
tmp<fvScalarMatrix> kEqn ( fvm::ddt(alpha, rho, k_) + fvm::div(alphaRhoPhi, k_) - fvm::laplacian(alpha*rho*DkEff(F1), k_) == alpha()*rho()*Pk(G) - fvm::SuSp((2.0/3.0)*alpha()*rho()*divU, k_) - fvm::Sp(alpha()*rho()*epsilonByk(F1, F23), k_) + kSource() + fvOptions(alpha, rho, k_) );
湍动能输运方程中的kSource()应该是源项,它为什么是k_,请问有没有人明白?
-
@SHUKK 你好,请问有Yang 2017的文章,这篇文章下载是不是收费?
-
81页:方程(4.179)应该改为方程(4.170) -
@李东岳 谢谢李老师!
-
在OpenFOAM 5.0以及之前版本中,PIMPLE{ }的设置
PIMPLE { momentumPredictor yes; correctPhi yes; nOuterCorrectors 50; nCorrectors 2; nNonOrthogonalCorrectors 3; pRefCell 0; pRefValue 0; residualControl { p { tolerance 1e-5; relTol 0; } U { tolerance 1e-5; relTol 0; } } }
其中,residualControl可以控制外循环的残差,使之达到残差标准后跳出循环,不一定循环完nOuterCorrectors的次数。
而在OpenFOAM 6.0之后的,关于residualControl的设置变了PIMPLE { momentumPredictor yes; correctPhi yes; nOuterCorrectors 50; nCorrectors 2; nNonOrthogonalCorrectors 3; pRefCell 0; pRefValue 0; residualControl { p 1e-5; U 1e-5; nuTilda 1e-5; } }
没有了相对残差的参数设置,我同样计算了相同的算例,发现每次都会循环完所有的nOuterCorrectors次数(将残差值调大也不可以,我调过残差为1)。
请问,6.0之后的版本怎么设置pimpleFoam的外循环限制,使之可以达到标准后跳出,而不是循环全部外循环次数。 -
@cccrrryyy 不是发散,是结果不对,非常明显。我已经找到错误原因了,我的压力边界设置错误了,设置成零梯度了,改成零压力计算结果就可以了。再次谢谢您,也谢谢各位大佬吧友的解答。
-
@cccrrryyy 好的,谢谢指点,我之前试过inletOutlet,如果整个上边界都设置inletOutlet,当时计算结果是错误的。我后面再试一试,看看除了放大计算域,减小阻塞率之外还有没有其他方法
-
@田畔的风 好的,谢谢你的建议,我将计算域放大试试。
-
@李东岳 是的,N-S方程的求解是这样的,我想知道的是有没有人做过类似的模拟以及风场观测什么的,我们真实自然界中的现象是什么样的,毕竟模拟只是求解方程,得到结果,边界条件的设置上还是有不足,没法像自然界那样,上方的大气是一直向上开放的。做过这方面模拟的人是怎么解决这个问题的
-
如题,对于迎风坡台阶地形的风场模拟,边界条件应该如何设置,主要是上边界如何设置,使其在上坡之后不会呈现槽道流变窄后的流速一直很大的情况,我的边界条件设置如下
inlet { type atmBoundaryLayerInletVelocity; flowDir (1 0 0); zDir (0 1 0); Uref 2.0; Zref 10.0; z0 uniform 0.01; zGround uniform 0.0; } outlet { type inletOutlet; phi phi; inletValue uniform (0 0 0); value uniform (0 0 0); } topWall { type slip; } "(flatWall1|flatWall2|slopeWall1|slopeWall2)" { type noSlip; } front { type empty; } back { type empty; }
我的结果如图
可以明显看到迎风坡台阶后的风速一直比台阶前平地风速大。
请问这种情况从自然界的真实角度来说是正常的吗,如果不是这样的,那么模拟的时候关于上边界应该如何设置才能改善这种槽道流的特点? -
@星星星星晴 主要是计算域比较大,而且需要连续释放
-
@星星星星晴 你好,请问创建内部面有成功吗,我想通过创建一个内部面进行释放拉格朗日颗粒
-
@李东岳 如果想要改进,就需要改公式里的C1和C2这两个参数,使其可以适应大尺度,Yang2009中的应该是根据实验数据或者其他的进行曲线拟合、调整得到的,我理解的,如果要调整就需要一些野外的实验观测数据什么的,根据实验得到一些经验参数。我暂时解决不了,这些经验参数不能拍脑袋确定,需要一定的依据。再有方法就是对后面乘的那个系数公式进行改进了,这都需要风工程的大佬们来试验解决了。我暂时也就想到这些,抛个砖
-
@李东岳 我明白了,HW07的湍动能和耗散率都是定值,不随高度变化,而Yang09的乘了一个系数,这个系数是个开平方数,而里面的数随着高度的增加会减小,当高度超过一定高度(与粗糙度系数有关)时,这个数就变成了负数,那么开方运算就不可以了,程序报错。
-
@李东岳 这样呀,那我明白了,HW07那个可以放大计算域,但是那个的缺点是湍动能不随高度变化,所以我想着Yang09的也可以放大的,试了试,每次都发散
-
@李东岳 测试的网格如下,网格尺寸比较大
convertToMeters 1; vertices ( (0 0 0)//0 (5000 0 0)//1 (5000 500 0)//2 (0 500 0)//3 (0 0 1)//4 (5000 0 1)//5 (5000 500 1)//6 (0 500 1)//7 ); blocks ( hex (0 1 2 3 4 5 6 7) (500 50 1) simpleGrading (1 10 1) ); edges ( ); boundary ( inlet { type patch; faces ( (3 0 4 7) ); } outlet { type patch; faces ( (1 2 6 5) ); } topWall { type patch; faces ( (2 3 7 6) ); } flatWall1 { type wall; faces ( (0 1 5 4) ); } front { type empty; faces ( (4 5 6 7) ); } back { type empty; faces ( (3 2 1 0) ); } ); mergePatchPairs ( );
-
@李东岳 是的
-
@李东岳老师您好,请问Yang2009中的垂向网格设置,第一层网格必须很小吗,和y+差不多。如果将垂向网格的尺寸变大,算例会发散,有人遇到过这种情况吗?
-
请问有没有人做大涡模拟的中性大气环境湍动能自保持,大涡模拟的有没有参考文献?
-
@Tens 好的,谢谢老师们,position()函数还存在,就是颗粒的位置坐标(笛卡尔坐标),我也是暂时通过这个输出的,其他的办法暂时没找到呢
-
@mcOF 好的,我去看一下,谢谢
-
@calrel 请问有关粒子轨迹的结果能弄出来了么
-
请问各位大佬,在of7中,拉格朗日场的粒子位置信息输出是这种,其中括号里的不是笛卡尔坐标系的位置坐标,那应该怎么得到粒子的位置坐标呢,使用什么函数或者怎么去编写代码? -
@Dingcy 我的理解是,massTotal和duration这两个参数是上限值,看哪个先达到就以那个为准。举个例子,massTotal是1000000,duration是10,那就是释放了10s就结束了,如果massTotal是0.001,duration是10000000,那就是释放了0.001kg。我是这么理解的,我不确定代码中是不是这样。仅供参考
-
在OpenFOAM5.X之后的版本中都改了这个position文件的记录方式,那如果想得到粒子的位置信息从而得到轨迹,是不是需要使用p.position函数得到坐标矢量,存到新的矢量变量中,这样就可以得到粒子坐标轨迹了
-
@疏影横斜水清浅 自问自答吧,是组合公式
C(k,i) -
-
@aiweimo 你好,请问你同学的那篇2D的障碍物沙尘绕流的文章题目是什么。
-
@洱聿 你计算的0/p文件中的internalField uniform 0后面有没有“;”,是不是标点的原因。
-
@李东岳 好的,了解了,谢谢李老师!
-
@李东岳 主要是我对CFD的计算域选取不太了解,也没看到有关这个的说明文章,一般用CFD的感觉都是计算域不会太大
-
@李东岳 我也是做科研,准备用它做博士工作。李老师,使用矩方法的计算域一般多大,或者说理论上它适用于几千米的计算域吗?
-
@李东岳 是的,使用拉格朗日求解器是很好,但是当求解计算域比较大时,拉格朗日法消耗的计算资源就太多了,有些得不偿失,所以我在考虑使用欧拉法去计算,并且也在考虑矩方法,矩方法同样存在GPBE在边界上的沉积处理。
-
@李东岳 谢谢李老师,这种处理方式我看过,这是细颗粒的,不需要考虑重力沉降,只需要考虑扩散沉积,对于50微米到100微米的颗粒就需要考虑重力影响了,同样的当空气流动比较大,5m/s的速度,这种情况下,对于斜坡类的壁面又应该怎么考虑,是使用重力沉降末速度向斜面的分速度还是使用颗粒的速度向斜面的分速度,这些都会影响最后的计算结果,这些都没又找到好的解决方法。
NSRFG在OF里面计算出现的问题
topoSet, createPatch, createBaffle 在网格内部添加一个平面 求指教
运行时报错
中性大气环境湍流动能的自保持 | 附有算例下载
中性大气环境湍流动能的自保持 | 附有算例下载
Smagorinsky模型不输出k_sgs场
Smagorinsky模型不输出k_sgs场
Smagorinsky模型不输出k_sgs场
OpenFOAM小代码
OpenFOAM小代码
大气边界层迎风坡台阶地形的风场模拟
topoSet, createPatch, createBaffle 在网格内部添加一个平面 求指教
湍流模型中的湍动能输运方程源项
湍流模型中的湍动能输运方程源项
湍流模型中的湍动能输运方程源项
中性大气环境湍流动能的自保持 | 附有算例下载
中性大气环境湍流动能的自保持 | 附有算例下载
《无痛苦N-S方程笔记》勘误
pimpleFoam外循环残差控制
pimpleFoam外循环残差控制
大气边界层迎风坡台阶地形的风场模拟
大气边界层迎风坡台阶地形的风场模拟
大气边界层迎风坡台阶地形的风场模拟
大气边界层迎风坡台阶地形的风场模拟
大气边界层迎风坡台阶地形的风场模拟
topoSet, createPatch, createBaffle 在网格内部添加一个平面 求指教
topoSet, createPatch, createBaffle 在网格内部添加一个平面 求指教
中性大气环境湍流动能的自保持 | 附有算例下载
中性大气环境湍流动能的自保持 | 附有算例下载
中性大气环境湍流动能的自保持 | 附有算例下载
中性大气环境湍流动能的自保持 | 附有算例下载
中性大气环境湍流动能的自保持 | 附有算例下载
中性大气环境湍流动能的自保持 | 附有算例下载
中性大气环境湍流动能的自保持 | 附有算例下载
请问OF7中如何得到拉格朗日粒子轨迹
请问OF7中如何得到拉格朗日粒子轨迹
请问如何得到颗粒迹线?
请问如何得到颗粒迹线?
请问OF7中如何得到拉格朗日粒子轨迹
拉格朗日中注射模型里的massTotal的意义?
拉格朗日一个bug
请问有谁知道这个计算符号()的含义
请问有谁知道这个计算符号()的含义
2D欧拉拉格朗日计算
关于internalField nonuniform List<scalar>如何定义
气固两相流的欧拉-矩方法能否计算颗粒的壁面沉积
气固两相流的欧拉-矩方法能否计算颗粒的壁面沉积
气固两相流的欧拉-矩方法能否计算颗粒的壁面沉积
气固两相流的欧拉-矩方法能否计算颗粒的壁面沉积
气固两相流的欧拉-矩方法能否计算颗粒的壁面沉积