OpenFOAM

4.5k Topics 26.4k Posts
  • 9 Posts
    2k Views

    @李东岳求并行生成网格以及划分网格的方法 中说:

    @number44

    那scotch和metis可以并行decompose吗?

    不能。

    不过我想到一个曲线救国的方案就是用snappyHexMesh生成网格。这个可以并行。只不过仅仅进行refineMesh处理而已。应该也可以。

    如果这样的话,分别在各processor去refineMesh,reconstructPar会报错吧

  • simpleFoam质量流出口出现奇点

    4 Posts
    820 Views

    问题解决了,之前是没发现 flowRateOutletVelocity ,把 flowRateInletVelocity 换成 flowRateOutletVelocity 即可:mianmo:

  • 关于C++ Source Code Guide的提问

    3 Posts
    740 Views

    @bestucan 非常感谢:huahua:

  • multiphaseEuler中湍流模型

    2 Posts
    684 Views

    @henry-zhou 多给你一个选择,如果算les,直接改simulationType就可以

  • interThermalPhaseFoam

    5 Posts
    940 Views

    @李东岳 好的,了解了,谢谢老师
    :ok:

  • 7 Posts
    2k Views

    @李东岳 因为本身那个就不应该存在面,我旋转的时候merge nodes了 其实是流通的,整个区域都是流体域。我是一个圆柱型的几何,360°旋转后就是一个环形桶。

  • 11 Posts
    2k Views

    @五好青年 源文件确实是被注释掉的,但是我去掉#号,source之后,编译报错的时候代码会高亮

  • 3 Posts
    575 Views

    @李东岳 :142: 感谢

  • openfoam中是否有discreteAdjointSolver

    3 Posts
    681 Views

    @xpqiu 感谢

  • 相变模型报错

    3 Posts
    843 Views

    @李东岳 解决了,谢谢李老师:ok3: :ok2:

  • turbulent kinetic energy

    3 Posts
    753 Views

    @李东岳 感谢东岳老师,俺也找到了一个视频https://www.bilibili.com/video/av928136801/

    9e7e101f-b3f8-4695-a81f-107923a6a23f-图片.png

  • 11 Posts
    2k Views

    @tens 多谢老师!!

  • nParticle数值为什么可以是小数

    7 Posts
    1k Views

    @李东岳 在做液体燃料的雾化方面,主要用compressibleInterFoam和sprayCloud这部分

  • 5 Posts
    1k Views

    @好好科研用rhoPimpleFoam计算飞机外流,为什么iteration为0 中说:

    @number44 我这个p和U的tolerance分别设置的是1e-8和1e-9,感觉挺小的,还要调的更小嘛

    通常来讲,够有多了,我一般就是1E-6到1E-8而已。

  • 4 Posts
    849 Views

    @henry-zhou Class method那面可以给定log粒径分布,平均直径满足文献值即可

  • 3 Posts
    874 Views

    @李东岳 好的 谢谢李老师

  • 3 Posts
    685 Views

    @李东岳 非常感谢,最近一直卡在这个问题上

  • pressureReference

    6 Posts
    1k Views

    @evensun

    我猜你的疑问应该是,为什么类似下面这段代码编译器会报错?

    1 pressureReference pressureReference(p, simple.dict()); 2 pressureReference pressureReference(pf, simple.dict());

    这两条语句有4个pressureReference,我分别编号为1, 2, 3和4号。

    编译器运行到第一行代码时,假设当前函数体内没有声明pressureReference,编译器就会首先去全局域(global )里寻找pressureReference是什么,当找到pressureReference的声明,发现是个类时,编译器把它(1号)解析为一个类(class)。 编译器继续运行,遇到2号pressureReference,编译器主动构造类型为pressureReference(1号)的对象pressureReference(2号)。
    注意:这两个名称一样,编译器会怎么做?当前作用域里的pressureReference(2号)会把全局域(global)里的pressureReference(1号)隐藏掉,1号就发挥不了作用了。也就是说,在此后的作用域里pressureReference只是个对象,只发挥2号pressureReference的作用。 编译器继续运行,遇到第二行的3号pressureReference,此时编译器将这个pressureReference解析为一个对象(2号)。 编译器最后发现4号pressureReference,这是什么,3号对象后面一个4号对象,蜜汁操作,编译器理解不了,编译就失败了。

    那如果我一定要让3号pressureReference发挥类(class)的作用(像1号pressureReference一样),有没有办法?
    有的。在第二行代码的3号前加作用域解析运算符(::),编译器就会去找全局(global)的pressureReference声明了,像上面的第一步一样,然后把3号解析为类(class),再把4号理解为对象。编译就能通过了。
    有兴趣可以试试。

    1 pressureReference pressureReference(p, simple.dict()); 2 ::pressureReference pressureReference(pf, simple.dict());
  • 9 Posts
    3k Views

    可以请问一下楼主你的体渲染在paraview的哪个里面吗

  • const的使用

    4 Posts
    859 Views

    感谢二位前辈的回复,我差不多理解这个意思了:xinxin:

  • 删除命令?

    3 Posts
    521 Views

    @李东岳 解决了,谢谢您:142:

  • 关于reconstructpar重构问题

    3 Posts
    792 Views

    @李东岳 谢谢老师:146:

  • 4 Posts
    763 Views

    @xdzzzz :146:

  • 3 Posts
    834 Views

    @李东岳 感谢李老师的解答!老师,我用的也是openfoam8,截取代码的时候没全截取给您带来误解了,抱歉。我是将代码添加在了writePositions()函数的最前面,如下:

    void Foam::functionObjects::movingInterfaceHeight::writePositions() { scalar time = time_.value(); locations_[0][0] = 0.5 + 0.001*sin(5.3*time); locations_[0][1] = 0; locations_[0][2] = 0.5; const uniformDimensionedVectorField& g = mesh_.lookupObject<uniformDimensionedVectorField>("g"); const vector gHat = g.value()/mag(g.value()); const volScalarField& alpha = mesh_.lookupObject<volScalarField>(alphaName_); autoPtr<interpolation<scalar>> interpolator ( interpolation<scalar>::New(interpolationScheme_, alpha) );

    writePositions()函数下,最前面的两行即为添加的代码,后来我将整个interfaceHeight工具的代码复制了重新构建了一个“movingInterfaceHeight”工具,重新编译后问题解决了。

    按照老师您说的,将其添加在const point p = locations_[li] - gHat*hIL的定义中存在一定的问题:

    // Position of the interface const point p = locations_[li] - gHat*hIL;

    其中的locations_[li]为三维坐标点,point p = locations_[li] - gHat*hIL对xyz坐标均进行了计算,按照我的简谐运动规律$\lambda=0.001sin(5.0498t)$,仅x坐标发生改变,y与z应在坐标不变的情况下完成```point p``的计算,是否可以修改成以下代码:

    // Position of the interface const point p = locations_[li]; //首先定义一个point p scalar time = time_.value(); //分别对p的xyz坐标进行计算 p.x() = 0.5 + 0.001*sin(5.0498*time) - gHat*hIL; p.y() = 0 - gHat*hIL; p.z() = 0.5 - gHat*hIL;

    感谢李老师指导!

  • 1 Posts
    368 Views

    最近想利用mapped边界条件来实现周期性边界条件,但mapped边界条件在blockMesh和U中的诸多参数,例如:samplepatch setAverage offset该如何设置呢。希望知道的大佬能够不吝赐教,谢谢。

  • 1 Posts
    274 Views

    老铁们,一般报这种错怎么解决?
    a01bec9b-dbe4-484b-a741-3611893c01d3-image.png

    在本地可以多算几步,但是超算就出问题了

  • 21 Posts
    4k Views
  • 3 Posts
    842 Views

    @李东岳 好的,谢谢李老师

  • 10 Posts
    1k Views

    谢谢李老师的建议!问题已解决,更新一下!
    出现上述未定义的引用(undefined reference)错误提示,是因为我在编译自己的库specie时没有改名,编译后出现libspecie.o,可能是与官方的重复了,在我手动删除该文件后,求解器可以正常使用。
    参考bestucan 版主的回复!链接文本
    不过我有一个疑问,我的编译路径是FOAM_USER_LIBBIN,为什么还会导致这样的错误呢?

  • 如何模拟气体溶解到水中?

    15 Posts
    3k Views

    @zousiyu 如果能够构造出一个量,它既能表征不同相,又是连续的,本身还守恒(没有源项),你这个问题是不是就好解决了?

  • 1 Posts
    346 Views

    各位前辈好!

    如图1 ,我现在流场中有一些气泡,想将每一个气泡的内部压力映射到底部壁面上,效果图如图2,我应该如何在paraview中进行映射/投影呢?我自己试验了pointDatasetInterpolator好像不太对(图3)。

    哪位前辈能够指点一个思路呢?谢谢

    图1:
    1111111111.png

    图2:

    2222222.png

    图3:
    3333333.png

  • 5 Posts
    887 Views

    @李东岳

    @李东岳OF中在有限的计算域中怎么消去边界对气泡的影响 中说:

    既用小的计算域同时又能消除边界的强影响,从而达到使用cyclic边界条件

    算法上倒是有一些。比如那些advection边界条件。但是扩大计算域是最稳妥的方法。你这个是空炮么?可以设置非均匀网格处理。外围网格非常非常稀疏,里面足够细,也不会太多的网格。

    锯齿网格可能开始会有,但随着计算,表面张力的作用会变平

    李老师你好,算例的确是计算空泡的;

    扩大计算域的话,可能没办法满足我的需求,原因如下:

    气泡的间距是算例的一个主要变量,很需要近距离的情况 如果足够远的话,循环边界条件可能就没有作用了 非均匀网格的话,一方面无法确保在流体中的压力、速度的正确捕捉;其次在网格密-疏位置处,是不是会使得结果误差比较大呢? 如果一开始就是锯齿网格的话,那后续的计算精度感觉不能保证。原因是在高的内压驱动下,初始泡的大小决定之后的每步计算结果,所以一开始的边界捕捉及其重要

    所以还是想咨询下,能不能一开始在0文件中就能很好的捕捉相分数场,粗的背景网格+细气泡边界网格,之后就用自适应网格计算。

    其次还问下advection边界条件的使用方法或相关链接

    麻烦李老师了~

  • 对流扩散方程中的源项设置

    11 Posts
    5k Views

    @李东岳 您好,李老师,请问"c0"是我所设定的cellZone的名字吗,然后"s"是所设定的源的值。我本来是想先通过toposet选定一个cellZone,然后在fvoption里面对所选cellZone进行源的赋值,但是不清楚浓度源应该选择哪种type。

  • 4 Posts
    1k Views

    十分感谢两位大佬:140:

  • 1 Posts
    399 Views

    PISO算法中的对流项fvm::div(phi,U)是如何迭代求解的呢?

  • Cyclic周期性边界条件

    38 Posts
    12k Views

    @李东岳 李老师,对于周期边界下的压力场,piso循环中有pEqn.setReference(pRefCell,pRefValue);用来确定压力场。那在计算周期边界下的被动标量时,应该用什么来对温度场进行修正呢?
    :135:

  • 关于残差的请教

    1 Posts
    437 Views

    ff12dfb1-d78b-4f7d-812d-db36e6749698-图片.png
    请问各位老师,根据参差图 --Initial residual , Final residual
    这个能判定收敛吗?
    初始残差没到设定的值,且计算到后边开始波动,红色方框所示;
    Final residual虽然可以到设定值,但是在一部分计算中波动很大,红色圆圈所示。
    请问是什么原因呢。
    期待大佬回答解惑。

  • 请教关于网盘的问题

    2 Posts
    588 Views

    @五好青年 可以,就是easycae的网盘,你注册个用户应该就有,

  • 关于MRF的疑问

    12 Posts
    8k Views

    @李东岳 哈哈哈,物理隔绝了:mihu:

  • 6 Posts
    1k Views

    图一梯度算子的分量$\frac{\p }{\p x}$,不是某个物理量的梯度分量

    $\frac{\p }{\p x}$不是一个函数么,你要写一个函数?

  • OpenFOAM单方向通量实现

    3 Posts
    696 Views

    @李东岳 收到,谢谢李老师。

  • 1 Posts
    377 Views

    液滴尺寸比网格大,蒸发源项(组分、能量)加到网格里面会不会出问题,有没有老师知道OpenFoam这方面是怎么处理这个问题的

  • OpenFOAM代码咨询

    3 Posts
    780 Views

    @李东岳 谢谢李老师。

  • 算例求助

    2 Posts
    598 Views

    网格流动性是什么..

  • 1 Posts
    310 Views

    在WallSpringSliderDashpot.C中,有这样几句:

    scalar etaN = alpha_*sqrt(p.mass()*kN)*pow025(normalOverlapMag); vector fN_PW = rHat_PW *(kN*pow(normalOverlapMag, b_) - etaN*(U_PW & rHat_PW)); ... scalar etaT = etaN; ... (if条件:颗粒不滑移的条件下) fT_PW = - kT*tangentialOverlap_PW - etaT*USlip_PW;

    这里的颗粒碰撞中的切向阻尼系数,etaN,等于法向值,然后分别应用到求碰撞力的切向和法向分量,fN, fT,中。是不是意味着,我在颗粒配置文件中通过alpha设置的回弹系数值e, 就是同时设定了切向和法向的回弹系数,eT, eN, 都等于e?

    请问这个理解对不对?

  • OpenFOAM中如何设置线源

    1 Posts
    391 Views

    最近在做一个污染物浓度扩散的算例,需要选定一条线并将其设置为污染物浓度扩散的线源,但在setFields中好像没有选定线的设定,所以哪位大佬要是知道请告知,万分感谢。

  • 请教:三维涡量识别方法

    7 Posts
    2k Views

    你说的把Q的插值变成比值,应该是Ω方法吧???
    Liutex-Ω的话好像比较麻烦

    @西湖冷月 你具体编程过吗?

  • 2 Posts
    681 Views

    @yfleung @荷兰后腰阿贾克斯 @波流力
    大佬朋友,请问你们处理400万以上网格,速度很慢,无法出结果的问题,解决了吗?
    感谢

  • 3 Posts
    774 Views

    @队长别开枪 明白了,谢谢老师!

  • 19 Posts
    11k Views

    @oitocfd 好的,我尝试tecplot打开了其他格式是binary的算例,发现可以打开,那么就说明是之前的算例的问题,我再修改试试。谢谢您。