最近忙了一点,很长时间没有更新了。今天我们一起来看看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 !!
加载中,请稍候......