OpenFOAM

4.5k 主题 26.4k 帖子
  • 水槽上方大气边界的设置方法

    3 帖子
    1k 浏览

    确实有很大改善,可能上方空气部分需要设置一个比较大的高度

  • 13 帖子
    3k 浏览

    @东岳 用interDyMFoam算潮流能水轮机,没有仔细看,计算速度大概有不到10%的提高

  • 3 帖子
    1k 浏览

    谢谢李老师的回复!因为雷诺应力不仅出现在动量方程里面,也出现在turbulent kinetic energy equation 与 turbulent frequency equation中,我的想法是如果我分别修改湍流模型的文件(kOmegaSSTBase)与动量方程的文件(linearEddyViscosity)就会要定义两次非线性项,所以我选择就在kOmegaSSTBase中更新turbulence->divDevRhoReff(U),在其中加入非线性项,参考的资料是OpenFoam里面的nonlineareEddyViscosity。由于这样修改需要在kOmegaSSTBase.C文件的constructors中加入eddyViscosity 也就是上图中蓝色后面的部分,我直接在原来的代码Turbulence后面加这一项会报错,想请问这怎么解决?非常感谢李老师耐心看我的问题,不知道我表述清楚没有?

  • OpenFOAM中的幂函数

    2 帖子
    1k 浏览

    解决了,把1换成1.0就好了,感谢 @麦迪文 师兄的帮助。

  • multiphaseInterFoam出口回流问题

    8 帖子
    2k 浏览

    @东岳 是的VOF多相流,计算域三层,最上面是空气,红色是油,下面是水2020-10-22 21-10-44屏幕截图.png

  • 多版本OF共用paraview

    10 帖子
    3k 浏览

    @bestucan 你是行家呀,厉害厉害,终于知道原因了

  • 重叠网格-dynamicMeshDict

    3 帖子
    1k 浏览

    如楼上所说,不指定就是六个自由度,重叠网格也不会出现网格变形的问题

  • twoPhaseEulerFoam中的ITAE模型

    13 帖子
    3k 浏览

    晚上又测试了一下,在linux系统下是可以顺利的进行计算,谢谢东岳老师的帮助:xinxin:

  • Chang-Hsieh-Chen低雷诺数湍流模型边界条件设置

    9 帖子
    2k 浏览

    @东岳 李老师,这样计算之后我发现计算结果不对,通过查找资料我发现这个边界条件可以用3b57a6e7-cef1-467b-a636-4f5d687a9af6-image.png 来代替,所以我用codedfixedValue编写了这个边界条件,现在的问题是我好奇codedfixedValue里面的value值必须要设置成$internalField吗?谢谢!

  • LES拉格朗日粒子速度时间平均

    4 帖子
    1k 浏览

    速度平均还是不会做,不过发现湍流强度对计算结果影响很大,大家算两相流的注意一下

  • 水中比内能与温度的关系

    3 帖子
    900 浏览

    比内能就是e啊,compressibleInterFoam顶层就有啊

  • 反应速率,摩尔分数问题

    1 帖子
    552 浏览

    请问大家,oopenfoam里怎么输出多步反应的每一步的反应速率,还有怎么输出摩尔分数,谢谢啦

  • 振荡来流的流场倒流问题

    24 帖子
    4k 浏览
  • p_rgh迭代次数过多

    6 帖子
    1k 浏览

    @同学博 哈哈 好的

  • 请教把OF数据导入MATLAB的方法

    3 帖子
    1k 浏览

    @bestucan 先说声谢谢,我去仔细看看

  • 3 帖子
    2k 浏览

    @东岳 用的komega湍流模型,有时在outlet处设置了intOut边界,value会设置成0,也尝试过zerogradient,没有value
    ,0文件夹的omega设置如下:

    internalField uniform 53.6; boundaryField { INLET { type turbulentMixingLengthFrequencyInlet; mixingLength 8.52e-4; value uniform 53.6; } OUTLET { type zeroGradient; } BOTWALL { type omegaWallFunction; value $internalField; } UPWALL { type omegaWallFunction; value $internalField; } HEATWALL { type omegaWallFunction; value $internalField; } }
  • pisoFoam计算圆柱绕流出现拍现象问题

    1 帖子
    639 浏览

    用pisoFoam计算了两百雷诺数的层流圆柱绕流问题。但是计算出来的升阻力系数出现了拍现象,有大神可以指点一下是什么问题吗。以下是升阻力系数图和算例设置求解器.png 离散.png 层流.png U.png P.png Cl.png Cd.png

  • RANS动量方程中雷诺应力表达的问题

    4 帖子
    1k 浏览

    @东岳 懂了~ 谢谢智慧的李老师~~

  • 3 帖子
    1k 浏览

    @东岳 刚性翼型用的pisoFoam,柔性翼型用的是fsiFoam。但是pisoFoam算出来的系数波动很大,而fsiFoam算出来系数波动就很小。不知道是为什么

  • topoSet设置半圆柱区域

    1 帖子
    739 浏览

    各位前辈,如下计算区域模型,想要使用chtMultiRegionHeater求解壁面导热+内部空气水流动传热问题,怎么使用topoSet描述空气或水的半圆柱流道区域?对于空气和水的交界面应该给什么边界条件,还是compressible::turbulentTemperatureCoupledBaffleMixed这个边界条件吗?
    绘图1.jpg

  • 关于cfdem-interFoam solver

    已移动
    10 帖子
    6k 浏览

    @zhuyuxuan 您好,请问这里“已有的例子只提供了耦合后的icoFoam和simpleFoam求解器”例子是在哪里可以找到?

  • 关于sample fields

    2 帖子
    933 浏览

    现在解决了吗 我现在也是用toposet建立了cellzone 但是也是报错没有对应的cellzone

  • 虚拟机openfoam安装出错,求助

    2 帖子
    888 浏览

    已解决,虚拟机内存调到16g成功安装

  • 6 帖子
    2k 浏览

    @东岳 微信图片_20201012200823.jpg 微信图片_20201012200818.png
    二维顶盖驱动方腔流无滑移时有涡,有滑移时不出现涡,这种情况可能是什么原因造成的?程序是fortran语言自编的

  • OpenFOAM中随时间变化的属性设置

    8 帖子
    3k 浏览

    @Cr 十分感谢,问题已经解决了:xinxin:

  • 源项类中的addSup函数是如何被调用的?

    4 帖子
    1k 浏览

    @Cr 原来是在这里啊,感谢感谢!

  • oscillatingFixedValue边界条件的问题

    8 帖子
    5k 浏览

    好的,谢谢您

  • olaDyMFlow动网格计算不收敛,求助

    3 帖子
    686 浏览

    @Cr 你好 我是把消波边界调整为2D消波边界了 然后可以计算了。

    但是提取出来的坝前波面结果很奇怪,我的坝体振幅在三个方向均只有0.4m(初始水深设置的是50m),而水深却会突然变成0。提取出的波面时程曲线如下,暂时没有找到是什么原因导致的这种现象,还请各位老师指教。微信图片_20201009170300.png

  • OpenFOM里面的是RANS还是URANS

    7 帖子
    5k 浏览

    @hotairballon1997 和steady Rans结果不同,因为每个时间步的结果不同。

  • 模拟火箭发射问题

    4 帖子
    1k 浏览

    看来还是有只用动网格而不用自适应的。这种状况应该用在变形的铁板、高层建筑随风摆之类的在一定范围内变形的。这样网格即使没有自适应也没关系。一般用来做应力分析之类的。

    查看了下网格发现网格变形为负了

    你的这个初始网格就不好。在圆形边界上没有用O形网格。畸变本就很严重,然后一变形,还不是震荡变形,是一直一个方向走,网格又没有自适应,然后就负网格了。

    我同时想在INLET(火箭喷管口)设置燃气射流环境,目前改了 0/p 0/U 0/T 下的边界条件,并在constant/thermophysicalProperties 设置了燃气参数,但不知道如何指定在INLET上不断喷射燃气。

    最简单的把边界设定成固定压力梯度。要是还要计算燃烧过程就不懂了:mihu:

  • 如何提取张量的某一个值

    6 帖子
    2k 浏览

    @小考拉

    不忙不忙,就是不太懂:mihu:
    但是探索不懂的东西的方法都是相通的。你要解决的问题我没解决过,所以要解决花费的时间比较多。思路就是看代码。你也在看,但我们看的版本对不上,开源软件有个特点,太自由了,所以版本间的差距特别大。

    在你的代码中找相关定义的方法:

    grep -R 'volTensorField' ./

    先用 cd 命令 切换到源代码所在的目录 ~/OpenFOAM/OpenFOAM-version/
    然后运行上面的那条命令。-R 是递归查找,包括子文件夹,'volTensorField' 是查找的内容,区别大小写, ./代表当前路径。

    另外,在 ~/OpenFOAM/OpenFOAM-version/里查,查的太多。可以分别去这个文件夹下的src或者applications下面查。如果还是太多,就把输出重定向到一个文件再看。不过没颜色不太好看。

    grep -R 'volTensorField' ./ > grep.log
  • The influence of mesh on solution?

    3 帖子
    758 浏览

    Thanks. I created two meshes with the same body size but different type of meshes,namely structured and unstructured, the results are different. Note that both of two cases are grid independent. Do you have any idea about that ? since I saw a thread you opened in cfd online.

  • 2 帖子
    2k 浏览

    您好,请问您最后解决了嘛,怎么样输出每个基元反应的速率呀

  • 10 帖子
    2k 浏览

    @King_RVM 没错的问题就在乱用了tmp指针,我已经解决了。关于tmp指针,我在网上搜索到过问题,祝好!

  • DPMFoam设置求解问题

    7 帖子
    2k 浏览

    @东岳 李老师,有没有可能在DPMFoam里边设置每步生成随机的点云啊?我看patch injection是根据面网格密度生成的点云,而且网格越密的地方粒子越多。目前我是用多个点云injection去替代的,我在想有没有方法可以实现,自定义点云的分布密度呢?

  • 关于调用 库函数的报错

    7 帖子
    2k 浏览

    我当时是由于湍流模型虽然编译通过但其实还是有问题的,具体就是H文件申明的虚函数divDevRhoReff,在C文件中没有具体的实现。你可以根据H文档最后几个虚函数(virtual函数)再好好对照一下看看C文档中是否都有对应的具体实现。其次我是2.3.1版本。

  • 提取场内一个面的物理量 Function Obj 的方法

    1 帖子
    533 浏览

    请教大家:
    提取场内一个面的物理量 Function Obj 的方法
    谢谢

    另外:
    本人原帖 “湍流模型问题请教” 得各位相助, @闻久STU 君 "回访",李博 @东岳 赐"西语句",为不在原贴用回谢灌水,在此一并谢过

  • CFL数如何计算?

    6 帖子
    5k 浏览

    谢谢,学习到啦!

  • 关于传热边界条件的问题

    2 帖子
    899 浏览

    这个求解器是不可压缩的求解器,他单独求解温度方程,没有用用到热物理模型库,所以就不支持这个边界条件,fluidThermo是热物理模型库的方法。
    你可以去看看buoyantPimpleFoam或buoyantSimpleFoam下面的算例,这些算例的constant文件夹下都有thermophysicalProperties这个字典,这些求解器也都用到了热物理模型库求解焓方程,并且支持这个边界条件。

  • 4 帖子
    1k 浏览

    或许可以将代码改为用不可压缩求解器求解的边界上的温度和导热率来获得,边界上的传热量。例如:

    if(db().foundObject<volScalarField>("T")) { const volScalarField& T = db().lookupObject<volScalarField>("T"); const fvPatchScalarField& Tp = T.boundaryField()[patchi]; qDot = kappa*Tp.snGrad(); }

    其中kappa需要根据你的物性和边界上的温度场来计算获得

  • jet 的边界条件如何选择?

    13 帖子
    2k 浏览

    @hotairballon1997 算吧 不过不是map,我个人觉得不要轻易用map这个人东西。。因为网格密度不同,map出来的场可能是有问题的

  • 记录一些自己用过的代码

    6 帖子
    5k 浏览

    亲测实用:140:

  • 单相可压缩流体湍流模型修改后的编译问题

    2 帖子
    821 浏览

    已经解决。我的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 帖子
    2k 浏览
  • 颗粒的全局ID输出问题?

    6 帖子
    2k 浏览

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

  • 9 帖子
    3k 浏览

    @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 帖子
    6k 浏览

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

  • 在质量守恒方程中添加源项对湍动能的影响

    12 帖子
    3k 浏览

    @cccrrryyy

    行我再考虑下,谢谢

  • CFDEM安装

    9 帖子
    2k 浏览

    @fubianhanshu My pleasure

  • 4 帖子
    1k 浏览

    codeFixedValue