Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 如何设置一个入口边界条件:入口边界值为出口平均值的一半

如何设置一个入口边界条件:入口边界值为出口平均值的一半

已定时 已固定 已锁定 已移动 OpenFOAM
25 帖子 6 发布者 16.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • D 离线
    D 离线
    D.Benjamin
    在 中回复了 玉玺 最后由 编辑
    #14

    @玉玺 你好,我目前不研究两相流,不能给你具体方案,从我们上述讨论中你应该可以找到思路,祝好

    OpenFOAM初学者,希望和大家共同交流

    1 条回复 最后回复
  • D 离线
    D 离线
    D.Benjamin
    在 中回复了 玉玺 最后由 编辑
    #15

    @玉玺 我不是做两相流的

    OpenFOAM初学者,希望和大家共同交流

    玉 2 条回复 最后回复
  • 玉 离线
    玉 离线
    玉玺
    在 中回复了 D.Benjamin 最后由 编辑
    #16

    @D-Benjamin 您好,我想咨询一下,我用codedFixedValue边界条件

    label patchIndex =this->patch(). boundary. findPatchID(”“outlet”);
    const volVector& U=this->db(). lookupObject<volVectorField>("U.particles");
    

    这两行读取的速度就是outlet的出口颗粒速度吧

    CFD小菜鸟一枚,万一遨游了

    1 条回复 最后回复
  • 玉 离线
    玉 离线
    玉玺
    在 中回复了 D.Benjamin 最后由 编辑
    #17

    @D-Benjamin 如果那两行是它的速度的话,然后我再U去获得它的x方向速度,令它等于入口x的速度,这样子就可以了吧?非常感谢

    CFD小菜鸟一枚,万一遨游了

    D 1 条回复 最后回复
  • D 离线
    D 离线
    D.Benjamin
    在 中回复了 玉玺 最后由 编辑
    #18

    @玉玺 你好,你的第一行是对的,由于我不做颗粒,我研究的就是流体,所以我不清楚你的第二行那样获取颗粒速度是否正确。你可以先测试下。不过我觉得,获得出口速度值应该类似于这样的:

    const volVector& U=this->db(). lookupObject<volVectorField>("U.particles")[patchIndex];
    

    欢迎继续交流

    OpenFOAM初学者,希望和大家共同交流

    玉 2 条回复 最后回复
  • 玉 离线
    玉 离线
    玉玺
    在 中回复了 D.Benjamin 最后由 编辑
    #19

    @D-Benjamin 大佬,冒昧问一句可否加个联系方式交流交流,我看到您要实现的也是进出口的通量关系,论坛可能不方便qq1533317221

    CFD小菜鸟一枚,万一遨游了

    1 条回复 最后回复
  • 玉 离线
    玉 离线
    玉玺
    在 中回复了 D.Benjamin 最后由 编辑
    #20

    @D-Benjamin 刚才试了加上最后面那个面标号,运行好像出了点错误,待我明早去实验室确定一下。

    CFD小菜鸟一枚,万一遨游了

    D 1 条回复 最后回复
  • D 离线
    D 离线
    D.Benjamin
    在 中回复了 玉玺 最后由 编辑
    #21

    @玉玺 好的,我也准备回宿舍休息了,明天再交流吧。还有,我不是大佬,我只是比你学得久一点点的初学者,东岳老师以及贴吧里一些讲师,教授们,他们才是大佬

    OpenFOAM初学者,希望和大家共同交流

    1 条回复 最后回复
  • S 离线
    S 离线
    Samuel-Tu
    在 中回复了 李东岳 最后由 编辑
    #22

    @东岳 东岳老师,decomposed后的patch里面的face是否还是按分解前的顺序排列呢。例如分解前的patch中有6个face编号为0,1,2,3,4,5。分解的时候刚好从中间分开了,分解成两个processor里面,则processor1和processor2里的face编号都变成了 0,1,2。假如processor2里面的face是未分解时候的4,5,6,那么现在face 0,1,2一定对应的是4,5,6吗,也就是说这个顺序会不会改变,会不会0,1,2对应成原来的5,6,4了

    1 条回复 最后回复
  • C 离线
    C 离线
    cxzhmg
    写于 最后由 编辑
    #23

    这个问题应该可以通过对已有的边界条件进行简单的修改,形成新的边界条件,可以参考cyclic边界让入口获取出口的patchID,然后gsum求和再付给入口。并行的问题可能是在循环出口边界的时候,每个processor多计算了分界处的网格(这只是我的猜测,我没用试过代码)。推荐用g开头的openfoam自带的函数,这些函数都是支持并行的并会自动广播的,不需要你自己再考虑并行的问题,除非你要实现的功能没有。

    D 1 条回复 最后回复
  • D 离线
    D 离线
    D.Benjamin
    在 中回复了 cxzhmg 最后由 编辑
    #24

    @cxzhmg 谢谢您的回复!您的回复给了我很好地思路,我有几个问题:

    1. 在gsum求和再付给入口之前需要进行面平均处理,所以可能正如您所说,在循环出口边界的时候,每个processor多计算了分界处的网格,才导致并行计算结果大于实际结果。您推荐用g开头的openfoam自带的函数给了我很好地思路,所以如果有一个g开头的取某个场面平均的函数就好了,然而gAverage()是算数平均,不是面平均。另一个思路是如果有一个g开头的函数可以得到某个场关于出口网格面的积分值,然后除以整个出口的面积,也可以得到面平均。

    2. 所以,请问在哪里可以查到如gSum()这些g字开头的函数?并行计算我现在只知道gSum()和gAverage()两个函数,我想更多地了解一下,要是能够找到我上面所说的g开头求场面平均或者求场的面积分函数就好了。

    期待回复,祝好!

    OpenFOAM初学者,希望和大家共同交流

    C 1 条回复 最后回复
  • C 离线
    C 离线
    cxzhmg
    在 中回复了 D.Benjamin 最后由 编辑
    #25

    @D-Benjamin 具体一共都有哪些函数我也不是很清楚,具体函数和怎么用通常都是看看openfoam自带的边界或者求解器或者其它的应用有类似你想获得功能,就去翻源代码。gsum应该也可以对边界上的网格体积或者面进行求和,应该就能实现你说的功能。

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]