CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    C++帮忙求助creating folder避免相同的名字overwrite(多尺度模拟方向)

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

      举例说明:

      比如我有一个macro scale下的domain, 这个domain里有四个cell

      我想做的如下:

      我loop每一个macro scale下的cell, 对每一个cell建立一个meso scale下的domain,在这一步,我生成了四个meso scale下的domain, 取名为:rve-1,rve-2,rve-3和rve-4, 然后每一个domain也是只有4个cell。

      接下来我loop每一个meso scale下的domain, 然后loop每一个domain里的4个cell,如同上一步,对每一个cell生成micro scale下的domain, 取名为:rve-1,rve-2,rve-3和rve-4, 然后每一个domain也是只有4个cell。

      具体流程如图所示:
      eefc19c6-f336-47cf-a6f4-1371dfa65219-image.png

      模型里的code如下(生成meso scale下的domain的code):
      be23815d-1445-4f01-8640-b2f7badfee5c-image.png

      在相应的folder里会产生(constant, 0, system):rve-1, rve-2, rve-3, rve-4四个folder

      如果继续沿用这套code去生成micro scale下的domain, 就会有如下问题:
      如果micro scale下的folder name和meso scale下的folder name一样, 这样之前产生的folder就会被overwrite掉。

      我的解决方法是:
      当生成micro scale下的folder的时候,把这些folder全部生成在对应的meso scale下的folder。

      比如:
      meso scale下的rve-1 folder里有micro scale下的rve-1,rve-2,rve-3和rve-4的四个folder
      meso scale下的rve-2 folder里有micro scale下的rve-1,rve-2,rve-3和rve-4的四个folder

      这样就不存在overwrite的问题,感觉这里存在一个指向的问题,比如当我在loop meso scale下的rve-1, 怎么让micro scale下的folder指向meso scale下的rve-1

      而不是像code里:
      fileName dst = mesh.time().path()/"constant"/word(RegionName.str());

      dst = mesh.time().path()/"0"/word(RegionName.str());

      dst = mesh.time().path()/".."/"system"/word(RegionName.str());

      直接把他们放在一个固定的位置。

      希望我把我的问题解释清楚了,求各位大神有偿帮忙解决一下,感激不尽。

      微信:itsme_kit

      1 条回复 最后回复 回复 引用
      • Y
        yfclark 讲师 最后由 编辑

        树状结构的文件夹看起来好麻烦啊,建议看看c++二叉树数据结构,也许能解决你的问题

        I 1 条回复 最后回复 回复 引用
        • I
          itsme_kit @yfclark 最后由 编辑

          @yfclark 谢谢你的建议,我去了解了解。

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