Skip to content

OpenFOAM

OpenFOAM交流区

5.3k 主题 31.3k 帖子
  • 如何在domain内加边界条件?

    4
    4 帖子
    3k 浏览
    李东岳

    @yhdthu 在 如何在domain内加边界条件? 中说:

    域内面积为0的面,然后加边界不?

    很抽象,很难想象如何处理的呢

  • 边界条件与solver关系

    3
    3 帖子
    2k 浏览
    李东岳

    可压缩和不可压缩方程的数学特征的不同,导致需要调用不同的边界条件。比如标量传输方程,是一个双曲方程,如果进出口都给定Dirichlet边界条件就不能借。但对于扩散椭圆方程,如果进出口都给定Dirichlet边界条件很正常。

  • mixutre模型连续性方程

    2
    2 帖子
    1k 浏览
    李东岳

    连续性方程 -> 压力方程,因此压力方程就是你说的这个方程

  • tPEF湍流模型

    3
    3 帖子
    2k 浏览
    D

    @dzsmoglai 在 tPEF湍流模型 中说:

    oPhaseEulerFoam求解器的时候,总是得

    感谢@东岳 老师的答复。目前此问题已经解决。原因也很简单。因为CGKE是基于kEpsilon的。而在PhaseCompressible湍流模型类中,在编译CGKE之前,事先通过PhaseCompressible这一类中的宏makRASModel(kEpsilon)编译了PhaseCompressible版本的kEpsilon模型。因此CGKE中任何函数在调用kEpsilon时就可以调用的到。本问题的解决办法就是同样的在makePhaseCompressibles.C中make一下RNGkE就行了,即makRASModel(RNGkEpsilon)。
    如果有其它Foamer对上述解释不理解,我就再补充两句。kEpsilon, RNGkEpsilon这类湍流模型实际上是通用的模型,在incompressible,compressible, phaseCompressible等不同类的湍流模型类中有不同的体现。当然,这个涉及到OpenFoam的湍流模型代码结构,集成关系最多有8层左右,尚不了解的童鞋可以去参考此博客https://marinecfd.xyz/post/openfoam-templated-turbulence-modeling-framework-part-1/。链接是第一部分,一共三个部分。

  • vanDriestDelta构造的问题?

    2
    2 帖子
    1k 浏览
    C

    建议参考这个
    https://www.openfoam.com/documentation/guides/latest/doc/guide-turbulence-les-delta-vandriest.html
    OpenFOAM里面的LESdelta是基于geometricDelta_的,geometricDelta_(delta关键字后面的那个,比如cubeRootVol)是纯粹与几何有关的一个量,而真正的LESdelta是建立在其之上的。这样的表述实际上更精确,所以才被设计成了两个东西,我猜的。

  • 压力显示成台阶状的分布疑惑

    2
    2 帖子
    2k 浏览
    李东岳

    另外,我不清楚你这个画的是什么,只有一个类似的阶梯状的图。类似这个图我在今年8月份复现过,不过不是你这个算力,很多高阶格式都会把smooth的型线压缩成square的,例如Superbee,即使Minmod也有这种情况存在。

    Figure 6.2(b) shows the same test problem as before but with the superbee method. The discontinuity stays considerably sharper.On the other hand, we see a tendency of the smoothhump to become steeper and squared off. This is sometimes a problem with superbee – by choosing the larger of the neighboring slopes it tends to steepen smooth transitions near inflection points.

    Leveque 2002 p. 112

    不过,我觉得你的问题可能不是这个...只不过图跟我遇到的有点像,给你点启发

  • anti-symmetry边界?

    2
    2 帖子
    2k 浏览
    yhdthuY

    看到个帖子不错,记录一下。关键词:householder transform

  • <type>Field的一些问题

    6
    6 帖子
    4k 浏览
    Y

    @Samuel-Tu DynamicField虽然叫Dynamic但声明的时候必须先给定大小,一般先选一个大一点的size初始化,用append添加元素,再用shrink删除多余的空元素。

  • 液滴碰撞,粘性应力随时间的变化

    6
    6 帖子
    4k 浏览

    @东岳 江湖百晓生,CFD万事通。

  • Euler异相化学反应

    1
    1 帖子
    1k 浏览

    目前想在这个求解器中添加煤燃烧的反应,将利用反应速率计算需要添加的各个方程的源项。
    1 目前的问题的我在src中的thermophysicalModels找到关于固相化学反应的东西,但是找不到有关化学反应速率的求解公式,例如固相阿雷尼乌斯求解反应速率,所以感觉没有地方能下手修改成自己需要的反应速率?
    2 如果要直接在求解器中编写一个函数,例如是计算反应速率,我我需要调用到的其他数据(施密特数,直径,雷诺数)那些的需要用到什么代码(原谅我是一个C++沫沫)

  • 关于rigidBodyMotion

    1
    1 帖子
    1k 浏览

    在dynamicMeshDict中rigidBody一共有五种type:cuboid;masslessBody;rigidBody;sphere;jointBody,前四种都会用,唯独最后的jointBody没用过,查了一下资料没找着相关说明,有人知道这个jointBody怎么用吗?

  • Sort()函数的作用是什么啊?

    1
    1 帖子
    1k 浏览

    只知道是按照从小到大进行排序,这个sort函数有什么作用?

    void Foam::SortableList<T>::sort() { sortIndices(indices_); List<T> lst(this->size()); forAll(indices_, i) { lst[i] = this->operator[](indices_[i]); } List<T>::transfer(lst); }
  • 如何模拟“多层”的流动

    15
    15 帖子
    11k 浏览

    @东岳 老师,这个公式(1)是他们参考另一篇文章
    Wu, K., Chen, Z., Li, J., Li, X., Xu, J., & Dong, X. (2017). Wettability effect on nanoconfined water flow. Proceedings of the National Academy of Sciences, 114(13), 3358-3363. https://www.pnas.org/content/114/13/3358.short
    我的理解是因为在纳米管内靠近壁面的位置,粘度变化没有统一的解析解,所以看到一些文章就这么分成“多层”粘度,算是粗略简化的方法吧 :xiezuoye:

  • .toc()中的toc()什么意思?

    3
    3 帖子
    2k 浏览

    这个有什么用啊? cellset和cellset.toc()没有区别吧?

  • 类中成员函数的执行顺序与什么有关?

    3
    3 帖子
    2k 浏览

    谢谢,知道了。

  • 7 帖子
    7k 浏览
    yhdthuY

    https://www.cfd-online.com/Forums/openfoam-meshing/182460-creating-baffles-blockmesh.html

  • 关于dynamicMeshDict

    1
    1 帖子
    2k 浏览

    本人使用的是rigidBody,和sixDoFRigidBody不同的是,它有一项是transform,个人理解是用于从全局坐标系转到局部坐标系(动坐标系)的指令,所以如果动坐标系是固定在物体的重心处,transform中的向量项应该和centreOfMass是一致的才对,但是一算就死,后面试了下,把transform中的向量项写成(0 0 0)就能算,不过计算结果中会缺少部分自由度,有人遇到过这个问题吗?

  • kOmega模型的求解器添加温度方程方法

    2
    2 帖子
    2k 浏览
    李东岳

    感谢鸭蛋分享

  • 如何实现非结构网格求变量的梯度?

    1
    1 帖子
    1k 浏览

    其实我只是想实现tecplot里面的ddx函数,但是我找不到tecplot讨论区,所以先发这里了。
    我得到的数据变量在储存在节点,而不是cell中心。网格是二维四边形网格。因为是非结构的,所以不能像笛卡尔网格那样直接求差商。我看了tecplot帮助文档里面ddx的实现方法是Moving Least-Squares,说是假定变量关于节点是二次函数,之后最小二乘法拟合出二次函数,然后将二次函数在节点的梯度近似为该变量在节点的梯度。我不明白对于二维的二次函数,tecplot是否考虑了交叉项xy?
    如果不考虑的话,那我是否可以偷懒:假设需要求f的梯度,求对x的偏导的时候,完全不管y坐标。对单元的四个节点的x坐标x1,x2,x3,x4,和他们的函数值f1,f2,f3,f4进行一维的二次函数拟合。如果得到的拟合结果是f(x,y)=ax^2+bx+c,那第一个节点的x方向梯度就是把x1带入f'(x)=2ax+b中?

    手机打字不太方便,请见谅。

  • 求助,做动网格遇到问题,,找不到原因了

    1
    1 帖子
    1k 浏览
    红豆沙
    Create time Create mesh for time = 0 Selecting dynamicFvMesh dynamicMotionSolverFvMesh Selecting motion solver: sixDoFRigidBodyMotion Selecting sixDoFSolver symplectic Translational constraint tensor (1 -0 -0 -0 1 -0 -0 -0 -624) Rotational constraint tensor (0 0 0 0 0 0 0 0 0) PIMPLE: No convergence criteria found PIMPLE: No corrector convergence criteria found Calculations will do 2 corrections PIMPLE: Operating solver in transient mode with 2 outer correctors Reading field p Reading field U Reading/calculating face flux field phi Selecting incompressible transport model Newtonian Selecting turbulence model type laminar Selecting laminar stress model Stokes No MRF models present No finite volume options present Constructing face velocity Uf Courant Number mean: 0.000625613 max: 0.10552 fieldAverage fieldAverage1: Starting averaging at time 0 forces forces1: Not including porosity effects forces forceCoeffs1: Not including porosity effects forceCoeffs forceCoeffs1: Not including porosity effects Starting time loop Courant Number mean: 0.000625613 max: 0.10552 deltaT = 0.005 Time = 0.005 PIMPLE: Iteration 1 forces forces: Not including porosity effects #0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::sigFpe::sigHandler(int) at ??:? #2 ? in "/lib/x86_64-linux-gnu/libc.so.6" #3 Foam::sixDoFSolvers::symplectic::solve(bool, Foam::Vector<double> const&, Foam::Vector<double> const&, double, double) at ??:? #4 Foam::sixDoFRigidBodyMotion::update(bool, Foam::Vector<double> const&, Foam::Vector<double> const&, double, double) at ??:? #5 Foam::sixDoFRigidBodyMotionSolver::solve() at ??:? #6 Foam::motionSolver::newPoints() at ??:? #7 Foam::dynamicMotionSolverFvMesh::update() at ??:? #8 ? in "/home/z/OpenFOAM/OpenFOAM-7/platforms/linux64GccDPInt32Opt/bin/pimpleFoam" #9 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" #10 ? in "/home/z/OpenFOAM/OpenFOAM-7/platforms/linux64GccDPInt32Opt/bin/pimpleFoam" 浮点数例外 (核心已转储)