CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    请教在自开发AMR求解器中应用cyclic边界条件报错

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

      各位前辈,我在自适应(AMR)求解器中,对左侧点火端开口,前后面设置为cyclic周期性边界条件,其他面为壁面的算例进行计算时,出现如下报错:

      [14]     Compared coord: (0.0159 0 0.0009) at index 402 with difference to point 0.008
      [14] processorPolyPatch::order : Writing faces to OBJ file procBoundary14to0throughbackwall_faces.obj
      [14] processorPolyPatch::order : Dumping newly found match as lines between corresponding face centres to OBJ file "/home/customer/Desktop/cyclicTest_zhu/3D-H2-initial-mpi-combustion/processor14/procBoundary14to0throughbackwall_faceCentresConnections.obj"
      [14] --> FOAM Serious Error : 
      [14]     From function processorPolyPatch::order(const primitivePatch&, labelList&, labelList&) const
      [14]     in file meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C at line 1015
      [14]     in patch:procBoundary14to0throughbackwall : Cannot match vectors to faces on both sides of patch
      [14]     masterCtrs[0]:(0.0001 0 0.0001)
      [14]     ctrs[0]:(0.0001 0.008 0.0001)
      [14]     Check your topology changes or maybe you have multiple separated (from cyclics) processor patches
      [14]     Continuing with incorrect face ordering from now on
      Refined from 49761 to 50139 cells.
      Selected 21 split points out of a possible 4247.
      [0] 
      [0] 
      [0] --> FOAM FATAL ERROR: 
      [0] Problem. Cannot find (13 452) or 877 (0.0001 0 0.0006) in 1((877 13))
      remoteTransformI:-1
      localTransformI:13
      [0] 
      [0]     From function globalMeshData::findTransform(..)
      [0]     in file meshes/polyMesh/globalMeshData/globalMeshData.C at line 848.
      [0] 
      FOAM parallel run aborting
      [0] 
      [0] #0  Foam::error::printStack(Foam::Ostream&) at ??:?
      [0] #1  Foam::error::abort() at ??:?
      [0] #2  Foam::globalMeshData::findTransform(Foam::List<Foam::Pair<int> > const&, Foam::Pair<int> const&, int) const at ??:?
      [0] #3  Foam::globalMeshData::calcGlobalEdgeSlaves() const at ??:?
      [0] #4  Foam::globalMeshData::globalEdgeSlavesMap() const at ??:?
      [0] #5  void Foam::syncTools::syncEdgeList<int, Foam::maxEqOp<int>, Foam::mapDistribute::transform>(Foam::polyMesh const&, Foam::List<int>&, Foam::maxEqOp<int> const&, int const&, Foam::mapDistribute::transform const&) at ??:?
      [0] #6  Foam::removeFaces::setRefinement(Foam::List<int> const&, Foam::List<int> const&, Foam::List<int> const&, Foam::polyTopoChange&) const at ??:?
      [0] #7  Foam::hexRef8::setUnrefinement(Foam::List<int> const&, Foam::polyTopoChange&) at ??:?
      [0] #8  Foam::dynamicRefineFvMesh::unrefine(Foam::List<int> const&) at ??:?
      [0] #9  Foam::dynamicRefineFvMesh::update() at ??:?
      [0] #10  ? at ??:?
      [0] #11  __libc_start_main in "/lib64/libc.so.6"
      [0] #12  ? at ??:?
      

      模型如下
      photo.jpg
      周期性边界:
      cyclicface.jpg
      我的Boundary文件是这样的:

      boundary
      (
           outlet
           {
              type patch;
              faces  
              (
                 (0 4 7 3)
              );
            }
           
      
           endwall
           { 
              type patch;
              faces  
              (
                 (1 2 6 5)
      	   
              );
            }
      
           upperwall
           { 
              type wall;
              faces  
              (
                 (4 5 6 7)
      	   
              );       
            }
      
           lowerwall
           { 
              type wall;
              faces  
              (
                 (0 3 2 1)
      	   
              );       
            }
      
           frontwall
           { 
              type cyclic;  
              faces  
              (
                 (0 1 5 4)
              );
              neighbourPatch backwall;
           }
      
           backwall
           { 
              type cyclic;        
              faces  
              (
                 (6 2 3 7)
              );
           neighbourPatch frontwall;
            }
      
      ); 
      
                                           
      mergePatchPairs                      
      (   
      	                            
      );
      

      我目前怀疑是因为网格不断加密后,由于数据的传输出现问题导致,有没有遇到过类似问题可以一起讨论一下的。

      1 条回复 最后回复 回复 引用
      • L
        luca 最后由 编辑

        单核是可以运行的,但是一旦并行运算就会报错。

        1 条回复 最后回复 回复 引用
        • 田畔的风
          田畔的风 讲师 最后由 编辑

          Cyclic似乎只适合几何拓扑一致的网格边界吧,你这种情况用cyclicAMI边界可能会好一些。

          L 1 条回复 最后回复 回复 引用
          • L
            luca @田畔的风 最后由 编辑

            @田畔的风 您好,请问您有设置cyclicAMI的相关案例么,能参考下吗?

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