这就得找论文看看了
ShaneHEEE
帖子
-
interFoam(rans)计算明渠流怎么以充分发展的流场作为入口边界 -
interFoam(rans)计算明渠流怎么以充分发展的流场作为入口边界把出口映射到入口
-
interFoam(rans)计算明渠流怎么以充分发展的流场作为入口边界“拷贝”指的是映射过去,openfoam有个mapFields用法
-
DPMFoam如何喷射两种不同密度等性质的粒子如题,两种粒子相互独立,不考虑两种粒子间的相互作用,是否要在createFields.H中创建两个kinematicCloud,如kinematicCloud1,kinematicCloud2,分别对应case/constant下的kinematicCloud1,kinematicCloud2,再分别指定物性
Info<< "Constructing kinematicCloud " << kinematicCloudName << endl; basicKinematicTypeCloud kinematicCloud ( kinematicCloudName, rhoc, Uc, muc, g );
-
中性大气环境湍流动能的自保持 | 附有算例下载@SHUKK
有点久远了额,湍流模型参数betaStar要取0.028,测试了下高度方向网格50个,simpleGrading高度方向取5,有如下结果:
感觉网格还能调试一下,低处会保持得很好 -
各位大佬们,在interdymfoam中如何让物体携带一定的初始速度?0/U boundary type movingWallVelocity
-
关于k-w SST湍流模型边界条件设置的疑惑//k rho_*epsilon_/k_ //epsilon rho_*Cmu_*sqr(k_)/epsilon_ 为k_和epsilon_接近0,导致除法崩溃,所以使用bound()
可以试试增大epsilon 减小k;连续性残差也偏大,可以试试fvSchemes散度项二阶换一阶。
-
Openfoam2312用sample时报出如下错误sample.lines 去掉符号“.”呢
-
大气边界层迎风坡台阶地形的风场模拟@疏影横斜水清浅 在 大气边界层迎风坡台阶地形的风场模拟 中说:
@cccrrryyy 不是发散,是结果不对,非常明显。我已经找到错误原因了,我的压力边界设置错误了,设置成零梯度了,改成零压力计算结果就可以了。再次谢谢您,也谢谢各位大佬吧友的解答。
你好,请问你说的是上边界的压力零梯度改为固定值0就正常了吗
-
openfoam暂停计算后如何更换新的边界条件后,继续计算?手动直接改那个时间步的边界条件就可以,只不过需要下拉到最下面一点
-
非0时间文件开始并行计算的问题decomposePar -latestTime 可以不
-
请教一下标准k-epsilon湍流模型中的epsilon_()与k_()与epsilon_和k_有什么区别@李东岳 在 请教一下标准k-epsilon湍流模型中的epsilon_()与k_()与epsilon_和k_有什么区别 中说:
目的:减少并行通信,从而降低并行计算的计算成本。(只有boundaryField才需要通信)
我不觉得是这个原因。我觉得应为这个是源项。源项是源项。源项不应该对boundary产生印象。
感谢李老师回复, 我再查查看看
-
请教一下标准k-epsilon湍流模型中的epsilon_()与k_()与epsilon_和k_有什么区别https://www.cfd-online.com/Forums/openfoam-programming-development/224302-difference-between-rho-rho_-rho.html
@李东岳 李老师,这里。修正下:大部分通信发生在boundaryField
另外,两个湍流模型里的divU
和G
的定义也不一样://standard k-epsilon volScalarField::Internal divU ( fvc::div(fvc::absolute(this->phi(), U))() ); tmp<volTensorField> tgradU = fvc::grad(U); volScalarField::Internal G ( this->GName(), nut()*(dev(twoSymm(tgradU().v())) && tgradU().v()) ); //LaunderSharmaKE volScalarField divU(fvc::div(fvc::absolute(this->phi(), U))); tmp<volTensorField> tgradU = fvc::grad(U); volScalarField G(this->GName(), nut*(tgradU() && dev(twoSymm(tgradU()))));
可以看到,标准模型里都是
InternalField
-
请教一下标准k-epsilon湍流模型中的epsilon_()与k_()与epsilon_和k_有什么区别epsilon,k
在声明时:volScalarField epsilon_; volScalarField k_;
这俩变量类型都是
volScalarField
,volScalarField
就包含internalField
和boundaryField
,epsilon_()
和k_()
以及rho()
和alpha()
中的operator()
返回internalField
,类型相当于volScalarField::Internal
目的:减少并行通信,从而降低并行计算的计算成本。(只有boundaryField才需要通信)
注意:
epsilon_()
和k_()
以及rho()
和alpha()
使用时仅在方程右边构造源项 -
compressibleInterFoam 耦合多组分传输模型插个眼
-
如何输出每个网格单元的尺寸 -
请教一下标准k-epsilon湍流模型中的epsilon_()与k_()与epsilon_和k_有什么区别各位大佬,
标准k-epsilon模型中的epsEqn:// Dissipation equation tmp<fvScalarMatrix> epsEqn ( fvm::ddt(alpha, rho, epsilon_) + fvm::div(alphaRhoPhi, epsilon_) - fvm::laplacian(alpha*rho*DepsilonEff(), epsilon_) == C1_*alpha()*rho()*G*epsilon_()/k_() - fvm::SuSp(((2.0/3.0)*C1_ - C3_)*alpha()*rho()*divU, epsilon_) - fvm::Sp(C2_*alpha()*rho()*epsilon_()/k_(), epsilon_) + epsilonSource() + fvModels.source(alpha, rho, epsilon_) );
请问epsilon_()与k_()中的操作符()返回的是上一个迭代步/时间步的值吗?
另外,我想像LaunderSharmaKE一样改变这一项的系数
- fvm::Sp(C2_*alpha()*rho()*epsilon_()/k_(), epsilon_)
参考LaunderSharmaKE中定义系数的代码:
//LaunderSharmaKE.H声明 tmp<volScalarField> f2() const; //LaunderSharmaKE.C定义 template<class BasicMomentumTransportModel> tmp<volScalarField> LaunderSharmaKE<BasicMomentumTransportModel>::f2() const { return scalar(1) - 0.3*exp(-min(sqr(sqr(k_)/(this->nu()*epsilon_)), scalar(50.0))); }
参考LaunderSharmaKE定义的epsilonEqn:
tmp<fvScalarMatrix> epsEqn ( fvm::ddt(alpha, rho, epsilon_) + fvm::div(alphaRhoPhi, epsilon_) - fvm::laplacian(alpha*rho*DepsilonEff(), epsilon_) == C1_*alpha*rho*G*epsilon_/k_ - fvm::SuSp(((2.0/3.0)*C1_ - C3_)*alpha*rho*divU, epsilon_) - fvm::Sp(C2_*f2()*alpha*rho*epsilon_/k_, epsilon_) + alpha*rho*E + epsilonSource() + fvModels.source(alpha, rho, epsilon_) );
LaunderSharmaKE中直接使用的是epsilon_,k_,不加括号表示的是下一个迭代步的待求值吗?
如果在标准k-epsilon中定义一模一样的函数
f2()
,并加到eqsEqn
中,只有将标准k-epsilon中的epsilon_(), k_()
改为epsilon_, k_
,编译才能通过,否则会因为无法匹配Sp函数报错:error: no matching function for call to ‘Sp(Foam::tmp<Foam::Field<double> >, Foam::volScalarField&)’ 418 | - fvm::Sp(C2_*f2()*alpha()*rho()*epsilon_()/k_(), epsilon_)
那么我将
epsilon_()/k_()
直接改为epsilon_/k_
会影响结果吗?或者有没有其他解决方法
谢谢各位大佬!!
-
OpenFOAM是否有处理线积分的函数
如上图,这样一个积分公式,k是湍动能,z是计算域高度。目前我仅能想到通过步进来计算:sum = 0; for(scalar z=0; z<=maxHeight; z=z+0.01) { sum += z*sqrt(k)*0.01; }
想问下各位大佬怎么写成OpenFOAM风格的代码
-
求本大气边界层相关的电子书 An introduction to Boundary Layer Meteorology@wangfei9088 在 求本大气边界层相关的电子书 An introduction to Boundary Layer Meteorology 中说:
@ShaneHEEE 咱就是说有没有可能论坛不能上传超过1M的文件?要不要留个邮箱?
感谢铁铁 ,1799361277@qq.com
-
求本大气边界层相关的电子书 An introduction to Boundary Layer MeteorologyRoland B. Stull的An introduction to Boundary Layer Meteorology,网上实在找不到资源了