Skip to content

OpenFOAM

OpenFOAM交流区

5.4k 主题 32.4k 帖子
  • 1 帖子
    118 浏览

    近期尝试使用compressibleInterDyMFoam计算近壁面空化泡的溃灭,但在计算一定时间后出现了一些与实际不符的现象。
    算例设置如下:
    初始气泡半径R0=0.1mm,距离壁面距离λ=2,原计算域大小为5mm5mm1mm,实际计算域取其1/4。草图如下:
    1265c60d-3e45-457e-84df-081f40874abd-image.png
    初始网格密度为Δx=Δy=Δz=0.025mm。后续用自适应网格进行加密,dynamicMeshDict:

    FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object dynamicMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dynamicFvMesh dynamicRefineFvMesh; //dynamicFvMesh staticFvMesh; dynamicRefineFvMeshCoeffs { // How often to refine refineInterval 1; // Field to be refinement on field alpha.water; // Refine field inbetween lower..upper lowerRefineLevel 0; upperRefineLevel 0.999; // If value < unrefineLevel unrefine unrefineLevel 10; // Have slower than 2:1 refinement nBufferLayers 3; // Refine cells only up to maxRefinement levels maxRefinement 5; // Stop refinement if maxCells reached maxCells 6000000; // Flux field and corresponding velocity field. Fluxes on changed // faces get recalculated by interpolating the velocity. Use 'none' // on surfaceScalarFields that do not need to be reinterpolated. correctFluxes ( (phi none) (nHatf none) (rhoPhi none) (alphaPhi none) (alphaPhiUn none) (alphaPhi10 none) (alphaPhi1Corr0 none) (ghf none) ); // Write the refinement level as a volScalarField dumpLevel true; }

    计算到10.2μs后,气泡突然从溃灭状重新开始增大,而并没有完全溃灭,如图所示。
    10.2μs:
    a833b3e2-ebc9-43b4-8363-d153ec8db0e0-10.2um.png
    10.4μs:
    e248f2ea-78d2-4100-a3a9-551f88c499e3-10.4um.png

    想问问大家这是什么原因所导致的,可能会是初始场设置不合理或是边界条件设置不合理?
    初始场由于初始网格较疏以及后续加密的缘故,几个时间步后会变成这样:
    170ce1d8-861d-4cfb-857b-2e2da4ed06eb-初始场.png

    边界条件如下所示:
    alpha.water:

    boundaryField { wall { type zeroGradient; } outlet { type zeroGradient; } symmetry { type symmetry; } }

    p:

    boundaryField { wall { type calculated; value uniform 100000; } outlet { type calculated; value uniform 100000; } symmetry { type symmetry; } }

    p_rgh:

    boundaryField { wall { type fixedFluxPressure; gradient uniform 0; value uniform 100000; } outlet { type fixedFluxPressure; gradient uniform 0; value uniform 100000; } symmetry { type symmetry; } }

    T:

    boundaryField { wall { type zeroGradient; } outlet { type zeroGradient; } symmetry { type symmetry; } }

    T.air:

    boundaryField { wall { type zeroGradient; } outlet { type zeroGradient; } symmetry { type symmetry; } }

    T.water:

    boundaryField { wall { type zeroGradient; } outlet { type zeroGradient; } symmetry { type symmetry; } }

    U:

    boundaryField { wall { type noSlip; } outlet { type zeroGradient; value uniform (0 0 0); } symmetry { type symmetry; } }
  • openfoam对于气泡进行自适应网格细化出现棱角

    4
    4 帖子
    3k 浏览
    WeakFormW

    我参考HZDR的代码弄了个setbubble小工具,让气泡初始化就是圆的:5be8a963-f837-4652-9c92-a44ffd016afd-image.png
    但是我的问题是进行计算之后貌似界面的细化很差,很多界面细化网格级别没达到最低,不知道您怎么解决的这个问题:
    2964e223-615d-4d60-81f0-7a70f7db825d-image.png

  • 带薄层的非均匀温度边界条件如何植入?

    1
    1 帖子
    150 浏览

    非均匀温度边界条件可以通过codedFixedValue轻松实现,
    带壁厚的温度边界条件可以通过externalWallHeatFluxTemperture实现。
    如代码所示:

    \\非均匀温度边界条件 wall { type codedFixedValue; name dummy; code #{ const vectorField& Cf = patch().Cf(); const scalar a0 = 0.1; forAll(Cf, faceI) { const scalar y = Cf[faceI].y(); (*this)[faceI] = a0*y; } #}; } \\薄壁温度条件 wall { type externalWallHeatFluxTemperature; mode coefficient; h uniform 1e10; Ta 1620; thicknessLayers (0.015); kappaLayers (4); kappaMethod fluidThermo; value $internalField; }

    但是,当我想像下面这样编程使Ta为非均匀值时,会报错,即使我使用了codeInclude codeOptions codeLibs之后,仍会报错 ‘patch’ was not declared in this scope,似乎在externalWallHeatFluxTemperature中,无法访问到网格信息。请问各位大佬有解决办法吗?或者有没有别的办法实现带薄壁的非均匀温度边界呢?

    ‘vectorField’ does not name a type ‘Cf’ was not declared in this scope Ta coded; code #{ const vectorField& Cf = patch().Cf(); const scalar a0 = 0.1; forAll(Cf, faceI) { const scalar y = Cf[faceI].y(); (*this)[faceI] = a0*y; } #};
  • fluidsolver和isothermalfluid的继承关系问题

    1
    1 帖子
    137 浏览
    M

    各位老师好,之前我都在of10中修改求解器,但最近换到了of13,我希望去更改buossinesq假设时的求解器代码,但是对于fluidsolver和isothermalfluid的继承感到困惑,在官网看到fluidsolver继承isothermalfluid,但在fluidsolver中我并未找到相关代码,因此想请教各位在模块化代码下要怎么去修改求解器,谢谢大家!

  • 两相流自由液面处速度场异常

    1
    1 帖子
    207 浏览
    liujmL

    各位老师好,

    最近在使用K-omega SST湍流模型处理两相流的时候发现自由液面处的速度异常,但是不影响波面,如图所示。请问,这种情况是什么引起的,会影响计算结果吗?要如何解决?

    万分感谢!

    662a54c8-2f33-4bff-ac92-c8c5059e396d-image.png

  • 13 帖子
    7k 浏览
    L

    @李东岳 很奇怪,又画了个很稀的6万网格量的网格,先前会发散的极低雷诺数,现在却不发散了。看来雷诺数极低,网格就不能太密?

    通过网盘分享的文件:2D_21cylinders_Re0.0001.zip
    链接: https://pan.baidu.com/s/1NdfFZrV2k_T8mAY7fA7ktg?pwd=8888 提取码: 8888

  • 使用cavitatingfoam模拟气泡溃灭

    7
    7 帖子
    3k 浏览

    @李东岳 老师,请问我想算空化泡溃灭,但似乎compressibleInterFoam并不包含传质项?是要自己改成compressibleInterPhaseChangeFoam嘛?

  • 如何使用moveDynamicMesh初始化变形网格

    4
    4 帖子
    348 浏览
    C

    @liujm 。。。。。。。。。,除了你画图的时候浮体的重心位置变化了,其他设置都没啥变化的。

  • 如何验证网格的二阶收敛精度

    1
    1 帖子
    207 浏览
    L

    simpleFoam求解的定常问题,用的空间离散格式都是二阶的,审稿人让验证网格的二阶收敛精度。不知有没有人用过paraview将稀网格数据插值到密网格上并算过残差E和收敛阶次p?另外对于很复杂的三维网格,网格的非均匀性对收敛阶次公式的计算又该如何考虑呢?
    35fb0dd0-05d4-4fcf-b850-3b3e8d317042-image.png

    be5eddf7-3dd1-41c7-b320-e9fa9531fffc-image.png

  • PIMPLE发散, PISO就发散

    1
    1 帖子
    220 浏览

    Hi,

    我这现在在做欧拉拉格朗日模拟,2-way。然后在模拟中途就爆掉了。。检查了一下flow,发现整个flow都乱掉了,因为parcel的聚集,毕竟两者是相互影响的。

    但是神奇的是,同事把PIMPLE改为了PISO就过了。
    理解不了为什么。

    flow.0068.png

    flow.0069.png

    flow.0070.png

    flow.0071.png

    flow.0072.png

    flow.0073.png

    下面两个图是根据log文件画的,pimple 的拟合造成了温度场和压力场的变化?理解不了?求解惑

    WhatsApp Image 2025-09-25 at 12.08.19.jpeg

    WhatsApp Image 2025-09-25 at 12.08.07.jpeg

  • foam-extend-4.0使用fsiFiam并行计算二维问题报错

    3
    3 帖子
    611 浏览
    G

    顶一下

  • rhoCentralFoam求解器有没有更新MRF

    1
    1 帖子
    189 浏览
    Y

    rhoCetralFoam求解器可不可以增加MRF功能。目前,有没有哪个版本做出更新,希望知道的大佬能给点提示

  • 关于OpenFOAM的残差定义问题请教

    7
    7 帖子
    7k 浏览
    Y

    2bfdf92c-d914-442d-ac28-cb584602383e-image.png
    在网上查了资料Openfoam残差定义是这个(代码我没找到),和楼主发的一摸一样,这种残差定义的相关文献有吗。
    为什么有些openfoam论文里面残差定义是两次迭代值之差初以迭代值呢
    58713e7d-182b-458d-8058-defca3c19baa-image.png

  • Rheointerfoam求解不稳定

    1
    1 帖子
    187 浏览
    WeakFormW

    目前在用open foam9版本的rheotool求解粘弹性单气泡上升问题,
    使用PPTLog模型或者FENE-CRLog模型稳定性都很差,Co数缩小到0.05依然发散,GiesekusLog模型能够收敛但是气液界面看起来很怪,不是光滑的水滴型。
    a3619796-3abb-4e40-9a05-b1c5fb886877-image.png
    仿真主要设置参考的官方case,即theta的散度离散采用高阶形式,
    PPT模型和fene模型主要发散都发生在theta计算特征值或者计算应力时候发散,使用clipping办法限制相关量的范围也没有取得很好的效果
    各位前辈有没有好的建议

  • 拉格朗日injection model的自编译

    5
    5 帖子
    459 浏览
    Y

    @星星星星晴 谢谢大佬回复,我后面也看看这个头文件如何使用

  • Openfoam全系统在vscode下的版本切换问题

    3
    3 帖子
    334 浏览

    @星星星星晴 在 Openfoam全系统在vscode下的版本切换问题 中说:

    把你的默认of改一下 因为每开一个terminal 就要读~/.bashrc文件

    感谢前辈指点!

  • 3 帖子
    515 浏览
    T

    @李东岳 感谢老师回复,我试了一下,把算例文件夹从虚拟机拷贝到主机里,用Windows的paraView读取算例就可以了,应该就是虚拟机调用显卡的问题。

  • OF13 源代码编译 找不到scotch.h

    1
    1 帖子
    230 浏览

    ubuntu 24.04 OF13 编译 找不到scotch.h
    解决办法:https://bugs.openfoam.org/view.php?id=4270
    安装bison

  • 2 帖子
    266 浏览
    C

    找到之前的一篇帖子解决这个问题了,用Surface Vectors filter之后在用glyph
    https://www.cfd-china.com/topic/1640/paraview画矢量图-如何将某速度分量设为0

  • 2 帖子
    245 浏览
    X

    已经在求解器中植入了温度方程求解T,是想要根据每一步的T的变化更新物性参数之后准确的算两相传热,现在大概是这样的思路,求教

京ICP备15017992号-2