Skip to content

OpenFOAM

OpenFOAM交流区

5.3k 主题 31.1k 帖子
  • 一个HPC上提交任务的问题

    7
    7 帖子
    4k 浏览
    L

    @heike256
    都比我强。。。有的麻烦是自己人为的:如输入OFdir。。。直接 OFdir 下运行,省了输入,不是更简单。。。

  • 在算例下自动调用不同的设置文件

    1
    1 帖子
    806 浏览
    李东岳

    https://cpp.openfoam.org/v9/timeActivatedFileUpdate_8H_source.html

    fileUpdate1 { type timeActivatedFileUpdate; libs ("libutilityFunctionObjects.so"); writeControl timeStep; writeInterval 1; fileToUpdate "$FOAM_CASE/system/fvSolution"; timeVsFile ( (-1 "$FOAM_CASE/system/fvSolution.0") (0.10 "$FOAM_CASE/system/fvSolution.10") (0.20 "$FOAM_CASE/system/fvSolution.20") (0.35 "$FOAM_CASE/system/fvSolution.35") ); }
  • chtMultiRegionFoam自带算例的网格问题

    6
    6 帖子
    3k 浏览
    李东岳

    总的来说对于复杂网格的单一方向拉伸,of是不是没法通过简单的命令进行处理呢?

    这个看起来会导致非常差的网格质量。如果实现的话,应该也是不能用于CFD计算。

    但对于snappyHexMesh生成后发现多个方向都成倍数扩展了,这个不知道是什么问题

    我估计是不是做了网格质量控制,发现网格太差了,然后全部缩放了?log里面有说么

  • fluent总能比of得到更满意的结果?

    59
    59 帖子
    79k 浏览
    李东岳

    这个是我用openfoam10跑的。这个数据还是不太好。我看了一下原始文献以及论坛里面的一些文章。这个跟湍流模型很敏感。我尝试了一下调节进口的湍流强度,也很敏感。这个我后续不会再调了。我觉得应该留给专门做这方面的人去调试一下

    impingingJet10.tar.xz

  • OpenFOAM metis 安装方法

    8
    8 帖子
    7k 浏览
    李东岳

    具体网格如何分解这种的算法我就不知道了。scotch与metis我也只是用。不清楚怎么分解的。如果有哪个老铁知道。我愿意学习学习。

  • 这壳套的太明目张胆了... ...

    5
    5 帖子
    3k 浏览
    李东岳

    @luofq-sysu 现在普适性CFD软件完全打不开市场。国内大多走的行业化。所以一个普适性软件就变成了行业定制软件了。

  • 6 帖子
    4k 浏览

    @青山 我做的不涉及三相,所以只有两相。然后你这个说只能在alphat里算感觉没道理啊,那如果是层流,这个输入都没有,就不允许闪蒸了嘛,应该不会把

  • DPMFoam和twoPhaseEulerFoam颗粒流化

    14
    14 帖子
    8k 浏览

    @vbcwl 6

  • paraview如何绘制二维流线

    12
    12 帖子
    10k 浏览

    @知行 在 paraview如何绘制二维流线 中说:

    StreamTracerWithCustomSource

    StreamTracerWithCustomSource是在surfaceVectors下创建的

  • DPMFoam输出文件里没有UCoeff和Utrans

    2
    2 帖子
    1k 浏览
    vbcwlV

    @vbcwl 原来是因为硬盘里权限问题,不能出现带:的文件:136:

  • HerschelBulkley典型设置

    1
    1 帖子
    878 浏览
    李东岳
    water { transportModel HerschelBulkley; nu0 1e-2; tau0 8.59e-3; rho 1000; k 18.24e-3; n 0.2; //Bingham }

    damBreak.tar

  • 3 帖子
    2k 浏览
    L

    @李东岳 code是个好东西啊,得想想怎么拟合曲线咯,谢谢李老师的参考案例啦

  • 固体求解器添加两种材料

    1
    1 帖子
    840 浏览
    洱聿

    各位大佬们好,我想在fsifoam流固耦合求解器中添加两种固体材料属性,请问有人做过相关的算例嘛?是否可以直接添加?还是需要修改求解器呢?

  • 4 帖子
    3k 浏览

    @李东岳 谢谢李老师,我把sqr函数看成sqrt了,现在我明白了,是能对上的

  • 【分享】 Residual 动态监测

    9
    9 帖子
    7k 浏览

    好人一生平安

  • 如何得到自由面等高线云图?

    5
    5 帖子
    4k 浏览
    B

    @一朵苍凉 您好,请问如何将压力云图离散化并使等值线作为其颜色分界线呢?

  • 使用QBMM模拟气泡流

    39
    39 帖子
    38k 浏览
    WeakFormW

    @李东岳 多谢李老师

  • 内部场引用编程问题

    2
    2 帖子
    1k 浏览
    C

    请教各位前辈一个简单的编程问题。我先用topoSet在网格中创建内部cellZone,名称为interior。现在想对interior每个网格体心的U赋值,代码如下:

    label patchID = mesh.cellZones().findZoneID("interior"); const labelList cells = mesh.cellZones()[patchID]; forAll(cells, i) { label celli = cells[i]; U[celli] = vector(0.1, 0.1, 0.1); }

    如果是边界,一般可以写成引用的方式:

    label patchID = mesh.boundaryMesh().findPatchID("inlet"); vectorField& patchField = U.boundaryFieldRef()[patchID];

    以上方式是可以实现赋值,想问的问题是:

    (1)内部cellZone是否可以类似写成引用的形式,再对patchField赋值?类似边界场写成以下形式会报错,但不知道怎么修改:

    label patchID = mesh.cellZones().findZoneID("interior"); vectorField& patchField = U.primitiveFieldRef()[patchID];

    报错如下:

    error: invalid initialization of reference of type 'Foam::vectorField&' {aka 'Foam::Field<Foam::Vector<double> >&'} from expression of type 'Foam::Vector<double>' 180 | vectorField& patchField = U.primitiveFieldRef()[patchID]; |

    (2)U[celli]和U.primitiveField()[celli]这两者有无区别?测试效果好像是一样的

    forAll(cells, i) { label celli = cells[i]; U[celli] = vector(0.1, 0.1, 0.1); U.primitiveField()[celli] = vector(0.1, 0.1, 0.1); }
  • DPMFoam求解粒子密度小于液体

    3
    3 帖子
    2k 浏览
    vbcwlV

    @李东岳 感谢东岳前辈,之前做的是气固,密度比上千,可以指考虑drag,才开始研究密度比较接近的颗粒。想要比较精确的结果还需要考虑更多的力

  • 如何单独保存粒子数据

    5
    5 帖子
    3k 浏览
    T

    @李东岳 还是受到李老师的启发想到这种操作:chouchou:

    @李东岳 在 reconstructPar 一边组一边删除数据 中说:

    最近在算几个LES,我勒个去数据太大了。大算例一般算完了只有几百个G,比如500G,reconstructPar重组的时候并不会删processor的数据,这将导致占据双倍的硬盘,直接干到1T。利用下面这个命令,可以重组一个时间步,删除一个时间步,对于硬盘吃紧的时候非常有用:

    #!/bin/bash for i in $(foamListTimes -case processor0); do reconstructPar -time ${i} && rm -r processo*/${i} done

    Pretty Simple :high: :high: :high: