openfoam中如何用blockMesh将一个六面体块切分成两部分加密?
-
FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } // 全局设置 convertToMeters 1; // 顶点定义 vertices ( (0 0 0) (1 0 0) (1 1 0) (0 1 0) (0 0 1) (1 0 1) (1 1 1) (0 1 1) // 添加新的顶点用于切分 (0 0 0.5) (1 0 0.5) (1 1 0.5) (0 1 0.5) ); // 块定义(切分成两个块) blocks ( hex (0 1 2 3 8 9 10 11) (20 20 10) simpleGrading (1 1 1) // 下面的块 hex (8 9 10 11 4 5 6 7) (40 40 10) simpleGrading (1 1 1) // 上面的块 ); // 边界定义 boundary ( front { type patch; faces ( (4 5 6 7) ); } back { type patch; faces ( (0 1 2 3) ); } left { type patch; faces ( (0 4 7 3) ); } right { type patch; faces ( (1 2 6 5) ); } bottom { type patch; faces ( (0 1 5 4) (8 9 5 4) ); } top { type patch; faces ( (3 2 6 7) (11 10 6 7) ); } middle // 添加中间的边界 { type patch; faces ( (8 9 10 11) ); } ); // 网格划分方法 mergePatchPairs ( );
这样多定义出4个顶点(8 9 10 11),但是运行blockMesh的时候报错,如下:(以icoFoam中cavity算例为基础)
--> FOAM FATAL ERROR:
face 0 in patch 2 does not have neighbour cell face: 4(0 4 7 3)
大家之道该怎么调节吗?
具体想实现的功能就是在计算的时候输出一个平面的速度,想用functionObject功能,但是需要指定一个面,所以上述想在画网格的时候把面指定出来。