你的位置:合肥市庐阳区笛梵信息科技工作室 > 新闻资讯 >
发布日期:2024-06-25 10:29 点击次数:183
本文介绍OpenFOAM中samping操作基础。
functionObject可以在求解过程中输出指定的物理量信息。当求解计算完毕后,可以选择使用Sampling获取特定位置物理信息,此时主要使用postProcess程序来实现。
利用postProcess进行采样,需要定义采样字典文件,这些文件位于system路径下,文件可以任意命名。当采样计算完毕后,算例路径中将会新建一个名为postProcessing的新文件夹,在该文件夹里面包含与字典文件同名的子目录,其中存储了采样获取的结果数据。
下面结合实际算例来进行描述。
如下图所示,算例文件system文件夹中包含两个字典文件probeDict及sampleDict,其中定义了取样操作所需的参数。
图片
1、probesDict字典文件
该文件中定义了需要在计算域中进行取样的点。本算例取样点的位置如下图所示。
图片
probesDict文件内容如下所示。
FoamFile{ version 2.0; format ascii; class dictionary; object probesDict;}// * * * * * * * * * * * * * * * * * //// 指定类型为probestype probes; // 指定需要提取的物理场fields( p U); // 取样点的坐标列表probeLocations( (1.0 0 0) (1.25 0 0) (1.5 0 0) (1.75 0 0) (2.0 0 0) (2.0 -0.25 0) (2.0 -0.5 0) (2.0 0 .25 0) (2.0 0 .5 0));
文件准备完毕后可以使用命令:
postProcess -func probeDict -time 2000
这里指定参数-time 2000,则只输出2000 s时刻的数据,若不指定此参数,乐清市新驰进出口有限公司则会每一时刻的数据。
运行完毕后, 陆丰市瀛达家具配件有限公司算例文件夹中的postProcessing路径下会多出一个名为probesDict的子文件夹, 江苏龙腾鹏达机电有限公司其中包含了2000 s时刻监测点位置的U与p的值。
图片
对于本算例,2000/U文件中的内容如下所示,列举了所检测的9个点位置的速度分量:
# Probe 0 (1 0 0)# Probe 1 (1.25 0 0)# Probe 2 (1.5 0 0)# Probe 3 (1.75 0 0)# Probe 4 (2 0 0)# Probe 5 (2 -0.25 0)# Probe 6 (2 -0.5 0)# Probe 7 (2 0.25 0)# Probe 8 (2 0.5 0)# Time 0 1 2 3 4 5 6 7 8 2000 (1.0960031 -0.61045141 0) (1.0003352 -0.35057338 1.1984886e-20) (0.99511675 -0.22368641 -1.4884685e-20) (0.99587925 -0.17217799 6.8574687e-21) (0.99434334 -0.13173595 0) (0.85681371 -0.10854681 3.6035834e-20) (0.95135192 -0.1125737 2.353505e-20) (1.0221783 -0.12625997 -1.5616405e-20) (1.041875 -0.12290482 -6.6065831e-20)
文件2000/p内容如下所示,其列举了9个定位置的压力值:
# Probe 0 (1 0 0)# Probe 1 (1.25 0 0)# Probe 2 (1.5 0 0)# Probe 3 (1.75 0 0)# Probe 4 (2 0 0)# Probe 5 (2 -0.25 0)# Probe 6 (2 -0.5 0)# Probe 7 (2 0.25 0)# Probe 8 (2 0.5 0)# Time 0 1 2 3 4 5 6 7 8 2000 -0.60129439 -0.061042557 -0.020796443 -0.011252459 -0.0028472253 0.020868043 0.041151249 -0.030775763 -0.050775396
2、sampleDict字典文件
该文件定义了一条线,公司简介之后对该线上的物理量进行提取。
FoamFile{ version 2.0; format ascii; class dictionary; object sampleDict;}// * * * * * * * * * * * * * * * //// 指定类型为sets,通常可以为points及linestype sets;libs ("libsampling.so"); // 插值方式,可以是cellPoint、cellPointFace、// cellPointWallModified或cellinterpolationScheme cellPoint; // 文件存储格式setFormat raw;surfaceFormat raw; // 指定待取样的物理场// 这里指定了速度与壁面剪切应力// 本算例中并不能提取到壁面剪切应力// 物理量不存在也没有关系fields( U wallShearStress); // 定义集合sets( profile0 { // 指定几何类型为线 type lineCellFace; axis distance; // 两个点确定一条线 start ( 0.75150 0.04767 0 ); end ( 0.76168 0.14715 0 ); } );/////// 若不清楚关键字选项,可以使用banana方法
执行以下命令提取数据:
postProcess -func sampleDict –time 2000
命令执行完毕后会在postProcessing文件夹中增加子文件夹sampleDict,并在其中存储采样数据。
图片
可以使用gnuplot绘制速度分量沿直线长度的分布:
set xlabel 'length(m)'set ylabel 'velocity(m/s)'set key outsideplot 'profile0_U.xy' u 1:2 w l lw 2 lc 7 t 'u_x','' u 1:3 w l lw 2 t 'u_y','' u 1:4 w l lw 2 t 'u_z'
如下图所示。
图片
对于选用不同的数据集,其存储的文件形式有所不同。
如点集采样,对于标量场,其文件存储形式为:
#POINT_COORDINATES (X Y Z) SCALAR_VALUE0 0 0.05 13.3109950 0 0.1 1 9.263215...
若为矢量场公司简介,则其存储形式为:
#POINT_COORDINATES (X Y Z) VECTOR_COMPONENTS (X Y Z)0 0 0.05 0 0 13.3109950 0 0.1 0 0 19.263215...
若采样集为线,则存储形式为:
#AXIS_COORDINATE SCALAR_VALUE0 13.3109950.0015 1 9.263215...
若为矢量场,则其存储形式为:
#AXIS_COORDINATE VECTOR_COMPONENTS (X Y Z)0 0 0 13.3109950.0015 0 0 19.263215...
若采样的为表面,则存储形式
#POINT_COORDINATES (X Y Z) SCALAR_VALUE0 0 0.05 13.3109950 0 0.1 19.263215...
若为矢量场,则其存储形式为:
#POINT_COORDINATES (X Y Z) VECTOR_COMPONENTS (X Y Z)0 0 0.05 0 0 13.3109950 0 0.1 0 0 19.263215...本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。
上一篇:汤芳:大胆创新的艺术探索者