OpenFOAM

4.5k Topics 26.4k Posts
  • 2 Posts
    839 Views

    已经解决。我的makeTurbulenceModel.C文件中namespace Foam的
    typedef RASModel<EddyDiffusivity<turbulenceModel>> RASfluidThermoCompressibleTurbulenceModel;
    typedef LESModel<EddyDiffusivity<turbulenceModel>>
    LESfluidThermoCompressibleTurb
    应该改成
    typedef RASModel<EddyDiffusivity<fluidThermoCompressibleTurbulenceModel>> RASfluidThermoCompressibleTurbulenceModel;
    typedef LESModel<EddyDiffusivity<fluidThermoCompressibleTurbulenceModel>> LESfluidThermoCompressibleTurb

  • 如何给速度分量设置边界条件?

    7 Posts
    2k Views
  • 颗粒的全局ID输出问题?

    6 Posts
    2k Views

    @zhangxc0223 我不清楚你怎么做的,不过我刚发现可以在paraview中可以显示粒子ID,随着时间步推移,好像每个粒子的ID号是不变的,这样就可以通过后处理输出某个固定ID的各个时间步的信息了,可以交流下

  • 9 Posts
    3k Views

    @BlookCFD 谢谢您的指点,我有看了一眼程序,我理解错了,OF里面是通过计算barycentric displacement来获得barycentric coordinates的,我一直被src/lagrangian/basic/particle/particle.C里面的一句代码给误导了,现贴出来:

    particle.C 1062-1096 OpenFOAM6 void Foam::particle::correctAfterInteractionListReferral(const label celli) { // Get the position from the barycentric data const vector pos(coordinates_.b(), coordinates_.c(), coordinates_.d()); // Create some arbitrary topology for the supplied cell celli_ = celli; tetFacei_ = mesh_.cells()[celli_][0]; tetPti_ = 1; facei_ = -1; // Get the reverse transform and directly set the coordinates from the // position. This isn't likely to be correct; the particle is probably not // in this tet. It will, however, generate the correct vector when the // position method is called. A referred particle should never be tracked, // so this approximate topology is good enough. By using the nearby cell we // minimize the error associated with the incorrect topology. coordinates_ = barycentric(1, 0, 0, 0); if (mesh_.moving()) { Pair<vector> centre; FixedList<scalar, 4> detA; FixedList<barycentricTensor, 3> T; movingTetReverseTransform(0, centre, detA, T); coordinates_ += (pos - centre[0]) & T[0]/detA[0]; } else { vector centre; scalar detA; barycentricTensor T; stationaryTetReverseTransform(centre, detA, T); coordinates_ += (pos - centre) & T/detA; } }

    其中的这句代码

    coordinates_ += (pos - centre) & T/detA;

    其实前面已经先定义了

    coordinates_ = barycentric(1, 0, 0, 0);

    后面计算单点的barycentric coordinates其实还是用的barycentric displacement的概念来转换的。

    困扰了我两周的问题终于解决了,现在异常开心,在此对@东岳 和@BlookCFD 表示万分感谢。

  • time step continuity errors

    10 Posts
    6k Views

    time step continuity error是正常的,表示连续性误差

  • 12 Posts
    3k Views

    @cccrrryyy

    行我再考虑下,谢谢

  • CFDEM安装

    9 Posts
    2k Views

    @fubianhanshu My pleasure

  • 4 Posts
    1k Views

    codeFixedValue

  • 如何导入*.dat文件的网格

    1 Posts
    608 Views

    请问一下,有哪位大佬用过datToFoam这个命令吗,*.dat文件需要写成什么格式呢?

  • 3 Posts
    973 Views

    @东岳 我重新编译试过了,还是这个问题呢

  • 2 Posts
    916 Views

    就是从定义来求解,k还好说,epsilon和omega牵涉到一个特征长度的问题,这个取起来就不容易了,只能多调试。

  • 网格整个运动的边界条件问题

    1 Posts
    684 Views

    运用pimpleFoam,求解一个平板的运动问题,想让整个网格一起运动,程序顺利运行了,但是结果明显是错误。猜测是边界条件设置的问题。想请教一下各位大佬,这种情况下,边界条件如何设置?或者是否有其他方面的问题。1.jpeg 2020-09-20 15-49-52 的屏幕截图.png2020-09-20 15-51-27 的屏幕截图.png 2020-09-20 15-51-23 的屏幕截图.png

  • paraview后处理的清晰度不够

    10 Posts
    4k Views

    @xpqiu 还真是,我用paraview5.6.3可以完美显示出来了

  • of 2006安装

    3 Posts
    974 Views

    @bestucan 看了官方的,主要就是怕需要一些依赖的包。。安装一下试试,看看新功能爽一下

  • pbm模型

    2 Posts
    891 Views

    何止有啊,简直一大堆,搜搜 OpenQBMM。:chigua:

  • 2 Posts
    785 Views

    @胖小帅 速度是不是要设置成slip?你试试

  • 3 Posts
    1k Views

    @东岳 李老师。我是要在壁面附近一层网格区域加源项,每个网格需要加的质量计算的公式,需要乘以壁面这个网格的面积,再除以网格的体积,请问我需要怎么写呀

  • Ubuntu18.04安装openfoam3.0.0报错

    3 Posts
    1k Views

    @bestucan 感谢前辈的回复,目前问题已经解决:xinxin:

    在编译OpenFOAM之前,需要先编译ThirdParty,但OpenFOAM WiKi中的Ubuntu18.04版安装教程里面好像并没有“编译ThirdParty这一步”,希望以后大家注意吧

  • 11 Posts
    6k Views

    @东岳 :xinxin: 谢李老师!

  • 关于颗粒属性的输出

    6 Posts
    2k Views

    @液固两相流 我是在计算域内初始化一定量的颗粒,输出计算过程中每个颗粒的位置和速度信息,这个可以实现吗?

  • 9 Posts
    3k Views

    @东岳 谢谢李老师!:ok:

  • 关于CreateTurbulenceFieldsLES疑问

    2 Posts
    841 Views

    箭头是对指针的成员的引用,找到这个类的定义:turbulenceModel.H

    epsilon()函数声明在205行,是个虚函数,所以在 turbulenceModel.C 里没有定义,而是在使用其作为模板创建新类的时候再各自定义

    在上面那个窗口里搜 epsilon() 函数:
    Screenshot from 2020-09-15 16-37-07.png

    看你的情况是用的哪种定义,其实里面 epsilon() 函数定义大差不差,
    你用的 LES,咋找上层流的了,你找的那个确实是层流的对于 epsilon() 的一个实现,在我发的那个图片里也有

    脉动速度都用上了,那应该不是层流了,速度分成脉动速度和平均速度这就是用了湍流模型了

  • 4 Posts
    1k Views

    最近看了以下jasak的论文,找到了相关描述
    屏幕截图 2020-09-14 160918.jpg

  • 6 Posts
    5k Views

    @random_ran 这位大佬,我也尝试了您说的这个方法,是不是这样产生的网格都是大小一致的,没办法局部加密网格?

  • 提取边界为stl

    7 Posts
    2k Views

    感谢分享:xiexie:

  • 5 Posts
    1k Views

    谢谢李老师啦,我先看一下这几个求解器,了解一下思路:xinxin:

  • fvMatrix 的系数正负求解稳定性

    7 Posts
    2k Views

    @东岳 ok,明白了,谢谢东岳老师

  • blockMESH文件里可以写函数吗

    2 Posts
    745 Views

    @Samuel-Tu
    記得好像是用巨集 #calc

  • 关于流固耦合求解器fsiFoam的问题

    5 Posts
    2k Views

    @benqing 会不会是因为固体域没有时间步,所以网格不发生变化?:xiezuoye:

  • CFDEM安装测试

    7 Posts
    5k Views

    今天在编译liggghts和cfdem的时候也出现如下报错:
    185e1dd1-371e-43a4-9c79-1be84f630d3e-image.png

    结果证明需要如下依赖包:

    sudo apt-get install libvtk6-dev

    另外好像OF8没法完成和liggghts的耦合,我用的是5.x的。

  • 关于paraview后处理颗粒的问题

    8 Posts
    4k Views

    @闻久STU 谢谢哦,您这个方法我也记在小本本上了,以后肯定能用上:xiezuoye:

  • shm的stl可以不封闭吗

    2 Posts
    804 Views

    简单验证了一下,可以用shm,没问题:xinxin:

  • 如何CFD自学成才

    5 Posts
    2k Views

    @walten如何CFD自学成才 中说:

    @闻久STU
    乐观点, 六年:high: 这样才学得深入

    不能提:135: 长期抗战是肯定的了

  • 1 Posts
    587 Views

    抱歉问的问题可能太泛了,具体举个例子来说。比如说在直径D=0.01m的空气管流中,速度Uf=15m/s,雷诺数Re=10000。颗粒的斯托克斯数St=10,直径是大概dp=50×10^(-6)m,密度为ρp=1000kg/m^3,颗粒-空气的质量比是Φ=0.1,双向耦合,只考虑颗粒曳力。

    在这种情况下,我查看OpenFOAM计算得到的kinamaticCloude:UTrans文件中,动量转移都是在10^(-14)量级(单位是kg×m/s),请问这合理吗,为什么只有这么小。。?

    据我所知,这个UTrans文件表征的就是颗粒→流体相的动量转移,也就是颗粒相通过源项Sp,施加在流体相的曳力作用。不知道这个理解对不对?

  • 修改文件内容的shell

    8 Posts
    2k Views

    最近多次使用foamDictinary感觉真是太用了,自己在文件里面加的keys也能识别出来并修改

  • 拉格朗日颗粒喷射

    1 Posts
    588 Views

    各位大佬问一下有关拉格朗日颗粒喷射的问题,我如何往喷射模型中(比如manualInjection模型)动态的传递喷射点坐标,坐标每一个时间步都会发生变化,怎么实现内部传递呢。

  • 11 Posts
    2k Views

    @zhe请问,MPPIC这个方法的particle distribution function的运作 中说:

    固相是由particle distribution function表示的,并且固相的相分数也是通过它进行求解的。那么这个方程在OpenFOAM里有体现吗?

    没有,你说的这个方程是一个非常基本的控制方程,其实就是玻尔兹曼方程,很多模型都是从这个模型上展开对他进行封闭的。比如

    双流体模型,就是粒子分布函数传输方程取2次矩的模型。

    矩方法就是取高阶矩的模型。

    MPPIC在这个方程上对碰撞进行BGK封闭。可以更简单的处理碰撞。看这个文献的方程2

    A model for collisional exchangeing as /liquid/solidfluidizedbeds

    《无痛苦N-S方程笔记》4,8节也有讨论。这个方程没人去解。自由度太多了。

    可以彼此融会贯通 左右逢源一下 :144:

  • of输出continuity error残差

    3 Posts
    1k Views

    @马乔 有没有什么办法输出这个误差呢,一般大家是怎么判断pisoFoam或者pimpleFoam是否收敛呢?
    我发现误差降到1e-5以下就很困难了。。。所以我是设置的监测点,发现关注的变量变化不大了就认为收敛。。

  • 关于程序调用问题

    4 Posts
    1k Views

    你这是什么版本啊,为嘛那一通运算没有量纲检查。forAll这个只会遍历内场。

  • 如何根据残差判断是否收敛?

    12 Posts
    9k Views

    看论文发现有作者说fluent稳态计算残差降到1e-7则认为收敛停止计算,但是我用of的simpleFoam的时候发现残差根本降不到那么低,连降到1e-6都已经是极限了。我都不敢在论文里写残差判断标准了,一般你们怎么说收敛标准呢

  • 5 Posts
    2k Views

    @bestucan 好滴,我试一下

  • shm的stl文件要求

    3 Posts
    988 Views

    @xpqiu 好滴

  • cfMesh

    5 Posts
    1k Views

    @Samuel-Tu 用了,确实快,但是有时候分网不成功,而且网格质量很难保证

  • 浅水方程模型

    2 Posts
    872 Views

    本来想说试试加深水槽。 静水流深嘛,一看是浅水方程……
    如果边界条件设定为带反射的,那就应该不停波动。如果是自由边界,不停波动不正常

  • 2 Posts
    860 Views

    在cfd online 里逛了一下,有些收货。
    似乎non-orthogonal corrector 是在组装矩阵Ax=b的时候用的,它会把扩散项中的正交部分放入系数矩阵A中,而把非正交部分放入方程右边的源项b中,使得系数矩阵更稀疏且主对角线控制,使得计算更稳定??cfd online

  • 5 Posts
    2k Views

    @cccrrryyy 受教受教,授我以渔,万分感谢~ 帖子链接里开篇就阐明了我的疑惑,也难怪k-epsilon可以在工程领域运用的如此广泛~ 我就先对照着openfoam tutorials和CFDEM案例里的k-epsilon取值作参考,计算后再做调整,再次感谢指点~

  • 添加源项fvOptions编译出错

    10 Posts
    3k Views

    @东岳 非常感谢老师:xinxin: ! :xiexie:
    就是这样迂回的话好像有些难,我还要再思考思考,再尝试尝试 :144:

  • bluecfd

    10 Posts
    3k Views

    @东岳 好滴

  • source term only in boundary cell.

    2 Posts
    558 Views

    Already solved.

  • New scalar in phaseModel.c

    30 Posts
    5k Views

    @bestucan Thanks for your attention.