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的源程序代码?

如何学习OpenFoam的源程序代码?

已定时 已固定 已锁定 已移动 OpenFOAM
9 帖子 3 发布者 8.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 我 离线
    我 离线
    我是河滩
    写于 最后由 编辑
    #1

    目前打算在OpenFOAM中实现重叠网格的功能,OpenFoam V1812和OpenFoam-extend 均含有overset功能的求解器,但二者程序不同,源文件很多,都不太直观,不知从何看起?是自己完全不按照OpenFoam自带的程序,自己编程实现重叠网格呢?还是学习其代码,基于其代码开发呢?由于对其采用的重叠方法不是很熟悉,感觉看代码很费事啊,觉得还不如自己编(至少自己编的方法自己知道),有人能给出一些看代码的建议吗?

    动边界

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #2

    在这里假定你已经1)熟悉OpenFOAM代码,2)熟悉速度压力耦合,下一步可以看重叠网格的代码了。一般情况下分为俩条路:

    • 从算法上手写代码

    • 从代码上手学算法

    第一种要慢一些,第二种要快一些。如果你熟悉自己的算法,莫不如选择第一种方法。如果你算法还不熟悉,那只能走第二条路看看别人的算法怎么搞的。

    源文件肯定是多。在这里最好找个简单的开始看,你看看OpenFoam V1812和OpenFoam-extend哪个简单,就看哪个。选择一个

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • 我 离线
    我 离线
    我是河滩
    写于 最后由 编辑
    #3

    谢谢,OpenFOAM代码看过不少,但称不上熟悉。压力速度耦合算法比较熟悉。重叠网格的算法已经看过好多文献,一些简单的重叠方法自己也编程实现了,就是没有整体组装起来,也没有进行求解。但不知道OpenFOAM用的是什么方法,所以感觉理解它的思路和重新学习差不多。考虑到自己编程可能兼容性会不如OpenFOAM,比如稳定性、并行计算等,利用其框架可能会好一些(自己对并行一点不懂)。目前来看,OpenFOAM自带的重叠功能远不如其他商业软件成熟,而且速度较慢。我熟悉C语言,但对C++的类、继承什么的只是了解,还没用过,所有源文件太多,加上不知道Openfoam用的什么重叠算法,自己就看不下去了。我若自己编程,肯定是按照C的思路去编程的,
    至于那个版本简单,目前对我来说都不简单,下来再看看,主要觉得自己编程能力不强,所以想利用OpenFOAM,觉得会省时间,但看别人的代码也要费时间啊。

    动边界

    我 W 2 条回复 最后回复
  • 我 离线
    我 离线
    我是河滩
    在 中回复了 我是河滩 最后由 编辑
    #4

    @我是河滩 我曾经给博士论文《船桨舵相互作用的重叠网格技术数值方法研究》的作者发过邮件,他是国内较早把重叠网格在Openfoam中实现的人(从国内可见的论文中来说属较早),但重叠网格的实现利用的是重叠网格库,并不是作者自己从头编程去做重叠的,因此觉得完全自己编重叠网格程序意义不是很大。而且如若只是实现现有的重叠算法,没有改进的话,那还不如用商业软件了,比较矛盾。

    动边界

    1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    在 中回复了 我是河滩 最后由 编辑
    #5

    @我是河滩

    一些简单的重叠方法自己也编程实现了

    不知道你实现了哪些功能呢?我之前也看过一些 OpenFOAM 重叠网格的代码,或许可以互相讨论一下。

    我 1 条回复 最后回复
  • 我 离线
    我 离线
    我是河滩
    写于 最后由 编辑
    #6

    Hole map inverse map 临近点搜索,就是一些挖洞和寻点的基本方法,并没有进行流场求解计算,感觉结构网格能容易一些,但Openfoam网格数据结构不是的。

    动边界

    W 1 条回复 最后回复
  • 我 离线
    我 离线
    我是河滩
    在 中回复了 wwzhao 最后由 编辑
    #7

    @wwzhao 你觉得OpenFOAM目前的重叠功能怎么样?是不是比较慢?容不容易出现orphan cell?

    动边界

    1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    在 中回复了 我是河滩 最后由 编辑
    #8

    @我是河滩

    非结构网格的挖洞及stencil确定比结构网格难得多,而且三维更难。我目前还没试过OpenFOAM提供的重叠网格功能,所以不好评论它的表现如何。不过我记得OpenFOAM中的单元标记中没有orphan这个概念吧。

    1 条回复 最后回复
  • 我 离线
    我 离线
    我是河滩
    写于 最后由 编辑
    #9

    哦,对我来说,可能就是编程上比较麻烦,好像我问过的人都说难,:zoule:

    动边界

    1 条回复 最后回复

  • 登录

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