Skip to content

OpenFOAM

OpenFOAM交流区

4.5k Topics 26.5k Posts
  • 8 Posts
    2k Views
    李东岳

    另外,天河2号那个加速比数据你们看过没有。

    对于此算例,在2048 的并行规模时,计算效率比256 时提高了2倍。

    2个节点无论是对OpenFOAM 还是 FLUENT 都是最优的计算规模,继续扩大计算规模难以继续获得加速效果

    很不可思议。感觉天河2号使用2个节点就行了。。

  • 修改湍流模型,定义表达式的问题

    19
    19 Posts
    5k Views
    李东岳

    @chen_hao

    linearViscousStress.C

    UEqn不用动

  • 输出最大值最小值

    4
    4 Posts
    2k Views
    李东岳

    @vbcwl 感谢感谢!

  • 15 Posts
    4k Views
    zhanghanZ

    fvSolution中修改每一项的tolerance,我的case是bubbleColumnEvaporatingReacting,自带的tolerance是1e-20,我修改为1e-10后计算的非常快,而且计算结果几乎相同。

    FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { "alpha.*" { nAlphaCorr 1; nAlphaSubCycles 3; } p_rgh { solver GAMG; smoother DIC; tolerance 1e-10; relTol 0.001; } p_rghFinal { $p_rgh; relTol 0; } "U.*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-10; relTol 0; minIter 1; } "(e|h).*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-10; relTol 0; minIter 1; } "(k|epsilon|Theta).*" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-10; relTol 0; minIter 1; } Yi { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-10; relTol 0; minIter 1; residualAlpha 1e-8; } } PIMPLE { nOuterCorrectors 1; nCorrectors 1; nNonOrthogonalCorrectors 0; } relaxationFactors { equations { ".*" 0.3; } } // ************************************************************************* //
  • 3 Posts
    577 Views
    W

    @tens 好的谢谢,昨天用funkySetFields做出来了

  • LES与RANS的结果不相同

    37
    37 Posts
    6k Views
    李东岳

    @星星星星晴 在 LES与RANS的结果不相同 中说:

    大佬求下面链接的文档啊。。
    http://www.dyfluid.com/LES.html

    http://www.dyfluid.com/theory.pdf 我最近更新在这里了 你可以看下 51页

    我整个进口是开放的,不是东岳大佬说的有壁面的情况。

    如果你不是这个边界条件,是开放的,那存在卷吸的情况,会很不一样

  • 利用codeStream设置温度边界初始场

    5
    5 Posts
    964 Views
    L

    @tens问题已经解决了,非常感谢指点

  • linearSpring能否传递力给予边界?

    3
    3 Posts
    549 Views
    A

    @李东岳 感谢李老师回复。目前边界是静止的,弹簧一端连接静止边界,一端连接运动物块。从了解到的资料看,目前OF中的弹簧应该也只支持一端连接动物体,一端连接静物体。因为OF通过坐标确定连接点,我想知道如果连接点坐标在边界上,那么这个弹簧是否真的连在了边界上,能否和边界传递力?感觉也想不到什么能够验证的办法。

  • 并行报错

    3
    3 Posts
    536 Views
    bestucanB

    工作中常做好备份工作,否则很容易:添加新功能成没成功且不说,旧功能无法实现了。

    如果有备份拉出来,用 diff 对比不同就很容易排查了

  • twoPhaseEulerFoam中怎么加入PBM模型

    2
    2 Posts
    484 Views
    bestucanB

    搜 openQBMM

  • 气固颗粒反应组分输运方程问题

    1
    1 Posts
    380 Views
    书生kao

    计算气固颗粒反应流动,稠密颗粒流动的基础上添加了气固反应,组分输运方程的代码如下:

    { combustion->correct(); Qdot = combustion->Qdot(); volScalarField Yt(0.0*Y[0]); const volScalarField muEff(turbulence->muEff()); forAll(Y, i) { if (i != inertIndex && composition.active(i)) { volScalarField& Yi = Y[i]; fvScalarMatrix YiEqn ( fvm::ddt(alphac, rhoc, Yi) + mvConvection->fvmDiv(alphaRhoPhic, Yi) - fvm::laplacian ( fvc::interpolate(alphac) *fvc::interpolate(muEff), Yi ) == vanadiumParcels.SYi(i, Yi) + combustion->R(Yi) + fvOptions(rhoc, Yi) ); YiEqn.relax(); fvOptions.constrain(YiEqn); YiEqn.solve("Yi"); fvOptions.correct(Yi); Yi.max(0.0); Yt += Yi; } } Y[inertIndex] = scalar(1) - Yt; Y[inertIndex].max(0.0); }

    编译是没有问题的,目前遇到的问题是各组分的质量分数不对。
    反应是生成Cl2,消耗O2,inertSpecie为N2,计算过程氯气的质量分数不断增加(未越界),而N2的质量分数减少。实际上即便完全反应,N2的质量分数下降应该不大,计算结果不符合实际现象。
    个人理解问题应该是vanadiumParcels.SYi(i, Yi),可以理解为组分输运方程的源项,其代码为

    template<class CloudType> inline Foam::tmp<Foam::fvScalarMatrix> Foam::ReactingCloud<CloudType>::SYi ( const label i, volScalarField& Yi ) const { if (this->solution().coupled()) { if (this->solution().semiImplicit("Yi")) { tmp<volScalarField> trhoTrans ( volScalarField::New ( this->name() + ":rhoTrans", this->mesh(), dimensionedScalar(dimMass/dimTime/dimVolume, 0) ) ); volScalarField& sourceField = trhoTrans.ref(); sourceField.primitiveFieldRef() = rhoTrans_[i]/(this->db().time().deltaTValue()*this->mesh().V()); const dimensionedScalar Yismall("Yismall", dimless, small); return fvm::Sp(neg(sourceField)*sourceField/(Yi + Yismall), Yi) + pos0(sourceField)*sourceField; } else { tmp<fvScalarMatrix> tfvm(new fvScalarMatrix(Yi, dimMass/dimTime)); fvScalarMatrix& fvm = tfvm.ref(); fvm.source() = -rhoTrans_[i]/this->db().time().deltaTValue(); return tfvm; } } return tmp<fvScalarMatrix>(new fvScalarMatrix(Yi, dimMass/dimTime)); }

    到目前为止,我也没看出来有啥问题。所以,想请教一下吧里的大佬,能否帮我解答一下疑惑?如何解决这个问题,请各位大佬不吝赐教!!!

  • 9 Posts
    1k Views

    @jasper-0 在 拉格朗日粒子浓度与网格大小的关系 中说:

    各位大佬好,
    本人最近在想是不是拉格朗日粒子的浓度是与网格大小相关的?因为在openfoam中浓度定义为:

    theta[celli] += p.nParticle()*p.volume(); theta.primitiveFieldRef() /= mesh_.V();

    当网格变小的时候,浓度不就自然而然变大了吗?如果是这样的话,该如何跟实验进行验证呢?

    有关,但是个人理解是没法与实验验证,

    volume fraction的作用的个人理解:

    确定拉格朗日是用什么coupling 确定当前的模拟是否physically成立,因为of中lagrangian 都是point-mass。所以有的时候DPM会出现问题,这也算是EL法的固有缺陷吧,我记得上线好像是65%,具体忘了在哪看到的(有可能类似摩尔定律的故事)。 如果你的parcel很多,(不然为什么用EL不是VOF),达到一个统计学上的匹配就行,比如说velocity profile, velocity RMS/Std, local size distribution,等,你要相信,茫茫parcel海中,只要统计学上会发生,总有一个parcel会发生某些表现,只是概率问题而已。

    @李东岳 大佬 气泡可以用拉格朗日,就是流场别太复杂,而且还需要引入bubble induced turbulence还有不同的drag模型,dispersion模型,还有 eccentricity, wall effect,etc~

  • 3 Posts
    702 Views
    W

    @李东岳 解决了,谢谢!

  • fsiFoam接着最新时间进行运算问题

    2
    2 Posts
    429 Views
    李东岳

    你是个是不是硬盘满了没有输出出来。

    不是的话,可能V0这个变量求解器每次更新的时候要read,把源代码改成NO_READ可以,但是fsiFoam按道理来说不应该有这种bug

  • 不规则多孔介质的网格划分

    20
    20 Posts
    5k Views
    Jack QQJ

    @yuanlee2011 你做出来啦,可以分享一下怎么划分的吗?谢谢

  • 关于nut文件与alphat文件的疑惑

    5
    5 Posts
    4k Views
    李东岳

    湍流粘度?你可以看下这个openfoam湍流模型这一节 http://www.dyfluid.com/theory.pdf
    你的困惑是什么。

  • OpenFOAM8安装出错

    6
    6 Posts
    1k Views
    D

    @dawei 手动指定库文件路径后编译安装成功

  • 3 Posts
    845 Views
    H

    @bestucan 在 关于OpenFOAM计算的是否是动压力系数? 中说:

    都不可压了,计算中密度也不会变。可以看看东岳流体对基本求解器的解析。

    密度是设定的,在 constant/transportProperties 里

    谢谢回复!

  • 1 Posts
    391 Views
    五好青年

    有前辈,可以分享一个OpenFOAM-v1906的虚拟机吗?百度网盘就行

    因为我想简单测试一个程序

    感谢

  • 7 Posts
    3k Views
    五好青年

    可以分享一个OpenFOAM-v1906的虚拟机吗?