加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

OpenFOAM-1.6中sample的使用

(2010-01-28 19:49:39)
标签:

openfoam研究

教育

分类: OpenFOAM使用

    最近忙了一点,很长时间没有更新了。今天我们一起来看看sample后处理功能。

    OpenFOAM中sample用来从计算结果中取出符合某种要求的点集合,比如:某条线上的点集合或者取某个面上的点集。在OpenFOAM-1.6中比1.5版本功能有所增强。我们来一起看看sample的用法。使用sample需要在system文件夹中增加sampleDict参数字典用于指定你要取得点的限制。在下面路径文件夹中,有个sampleDict的例子

OpenFOAM-1.6\applications\utilities\postProcessing\sampling\sample。

下面简单的说一下sample的具体功能

1)取某条直线上的点

关键字:

    setFormat raw;   //用来指定直线上点的输出的格式,该值可以为xmgr,jplot,gnuplot分别用来指定软件xmgr,jplot,gnuplot能够识别的格式,raw输出的是文本格式。

    interpolationScheme cellPoint;   //用来确定取指定点所用到的插值格式,该值可以为 cell(直接利用点cell的值),cellPoint(利用cell中心和单元节点插值),cellPointFace(利用单元中心,单元节点及其面心进行插值)。

    fields
    (
    p
    U
    );    // 用来指定要取的场,也就是从压力和速度场中取值

   

   sets

  

        lineX1   //线的名字,可以为任意值
       {
        type        uniform;     //取点类型,该值可以为  uniform(均匀分布点),face(线与网格面的交点),midPoint(线与网格面交点的中点),midPointAndFace(线与网格面的交点及其相邻交点的重点),cloud(用来指定某些点)

       axis        distance;   //输出点值的同时输出的位置相关值信息。该值可以为:x(x坐标),y(y坐标),z(z坐标),xyz(xyz坐标),distance(当前点离start的距离)。

        start       (0.02 0.051 0.005);    //起始点位置(x y z)
        end         (0.06 0.051 0.005);    //终点位置(x y z)
        nPoints     10;            //取点的个数
       }

       对于cloud可以这样使用

       lineX2

     

        type    cloud;
        axis    xyz;
        points  ((0.049 0.049 0.005)(0.051 0.049 0.005));    //用来指定要输出的所有点的位置。

     

    );

 

2)取某个面上的点

   surfaceFormat vtk;  //输出面上点的格式,可以为foamFile(像OpenFOAM存储网格一样存储点),dx(DX可以认识的格式),vtk(vtk ascii格式),raw(直接输出文本格式,点及其对应的值)。

   interpolationScheme   //见上面

   fields  //见上面

   surfaces    //可以取一个平面,一个边界面或者一个某个场等值面上的值的分布

  

        constantPlane  
        {
        type            plane;    //定义一个平面,该面要做三角化(因为有的软件只认识三角形表面网格)

        basePoint       (0.0501 0.0501 0.005);   //面过的点
        normalVector    (0.1 0.1 1);            //经过该点的法向量

        }

        movingWall_constant  // 面名字,可以任意
       {
        type            patch;    //在边界面取点
        patchName       movingWall;  //指定边界名字
        // triangulate     false;    //是否进行三角化,默认不进行
       }

    interpolatedIso    //曲面名字
    {
        type            isoSurface;    // 再一个等值面上取点,默认做三角化

        isoField        rho;          //等值面场
        isoValue        0.5;          //等值面的值
        interpolate     true;         //是否进行插值

     }

    );

 

    按照上述格式填写sampleDict后,将其放在system文件夹中,然后进入控制台进入该case的根目录,输入sample就可以将所有时刻符合要求的点取出来了。如果对OpenFOAM的case文件夹结构不熟悉的话,可以看看本站以前的博文。 

    试一试这个后处理功能? Good Luck !!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有