cyclic boundary 如何使用

OpenFOAM版本:extend3.1
blockmesh中的边界:

patches
(
   patch down
     (
       (0 23 4 3) 
       (23 1 2 4 ) 
       (3 4 5 6 ) 
       (4 2 7 5 ) 
       (6 5 10 9 ) 
       (5 7 8 10 ) 
       (9 10 11 12 ) 
       (10 8 13 11 )
       (12 11 16 15 ) 
       (11 13 14 16 ) 
       (15 16 17 18 ) 
       (16 14 19 17 ) 
       (18 17 22 21 ) 
       (17 19 20 22 ) 
       (21 22 23 0 ) 
       (22 20 1 23 ) 
       (1 24 25 2 ) 
       (2 25 26 27 ) 
       (2 27 28 7 )
       (7 28 29 30 ) 
       (7 30 31 8 ) 
       (8 31 32 13 ) 
       (13 32 33 14 ) 
       (14 33 34 35 ) 
       (14 35 36 19 ) 
       (19 36 37 38 ) 
       (19 38 39 20 ) 
       (1 20 39 24 ) 

     )
       cyclic downYp// symmetryPlane
     (
         (26 27 67 66)
         (27 28 68 67)
         (28 29 69 68)
     )
        cyclic downXm
     (
         (29 30 70 69)
         (30 31 71 70)
         (31 32 72 71)
         (32 33 73 72)
         (33 34 74 73)
     )
        cyclic downYm
     (
         (34 35 75 74)
         (35 36 76 75)
         (36 37 77 76)
     )
        cyclic downXp
     (  
         (37 38 78 77)
         (38 39 79 78)
         (39 24 64 79)
         (24 25 65 64)
         (25 26 66 65)
      ) 
     
        wall downup
       (
           (41 64 65 42) 
           (42 65 66 67) 
           (42 67 68 47) 
           (47 68 69 70) 
           (47 70 71 48) 
           (48 71 72 53) 
           (53 72 73 54) 
           (54 73 74 75) 
           (54 75 76 59) 
           (59 76 77 78) 
           (59 78 79 60) 
           (41 60 79 64)
           (44 42 47 45)
           (50 48 53 51)
           (56 54 59 57)
           (62 60 41 63) 
       )
        // patch middledown
         // (
            // (40 63 44 43)
           //(63 41 42 44)
           //(43 44 45 46)
          // (46 45 50 49)
           //(45 47 48 50)
           //(49 50 51 52)
           //(52 51 56 55)
           //(51 53 54 56)
           //(55 56 57 58)
           //(58 57 62 61)
           //(57 59 60 62)
           //(61 62 63 40)
          // )
        // patch middleup
         //(
          // (80 103 84 83)
         //  (103 81 82 84)
          // (83 84 85 86)
          // (86 85 90 89)
          // (85 87 88 90)
          // (89 90 91 92)
          // (92 91 96 95)
          // (91 93 94 96)
          // (95 96 97 98)
          // (98 97 102 101)
          // (97 99 100 102)
          // (101 102 103 80)
         // )
        wall middleside
         (
           (41 42 82 81)
           (42 44 84 82)
           (44 45 85 84)
           (45 47 87 85)
           (47 48 88 87)
           (48 50 90 88)
           (50 51 91 90)
           (51 53 93 91)
           (53 54 94 93)
           (54 56 96 94)
           (56 57 97 96)
           (57 59 99 97)
           (59 60 100 99)
           (60 62 102 100)
           (62 63 103 102)
           (63 41 81 103)
        )
       
       wall updown
         (  
           (81 104 105 82) 
           (82 105 106 107)
           (82 107 108 87)
           (87 108 109 110) 
           (87 110 111 88) 
           (88 111 112 93) 
           (93 112 113 94) 
           (94 113 114 115) 
           (94 115 116 99) 
           (99 116 117 118) 
           (100 99 118 119) 
           (81 100 119 104) 
           (84 82 87 85)
           (90 88 93 91)
           (96 94 99 97)
           (102 100 81 103)
       )
           cyclic upYp//symmetryPlane
       (
           (106 107 147 146)
           (107 108 148 147)
           (108 109 149 148)
       )
           cyclic upXm
       (
           (109 110 150 149)
           (110 111 151 150)
           (111 112 152 151)
           (112 113 153 152)
           (113 114 154 153)
       )
           cyclic upYm   
       (
           (114 115 155 154)
           (115 116 156 155)
           (116 117 157 156)
       )
           cyclic upXp 
       (
           (117 118 158 157)
           (118 119 159 158)
           (119 104 144 159)
           (104 105 145 144)
           (105 106 146 145)
        )
         wall wall
       (
          (0 3 43 40)//down
          (3 6 46 43)
          (6 9 49 46)
          (9 12 52 49)
          (12 15 55 52)
          (15 18 58 55)
          (18 21 61 58)
          (21 0 40 61)
          (40 43 83 80)//middle
          (43 46 86 83)
          (46 49 89 86)
          (49 52 92 89)
          (52 55 95 92)         
          (55 58 98 95)
          (58 61 101 98)
          (61 40 80 101)
          (80 83 123 120)//up
          (83 86 126 123)
          (86 89 129 126)
          (89 92 132 129)
          (92 95 135 132)
          (95 98 138 135)
          (98 101 141 138)
          (101 80 120 141)
       )
         patch up
       (
          (120 143 124 123) 
          (143 121 122 124) 
          (123 124 125 126) 
          (124 122 127 125) 
          (126 125 130 129) 
          (125 127 128 130) 
          (129 130 131 132) 
          (130 128 133 131) 
          (132 131 136 135) 
          (131 133 134 136) 
          (135 136 137 138)
          (136 134 139 137)
          (138 137 142 141)
          (137 139 140 142) 
          (141 142 143 120)
          (142 140 121 143)
          (121 144 145 122) 
          (122 145 146 147) 
          (122 147 148 127)
          (127 148 149 150)
          (127 150 151 128) 
          (128 151 152 133) 
          (133 152 153 134)
          (134 153 154 155)
          (134 155 156 139) 
          (139 156 157 158) 
          (140 139 158 159) 
          (121 140 159 144)
       )
     
       
);

blockmesh出现错误:

用户指南上为数不多的介绍


你用 blockMesh 生成可以做到比较好的 cyclic ,出现问题的原因是你的 cyclic 边界的几个面没有对齐,在一个 cyclic 边界里,实际上应该有两个类似的边界,前半部分与后半部分是一致的。比如:
有这样两个 blocks ,要做左右两个面为 cyclic ,


在 foam-extend-3.1 中
设置为

cyclc A
(
    (1 2 3 6)     // 左边的边界
    (3 4 5 6)
    (7 8 9 12)    // 右边的边界
    (9 10 11 12)
)

是 cyclic 的话,各点的方向需要一致,对于该网格上面积的误差来说,系统默认为 0.0001。是非常严格的。因此,对于做成 cyclic 的边界,大小需要一致,各顶点要对齐。