如何获得cell信息?
-
polymesh下包含五个文件:points、faces、owner、neighbour和boundary,并没有cell的信息。
我的问题是如何获得:cell包含哪些points,包含哪些faces? -
OpenFOAM和我们的想法不太一样,回想有限体积法一般面上的值和周围的网格有关,因此OpenFOAM主要定义面的owner和neighber就足够进行任意迎风的插值格式了。因此你不会看到cell文件,你会看到owner和neighbour,如果想知道cell的信息,你需要知道包围网格的面,然后通过这些面确定cell的点,
-
我想自编程序验证一些问题,因此需要网格信息。那么现在的问题是:OpenFoam中有没有接口程序实现这个功能:获得cell包含哪些points,包含哪些faces?
-
@xpqiu 在 如何获得cell信息? 中说:
.cellPoints() 返回
十分感谢您的回复!
那么更近一步,我还想获取以下信息:
1) cell与那些cell相连?
2) cell与那些face相连?
3) face与哪些cell相连?
我注意到:extendedStencil目录下有这样的3个文件夹:cellToCell、cellToFace、FaceToCell,应该是干我说的这三件事的,但是具体怎么用不太清楚。
由于本人初学,想请教一下以上三种功能的具体实现方法,谢谢! -
@piteqiu 就我的理解可以认为openfoam实际上是以面作为网格数据的基础的。在非结构网格中面的遍历应该比网格遍历更方便。
-
http://www.openfoam.com/documentation/cpp-guide/html/classFoam_1_1primitiveMesh.html
primitiveMesh派生了polyMesh,polyMesh派生了fvMesh,也就是实际用的mesh
看看primitiveMesh有这么些乱七八糟的函数,总有一款适合你virtual const pointField & points () const =0 Return mesh points. More... virtual const faceList & faces () const =0 Return faces. More... virtual const labelList & faceOwner () const =0 Face face-owner addresing. More... virtual const labelList & faceNeighbour () const =0 Face face-neighbour addressing. More... const edgeList & edges () const Return mesh edges. Uses calcEdges. More... const labelListList & cellCells () const const labelListList & edgeCells () const const labelListList & pointCells () const const cellList & cells () const const labelListList & edgeFaces () const const labelListList & pointFaces () const const labelListList & cellEdges () const const labelListList & faceEdges () const const labelListList & pointEdges () const const labelListList & pointPoints () const const labelListList & cellPoints () const -
7/10