如何获得cell信息?



  • polymesh下包含五个文件:points、faces、owner、neighbour和boundary,并没有cell的信息。
    我的问题是如何获得:cell包含哪些points,包含哪些faces?



  • OpenFOAM和我们的想法不太一样,回想有限体积法一般面上的值和周围的网格有关,因此OpenFOAM主要定义面的owner和neighber就足够进行任意迎风的插值格式了。因此你不会看到cell文件,你会看到owner和neighbour,如果想知道cell的信息,你需要知道包围网格的面,然后通过这些面确定cell的点,



  • 我想自编程序验证一些问题,因此需要网格信息。那么现在的问题是:OpenFoam中有没有接口程序实现这个功能:获得cell包含哪些points,包含哪些faces?


  • 版主

    @piteqiu
    mesh.cells() 返回网格包含哪些faces的信息,mesh.cellPoints() 返回网格包含哪些点的信息。

    上面的 mesh 是 fvMesh 类的对象,它是这样子定义的:

    Foam::fvMesh mesh
    (
       Foam::IOobject
       (
          Foam::fvMesh::defaultRegion,
          runTime.timeName(),
          runTime,
           Foam::IOobject::MUST_READ
       )
    );
    


  • @xpqiu如何获得cell信息? 中说:

    .cellPoints() 返回

    十分感谢您的回复!
    那么更近一步,我还想获取以下信息:
    1) cell与那些cell相连?
    2) cell与那些face相连?
    3) face与哪些cell相连?
    我注意到:extendedStencil目录下有这样的3个文件夹:cellToCell、cellToFace、FaceToCell,应该是干我说的这三件事的,但是具体怎么用不太清楚。
    由于本人初学,想请教一下以上三种功能的具体实现方法,谢谢!



  • @piteqiu 就我的理解可以认为openfoam实际上是以面作为网格数据的基础的。在非结构网格中面的遍历应该比网格遍历更方便。


  • 版主

    @piteqiu

    1. mesh.cellCells();
    2. mesh.cells();
    3. owner 和 neighbour 就定义的是face与cell的关系。


  • http://www.openfoam.com/documentation/cpp-guide/html/classFoam_1_1primitiveMesh.html
    primitiveMesh派生了polyMesh,polyMesh派生了fvMesh,也就是实际用的mesh
    看看primitiveMesh有这么些乱七八糟的函数,总有一款适合你!
    image

    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





  • @程迪 good stuff, thanks


登录后回复
 

与 CFD中文网 的连接断开,我们正在尝试重连,请耐心等待