CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

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

    OpenFOAM
    3
    9
    2751
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 我
      我是河滩 最后由 编辑

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

      动边界

      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

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

        • 从算法上手写代码

        • 从代码上手学算法

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

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

        线上CFD课程开始报名:http://www.dyfluid.com/class.html

        CFD高性能服务器 http://dyfluid.com/servers.html

        1 条回复 最后回复 回复 引用
        • 我
          我是河滩 最后由 编辑

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

          动边界

          我 W 2 条回复 最后回复 回复 引用
          • 我
            我是河滩 @我是河滩 最后由 编辑

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

            动边界

            1 条回复 最后回复 回复 引用
            • W
              wwzhao 教授 @我是河滩 最后由 编辑

              @我是河滩

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

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

              我 1 条回复 最后回复 回复 引用
              • 我
                我是河滩 最后由 编辑

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

                动边界

                W 1 条回复 最后回复 回复 引用
                • 我
                  我是河滩 @wwzhao 最后由 编辑

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

                  动边界

                  1 条回复 最后回复 回复 引用
                  • W
                    wwzhao 教授 @我是河滩 最后由 编辑

                    @我是河滩

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

                    1 条回复 最后回复 回复 引用
                    • 我
                      我是河滩 最后由 编辑

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

                      动边界

                      1 条回复 最后回复 回复 引用
                      • First post
                        Last post