Skip to content

OpenFOAM

OpenFOAM交流区

5.3k 主题 31.3k 帖子
  • compressibleInterFoam中压力方程求解出错

    3
    3 帖子
    4k 浏览

    @李东岳 东岳老师,我解决了这个问题,是由于我编写的公式中有一个分母为0的缘故,现已解决,谢谢老师。

  • 有关low Mach的疑问

    13
    13 帖子
    13k 浏览
    N

    @李东岳 @程迪 恶补了一下密度基,追问一个问题,为什么密度基解不可压的时候不准,为什么压力基解可压的时候不准,有没有什么相关的资料可以看的,只知道这两个不准是大家纷纷改进这两个方法的motivation。

  • OF中虚函数疑惑

    7
    7 帖子
    7k 浏览

    你要清楚你想实现的语义是什么,再去找具体的语言机制。

    虚函数的语义是多态,也就是你有一个基类的指针引用可以自动调用到实际子类的函数。

    纯虚函数的语义是一个接口。

    有纯虚函数的类是虚基类起的是定义调用接口的作用,同时虚基类不能实例化,对编程也是一种限制性保护。

    p.s.简单一点儿,都整成虚的也可以。调用开销通常没那么大。

  • noSlip边界速度不为0的问题

    18
    18 帖子
    17k 浏览

    @李东岳 东岳老师,我懂了。进入相应of的环境变量下,就能调用出相应版本的paraview了。谢谢东岳老师:happy:

  • OpenFOAM不同版本代码转换的问题

    13
    13 帖子
    15k 浏览

    @xiaofenger
    没人能保证新的比旧的精确效率高。。。可以跟踪一下github上代码相关的commit message.历史,可以看出它是怎么演进的。

  • 关于并行计算的问题

    17
    17 帖子
    15k 浏览

    @李东岳
    NPC++没有提ldu结构,ldu结构reorder不减少matrix-vector product的操作次数。所以加速只可能来源于两点:更高的cache命中率(同样数量的操作,更快的执行速度)和更高的迭代效率(比如GS迭代,或许reorder之后的GS迭代矩阵的谱半径更小)。

    对于纯粹的Krylov型求解器应该只有第一点。

  • 3 帖子
    4k 浏览
    chpjz0391C

    你试试用ICEM画一个简单的网格,然后分别用fluent和OF计算看看结果相同么。网格不一样还有算法不一样的话没有可比性。

  • buoyantBoussinesqPimpleFoam动量方程是否有误?

    4
    4 帖子
    5k 浏览
    C

    @noringname 看了下量纲,发现是除过rho的了,谢谢你的帮助。

  • MULES的使用?

    1
    1 帖子
    2k 浏览
    Z

    请问一下MULES的使用方法,比如MULES()各形参如何设置还有意义?

  • 2 帖子
    2k 浏览

    添加这个在你的PIMPLE括号里面:

    pRefValue 0; pRefCell 0;
  • 基金会那个造波的怎么样?

    6
    6 帖子
    7k 浏览
    C

    @maoyanjun_dut 我写了一个推板造波的solver,也写了主动消波,阻尼区什么的,目前正在做质量源造波,这样就可以算浮体了

  • 1 帖子
    2k 浏览
    M

    @李东岳 在东岳流体上看到了关于pimpleDyMFoam中mesh.update()函数的一点简单解释,但还是不是很清楚,我最近正在用sixdof求解,想要明白其中的调用关系。看了好久,还是没理清,不知道sixdof是怎么被mesh.updata()调用的。希望东岳兄可以发个帖子,详细的指点一二。路过的各位大神也欢迎多多指导小弟。

  • 聊一聊同位网格的速度压力解耦

    4
    4 帖子
    6k 浏览

    foam-extend 有修正的版本。看了一下,是分项松弛的,只对压力项有松弛,别的体力(非定常其实就是惯性力体力)项没有动。

  • 1 帖子
    2k 浏览
    A

    查看源程序PatchInjectionBase.C,发现了指定颗粒由面入射时,颗粒并不是分布在指定的发射面上,而是距离发射面竖直方向一定距离范围内,作为后续颗粒追踪过程的起始位置。

    问题在于 程序首先根据发射面的位置预先确定了颗粒所在的四面体网格编号,而颗粒在位置追踪前的初始位置是上述方式确定的,有可能颗粒的实际位置在记录的网格外,甚至是计算域外,这样就需要后续的“Tracking Rescue”算法来修正(暂且不提),也就是说这种颗粒发射方式有可能造成“particle lost”
    那么如何将这种方式入射的颗粒起始位置(下图的position变量,0时刻,轨迹追踪前)写进计算案例的0文件夹内呢?(本人刚接触openfoam程序,对程序的输入、输出系统结构不懂,您若能提供任何有用的建议或意见,将不胜感激!)
    0_1500885637991_捕获.PNG

  • AETKv1移植到OF41

    7
    7 帖子
    7k 浏览

    @Qing
    无非代码感觉脏点儿,BLAS等库其实也是把小矩阵直接展开的。无所谓啦。

  • 3 帖子
    3k 浏览
    Q

    @程迪 AETK 是啥?。。。。。我对 OpenFOAM 不太熟。。。

  • HbyA,phiHbyA,fvc::div(phiHbyA)计算错误问题

    16
    16 帖子
    14k 浏览
    yhdthuY

    @李东岳 前辈,解决了,原来是输出精度不够导致的,我的锅:lol:

  • 1 帖子
    2k 浏览
    A

    OpenFOAM-3.0.x/src/lagrangian/basic/particle文件夹下particleTemplates.C中line 202——line 530描述了trackToFace函数,即对颗粒在欧拉网格下的追踪过程。对lambdaMin小于0或者大于1的情况出现的原因不是很清楚,这种情况下记录的颗粒所在的网格id号和颗粒真实的位置不一致,对应于源程序中501——506行The particle can be 'outside' the tet. This will yield a lambda larger than 1, or smaller than 0. For values < 0 ...............,程序下面给出了解决方案
    但是究竟是什么原因导致的The particle can be 'outside' the tet?希望大神能够给些建议。

    目前个人对程序理解到的程度是:

    1)在一个拉格朗日时间步长内,需要对颗粒运动路径通过的每一个欧拉网格的id号以及颗粒在那个网格中的停留时间进行识别和计算;

    2)颗粒下一时步所在的网格id号是通过时间逐步推进来获取相邻网格id号的办法实现,这里最重要的是判断颗粒穿透了网格的哪一个面以及那个面对应的相邻网格;

    3)通过颗粒当前所在网格(实际应用的时候是将颗粒所在网格划分为符合一定质量要求的四面体网格,细化颗粒追踪过程)面信息,颗粒当前位置,四面体网格中心点位置,颗粒一个时步内终点位置来计算lambdaMin的值(并记录了此值对应的网格面编号),个人理解程序通过lambdaMin的值是否在0与1之间来判断出颗粒是否“真正”穿过了那个网格面,对于此范围之外的lambdaMin的值,对应于颗粒实际位置在它所记录的网格之外,可以认为是颗粒跟踪失败,程序给出了“补救措施”

    简而言之,lambdaMin小于0或者大于1的情况从程序的角度是如何产生的?如何通过输出有关的变量来进行验证(同时也为了解决这样一个疑惑:颗粒仿真时有时会有颗粒穿透边界而落到计算域的外部,个人感觉和这个过程很相关)

  • 2 帖子
    3k 浏览
    A

    parcel间以及与壁面碰撞的时候,修正时目前可以考虑useEquivalentSize,即对应于nParticle>1情况下的 等效粒径

  • Foam4.0编译出错请教

    5
    5 帖子
    5k 浏览
    Z

    @队长别开枪 就是单独编译后,paraview也正常了。不提示有错是不是就算可以了?