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



  • 举例说明:

    比如我有一个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


  • OpenFOAM讲师

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



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


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2