Skip to content

OpenFOAM

OpenFOAM交流区

5.0k 主题 29.6k 帖子
  • 有人用OpenFOAM算PMV么?

    2
    2 帖子
    2k 浏览
    李东岳

    @搬运工不好当

    Hi,

    PMV目前在海尔科学研究院有一套标准,国际上也有一套ISO9000x的标准。在这个标准中,除了公式的值都需要自己设定。然后在PMV框架下迭代求解。可以google一下PMV ISO标准。

  • kEpsilon模型发散问题

    2
    2 帖子
    3k 浏览
    李东岳

    Hi,

    请注意epsilon的不能赋值为0,因为在kEpsilon方程中的湍流粘度定义为:

    \begin{equation}
    \nu_t=C \frac{k^2}{\varepsilon}
    \end{equation}

    明显的如果epsilon为0,湍流粘度不可以计算。

  • 有关preditioner和smoother

    2
    2 帖子
    3k 浏览
    李东岳

    Hi,

    我们用方程举例:加入你要求解矩阵:
    \begin{equation}
    A \phi = b
    \end{equation}
    直接解法是不能用了大家都知道。一般采用迭代解法。在迭代解法中,如果对矩阵操作一下:
    \begin{equation}
    A = M-N
    \end{equation}
    替换到公式(1)中,就是
    \begin{equation}
    \phi^n = M^{-1} N \phi^{n-1} + M^{-1}b
    \end{equation}
    这种操作就是预条件,依据不同的M,有不同的预条件方法。OpenFOAM里面采用不完全LU分解。

    smoother更倾向是多重网格矩阵求解器的内容,如图:
    0_1458467715003_捕获.JPG
    多重网格这块暂时还没涉及,以后有涉及随时补充。

    推荐看这本书:Numerical Computation of Internal and External Flows - Volume I - Fundamentals of Numerical Discretization

  • 有关并行计算求解速度

    2
    2 帖子
    3k 浏览
    李东岳

    Hi,

    这个问题很简单,举例:

    1核计算需要24小时;

    2核计算需要12小时;

    4核计算需要6小时;

    8核计算需要4小时;

    16核计算需要3小时;

    32核机选需要2小时;

    64核计算需要1.5小时;

    很明显,核多了会减小计算时间,但是在超过某个限制之后,就不会是线性的。并且,并行计算和CPU的通信关系很大,有些玩家自己组建的通过网卡连接的工作站,一个千兆网卡是必须的。

  • OpenFOAM安装方式那个好点?

    2
    2 帖子
    2k 浏览
    李东岳

    你好,

    这个其实区别不大,最简单的当然是deb安装。但是由于网络的问题国内经常安装不上。有关安装,我写了个非常详细的说明请参考:OpenFOAM安装说明

  • twophaseEulerFoam 可以追踪颗粒么?

    2
    2 帖子
    2k 浏览
    李东岳

    Yes,

    不过需要你自己定义拉格朗日求解器。目前twoPhaseeulerfoam是欧拉方法下的双欧拉模型。如果需要添加一个无质量对流体流动无影响的颗粒,仅仅做一个颗粒跟踪。有俩种方法:

    简单的捆绑dpmFoam中的拉格朗日粒子,我之前在pisoFoam中实现过这个,

    通过paraFoam后处理来进行,这个在cfd-online有人讨论过,我当时也尝试实现不过没成功,目前还不确定到底paraview能不能实现这个方法。

  • 有关OpenFOAM中的类如何添加参数?

    3
    3 帖子
    3k 浏览

    解决了,低级错误,H文件里的申明没有改,改到别的文件里去了,当然不成功。把c文件和h文件里都改了之后,编译没有问题的。

    多谢!

  • openfoam用到多少c++

    2
    2 帖子
    3k 浏览
    李东岳

    你好,

    这个问题OpenFOAM创始人Henry已经有过详细的阐述了:

    Henry:了解流体机理和计算流体力学更加重要。大多数CFD工程师并不需要经常编程,因为CFD代码已经非常成熟了,并且包含了非常多的功能。但是对于一个CFD工程师而言,很有必要了解到底什么是“物理”,什么是“边界条件”。这些都和流体动力学有关,而和编程关系不大。

    很好地了解CFD的概念在选择合适的数值方法、离散格式、时间步、松弛因子的时候非常有必要。这通常可以通过培训来达到目的,因为本质上其主要通过积累的经验来获得。

    使用CFD就像玩乐器,你不能捡起一把小提琴就弹“维尔瓦底”的曲子(CFD界注:著名小提琴演奏家),这需要很长的练习。

    然而,相对于GUI的点击型操作,OpenFOAM中CFD算例的自动运行VERY有用,因此如果会写脚本的话就更好了。脚本语言不重要,大家可以使用随便一个脚本语言,只要你熟悉就好。

    个人认为,依赖于你所需要的功能,如果只是企业级别的计算,不需要多少C++只是。如果是硕士进行简单的开发,C++熟悉相关的语法规则就好。对于博士如果需要写自己的算法,可能对面向对象编程需要有一定的认识

  • 算例的网格checkMesh后如下,有什么问题么?

    2
    2 帖子
    2k 浏览
    李东岳

    你好,

    看上文中的:

    <<Writing ... non-orthogonal faces to set nonOrthoFaces

    非矩形面和skewness面一般问题都不大,比价的话skewness不好的网格问题比非矩形网格更加严重。OpenFOAM里面已经把非矩形面的恭喜添加进去了,可以添加非矩形修正来处理。因此这是一个警告,不需要过多处理。有时候非矩形面试必须的。不可能避免。

    当然你看到了他显示Mesh OK~