Skip to content

OpenFOAM

OpenFOAM交流区

4.5k Topics 26.5k Posts
  • 1 Posts
    340 Views

    最近在编写程序的时候遇到并行边界上网格面心处数值通量(φ_f)的同步问题,单核运行不存在并行边界,所以没有这个问题。以下图为例:

    Domain.png

    并行计算时,求解区域分为了4个区域,两个区域之间产生了并行边界面,对于内部网格面元,网格面心处的数值通量(φ_f)的计算跟单核运行时是一样的,但是对于并行边界处的网格面元,数值通量(φ_f)在两个相邻并行边界上应该是一样的,因为并行边界的存在不应该改变原来的解。因此,我用了如下的syncFaceList()函数来进行同步,alpha_f是定义在网格面心上的surfaceScalarField,这个函数在头文件"syncTools.H"中有定义,我用了以下三种同步方式,发现流体穿过并行边界时还是产生了误差,单核运行时误差(数值解与解析解之差)可以达到10E-12次方量级,但是并行运行时流体一穿过并行边界,误差就上升到了10E-4量级,我觉得这是因为并行边界上数据同步没有做好的原因,请问有小伙伴遇到过这个问题嘛?使用syncFaceList()函数的正确方式是什么?如果使用syncFaceList()函数进行同步网格面心处的数值通量(φ_f)还是有问题的话,打算自己写一下同步过程。

    // syncTools::syncFaceList(mesh(), alpha_f, maxEqOp<scalar>(), false); syncTools::syncFaceList(mesh(), alpha_f, plusEqOp<scalar>(), false); // syncTools::syncFaceList(mesh(), alpha_f, eqOp<scalar>(), false);
  • 编译体积力时遇到的小报错

    1
    1 Posts
    373 Views
    J

    在学习用openfoam做自航的时候想尝试用体积力模型替代桨模型产生的推力,这需要引入体积力模型。
    在编译时有遇到一点小问题,关于未定义引用,请问要怎么正确引用,解决这个报错提示使得编译成功?
    首先这是wmake出现的提示:

    /usr/bin/ld.bfd: /home/dyfluid/OpenFOAM/OpenFOAM-7/platforms/linux64GccDPInt32Opt/applications/solvers/multiphase/waveProp/waveProp.o: in function `main.cold': waveProp.C:(.text.unlikely+0x49d): undefined reference to `Foam::functionObjects::forces::~forces()' /usr/bin/ld.bfd: /home/dyfluid/OpenFOAM/OpenFOAM-7/platforms/linux64GccDPInt32Opt/applications/solvers/multiphase/waveProp/waveProp.o: in function `main': waveProp.C:(.text.startup+0x8bc9): undefined reference to `Foam::functionObjects::forces::forces(Foam::word const&, Foam::objectRegistry const&, Foam::dictionary const&)' /usr/bin/ld.bfd: waveProp.C:(.text.startup+0x8bed): undefined reference to `Foam::functionObjects::forces::calcForcesMoment()' /usr/bin/ld.bfd: waveProp.C:(.text.startup+0x8bfc): undefined reference to `Foam::functionObjects::forces::forceEff() const' /usr/bin/ld.bfd: waveProp.C:(.text.startup+0xa444): undefined reference to `Foam::functionObjects::forces::~forces()' collect2: error: ld returned 1 exit status make: *** [/home/dyfluid/OpenFOAM/OpenFOAM-7/wmake/makefiles/general:142: /home/dyfluid/OpenFOAM/OpenFOAM-7/platforms/linux64GccDPInt32Opt/bin/waveProp] Error 1

    对应文件bodyForce.H中定义体积力的部分:

    // Define the (cylindrical) region for the body force from dictionary values const scalar yProp (readScalar(bodyForceDict.lookup("yProp"))); const scalar zProp (readScalar(bodyForceDict.lookup("zProp"))); const scalar xPropmin (readScalar(bodyForceDict.lookup("xPropmin"))); const scalar xPropmax (readScalar(bodyForceDict.lookup("xPropmax"))); const scalar tipRadius (readScalar(bodyForceDict.lookup("tipRadius"))); const scalar hubRadius (readScalar(bodyForceDict.lookup("hubRadius"))); Foam::functionObjects::forces F ( "forces", mesh, dragForceDict ); F.calcForcesMoment();//这里未定义引用,该如何修改? vector force =F.forceEff();//这里未定义引用,该如何修改? scalar drag = force.x();//这里未定义,该如何修改? Info << "Thrust = " << drag << endl; scalar thrust = 1.1*drag; //Considering 10% more
  • 14 Posts
    2k Views

    @hurricane007 好的,刚刚才开始学习用户指南,有不懂的就问大佬们了,可能有些问题在大佬们看来有点简单,但就是有些问题指南里没提到怎么解决,我就问您了。

  • 有没有大佬研究过液滴的壁面模型

    1
    1 Posts
    328 Views
    T

    现在想让液滴撞击壁面后完全蒸发或者蒸发一部分,有没有研究过壁面模型的大佬。感觉要将相变模型耦合到壁面模型中,难度有点大啊:135:

  • 5 Posts
    1k Views
    Y

    @tidedrinker 感谢您的回复,确实如您所言,可以通过修改旋转中的速度矢量来改变旋转轴,而上面的那个参数确实是旋转中心位点

  • openfoam,fluent,数据导入

    3
    3 Posts
    2k Views
    Y

    @硫酸亚铜 这个链接看不到了,不知道还有别的方式没?

  • 5 Posts
    1k Views

    @bestucan 谢谢教授的解答:xinxin:

  • 3 Posts
    915 Views
    tidedrinkerT

    @李东岳 不只是从4.1到8,5和6我也试过,感觉就是alpha的上界越界越来越严重,但也不是所有类似算例都跑不了。和波浪没关系,测试的时候是没有波浪的。现在我倒是找到办法了,就是继续降低pcorr的tolerance,从-7降到-10或者-11,然后nCorrector继续加,总是能收敛的。只要是收敛了,结果差的就很有限。只是计算资源消耗更厉害。

  • 3 Posts
    563 Views
    L

    @李东岳 第一张用滤镜设了一个温度的梯度

  • 3 Posts
    696 Views
    Z

    @李东岳 明白了,感谢李老师!

  • 4 Posts
    2k Views

    @d-benjamin 同问

    sphereToCell { centre (0.5 0.5 0.5); radius 0.1; fieldValues ( volScalarFieldValue alpha.water 0 volScalarFieldValue p_rgh 1e6 volScalarFieldValue p 1e6 volScalarFieldValue T 578 );

    p_rgh和p分别代表什么?

  • DPMFoam中压力量纲

    3
    3 Posts
    658 Views

    @李东岳 多谢李老师!

  • 11 Posts
    2k Views

    @yu_tian 谢谢大佬的回答。。

  • 4 Posts
    1k Views
    李东岳

    @cccrrryyy GAMG那面参数特别多。有可能case dependent。我记得我2020年测试的时候,没摸出来什么头绪。后来不管这些参数了。但是我应该没找出来特别优质的参数。应该都差不多。或许你可以试试别的。OpenFOAM自带tutorials稳定性优先。所以可能某些算例smoothSolver比较稳定。最简单的就是高斯赛德尔 :chouchou:

  • DPMFoam、MPPICFoam以及CFDEM怎么选择?

    10
    10 Posts
    2k Views
    李东岳

    @田畔的风 大佬大佬!:xiexie:

  • 什么原因使得“on signal 9 (Killed)”

    9
    9 Posts
    5k Views
    李东岳

    你这个错误的信息log没有输出出来

    mpirun noticed that process rank 4 with PID 0 on node ps exited on signal 9 (Killed).

    这个不是错误信息

  • 7 Posts
    1k Views
    Q

    @李东岳

    多谢!

    不过确实目前测试的网格还都比较小

  • 5 Posts
    945 Views
    T

    @李东岳 是的,我手动更改之后可以计算了,谢谢李老师:huahua:

  • paraview后处理

    1
    1 Posts
    387 Views
    liujunCFDL

    江湖救急!
    请问老铁们,paraview怎么在流线图上加箭头?我看网上的都是利用tube加箭头,有没有办法直接在线上加箭头?

  • 如何生成一个case的report?

    2
    2 Posts
    515 Views

    或者说是如何能简单的比较两个case的不同处?