CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    OpenFOAM求解器植入自己的代码后并行计算问题

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

      请问一下,OpenFOAM求解器植入自己的代码后还能并行计算吗,代码功能并不是CFD相关算法,具体来说应该是对求解器每个时间步计算得到数据的再次使用。

      没有理解,只有认可

      1 条回复 最后回复 回复 引用
      • bestucan
        bestucan 版主 副教授 最后由 编辑

        那并行求解器也是人写的……
        用开源不就是为了对计算过程肆意妄为,想干啥干啥:chitang:
        当然能啊,只要想到就能。计算机就是帮助人类做重复无意义的工作的。

        你描述的这个其实不用改求解器也行,只是用时间步的数据,算了完再处理也行。编程语言都能处理纯文本数据,或者matlab、excel

        滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

        异步沟通方式(《posting style》from wiki)(下载后打开):
        https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
        提问的智慧(github在gitee的镜像):
        https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md

        1 条回复 最后回复 回复 引用
        • 施主格子
          施主格子 最后由 编辑

          首先,谢谢老师回答,我们这个工作不能输出后再处理,涉及利用计算数据进行反演计算。第二,我不是很懂OpenFOAM的并行是什么原理,只是按照使用规则用过,加了自己的代码后再并行就崩了 :xinlei:

          没有理解,只有认可

          1 条回复 最后回复 回复 引用
          • bestucan
            bestucan 版主 副教授 最后由 编辑

            OpenFOAM 并行和通常意义上的并行有点区别。一般并行的部分都是写在代码里的。OpenFOAM 的并行部分不在代码里,严格说,都不是并行的。并行的任务分配是通过 decomposePar 完成。并行计算是通过 runParallel 完成的。所谓并行就是一下开几个求解器进程,同时算不同的区域,几个求解器的计算区域的交接处信息交换也是 runParallel 完成的。

            这样求解器中的变量就不能“特殊”,要“通识”。不能直接“全场”信息,要用“我计算的所有网格”信息。

            你的第一个帖子说要用每个时间步计算的到的数据,这个数据的调用直接写进求解器。那么在各个区域上计算的进程有的快,有的慢。全场的信息(或者说某个时间步计算的到的结果)对于单个进算进程来说是未知的。对于单个进程:我只计算左上角的区域,然后下一步计算需要引用全区域变量。

            runParallel 应该是没有这样的调度的。进程有快慢,所以偶尔会互相等待。等待也是等待交界面的信息。而这个全场信息是等不来的,得合并各个进程的计算结果才有。

            所以有些求解器它就是不能并行,施主又何必强求:chigua:

            滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

            异步沟通方式(《posting style》from wiki)(下载后打开):
            https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
            提问的智慧(github在gitee的镜像):
            https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md

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