Skip to content

OpenFOAM

OpenFOAM交流区

5.2k 主题 30.9k 帖子
  • OpenFoam 获取每个点的坐标向量

    1
    1 帖子
    3k 浏览
    qjh888Q

    各位朋友:

    我想通过计算得到U在切向和轴向的速度分量,所以要用到如下的公式:

    Uradial = vector(position) & U / mag( vector(position))

    读取U场数据用如下代码:

    IOobject Uheader ( "U" runTime.timeName(), mesh, IOobject::MUST_READ );

    可是在读取各个网格中心坐标的时候,遇到了问题,我的代码如下:

    void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh) { //bool writeResults = !args.optionFound("noWrite"); IOobject Uheader ( "U", runTime.timeName(), mesh, IOobject::MUST_READ ); // Check U exists if (Uheader.headerOk() ) { Info<< " Reading U" << endl; volVectorField U(Uheader, mesh); // 读取各个网格中心点的坐标 volVectorField& centres = mesh.C().internalField(); // 由于mesh.C()在网格内部返回的是中心点的坐标,在网格边界处返回的是面心坐标,所以用.internalField(),可是在这儿报错 volScalarField URadial ( IOobject ( "URadial", runTime.timeName(), mesh ), ((centres - centres.component(2) ) & U) //mag ((mesh.C() - (0., 0., mesh.C().component(2))) //这个地方我想得到一个平行于z轴的坐标,方法是用这一点的位置向量减去(0, 0, z)可是系统报错告诉我不能这样减。 ); } else { Info<< " Missing p or T" << endl; } Info<< "\nEnd\n" << endl; }

    我想问一下,如果想实现mesh.C()- (0, 0, z)的话,需要怎么做?

    非常感谢!
    Janry

  • funkySetField设置初始区域

    14
    14 帖子
    15k 浏览

    @qjh888 h好的,谢谢啦

  • 关于foam-extended-3.0 中mixingPlane 的一些问题

    15
    15 帖子
    13k 浏览
    C

    @qjh888
    Creating MRF model不代表华谊网格和MRF一起用。你要确保MRF被激活了。

    转动网格后就不需要添加速度方程其他源项。MRF和华谊网格类似CFD下面的FVM和FEM。为同时求解问题的两个派系。目前还没有见过MRF叠加华谊网格一起求解。

  • swek4foam

    11
    11 帖子
    12k 浏览

    @zhanghan 1129610784一起交流下、

  • 关于“icoFoam解析”大作的小疑问

    3
    3 帖子
    4k 浏览
    D

    非常感谢及时回复,对我很有帮助。
    问题1:也就是说公式(4)(5)中的1/f是表示nabla算子的下标f,而不应该显示为1/f,是吧?
    问题2:后来参考“浅谈计算流体力学中的通量”一文,可以看到图中标有d。
    明白了,谢谢!

  • 请教rhopimpleFoam的一个问题

    2
    2 帖子
    4k 浏览
    Y

    http://blog.sina.com.cn/s/blog_97cadb820102w2h0.html
    在这里找到一些回答

  • fvshemes的问题

    2
    2 帖子
    3k 浏览
    Y

    可以参考用户指南4.4,里面还是有不错的概括的。

  • rhoCentralFoam如何判断计算收敛的?

    1
    1 帖子
    2k 浏览
    A

    用rhoCentralFoam计算非定常问题,是每个时间步内计算各个方程,我怎么知道它的每个时间步的计算是收敛的?计算是正确的呢?像pimple那样可以通过每个时间步内迭代残差的下降可以判断,不知道这个求解器是怎么保证的

  • 关于湍流里面nut_.correctBoundaryConditions()函数

    3
    3 帖子
    4k 浏览
    W

    @金石为开 Foam::fvPatchField::evaluate(const Pstream::commsType) 函数里面有调用 updateCoeffs()

  • 13 帖子
    12k 浏览
    W

    @zhanghan 客气:sunglasses:

  • 关于OpenFOAM中计算库郎数的问题

    2
    2 帖子
    3k 浏览
    C

    @jzheng
    relax是松弛的意思。查看此处
    另外各大CFD教材都有关于松弛的说明。低松弛...

  • twoPhaseEulerFoam求解器有自带造波程序吗?

    15
    15 帖子
    14k 浏览
    金石为开

    @cfd-china 对,速度入口造波

  • 如何实现实时监测某个边界的某些流动参数?

    3
    3 帖子
    4k 浏览
    W

    参考 $FOAM_ETC/caseDicts/postProcessing/flowRate/flowRatePatch。

    OpenFOAM-4.0 可以直接在controlDict中使用 #includeFunc 语句 [1],用法参考user-guide [2]。

    [1] https://github.com/OpenFOAM/OpenFOAM-dev/commit/dd20d9086889ccbf993e8648d8e8f070f1b16b79
    [2] http://cfd.direct/openfoam/user-guide/post-processing-cli/

  • 此主题已被删除!

    1
    1 帖子
    9 浏览
  • 关于openfoam管道流加指向轴心压力的问题

    7
    7 帖子
    7k 浏览
    zhanghanZ

    @cfd-china ![其中F的方向指向X轴,在x轴方向的分量为0即Fx=0
    Y轴方向的分量为Fy=5y
    Z轴方向的分量为Fz=5z

  • 内存问题?

    3
    3 帖子
    5k 浏览
    A

    @wwzhao 不是,我程序中有一句写的不对

    const vectorField& Cf = patch.Cf()/delta1VD; vectorField meanVelocity(Cf.size());

    我改成:

    vectorField Cf = patch.Cf()/delta1VD; vectorField meanVelocity(Cf.size());

    或者

    tmp<vectorField> tCf = patch.Cf()/delta1VD; const vectorField& Cf = tCf(); vectorField meanVelocity(Cf.size());

    就可以了

  • OpenFOAM 中的稳态与非稳态的问题

    3
    3 帖子
    4k 浏览
    M

    @cfd-china 谢谢啦,:happy: 刚查了下工具书,是在fvschemes文件里设置

  • 旧值是不是用oldTime()?

    4
    4 帖子
    4k 浏览
    超超呦呦

    当中断后继续从当前时间开始后:

    *.oldTime()就是创建场时的值(相对于本时间为上一时间步);

    *.oldTime().oldTime()的值OpenFOAM会自动存在输出文件中,命名为 *_0

  • openfoam动网格求助

    2
    2 帖子
    4k 浏览
    C

    @liujiaming
    把你的截图发出来看看?和网格关系非常大。我感觉你的网格变形过大。

  • 3 帖子
    5k 浏览
    O

    @cfd-china :happy: THANK YOU!