首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenFOAM|11 了解functionObject

本文描述OpenFOAM中的functionObject。

1 介绍

OpenFOAM求解计算过程中,可以使用functionObject执行数据的提取与处理。functionObject是按指定间隔执行的小段代码,无需显式链接到应用程序,当在使用的过程中,可以将特定的数据写入到文件中以方便图形绘制及后处理。

functionObject在字典文件中进行指定,且在预定义的时间点上执行操作。

functionObject在OpenFOAM求解计算的过程中可以实时修改。在OpenFOAM计算完毕后也可以执行functionObject,例如,可以使用functionObjects计算马赫数,涡量场,并在给定点或沿直线的速度进行采用。

在文件夹中可以找到functionObject的源代码。该文件夹中包含一些子文件夹(field、forces、lagrangian、solver、utilities等),分别对应着不同的使用类型,在子文件夹下存放各种不同类型的functionObject,如courantNo、forceCoeffs等。如下图所示。

除了functionObjects外,在路径中可以找到采用工具的所有源代码。

functionObject在字典文件中定义。如下面定义了一个fieldMinMax的对象,该对象用于在指定时间点上输出计算区域中的压力、速度等物理量的最大最小值:

OpenFOAM中包含了许多functionObject,一些特定的functionObject使用起来较为复杂。另外,functionObjects可以具有许多选项和一些限制,最好的建议是阅读doxygen文档或源代码,以学习如何使用functionObjects。

注:functionObjects源代码路径:;sampling工具源代码路径:;functionObject所需的数据库源代码路径。

2 算例

下面以一个使用了functionObject的算例来进行描述。该算例计算的是一个三段翼外流场,如下图所示。

通过使用functionObject在计算过程中输出物理量(如yplus、涡量、物理场的平均值、力、力系数、物理场的最大最下周、进出口流量等)。

functionObject在字典文件中定义,打开controlDict文件:

这里使用了externalFunctionObject文件,该文件内容如下所示。

这里的functionObject可以在运行时随求解器一起执行。

但有时可能事先忘记了在controlDict字典中定义functionObject,导致计算完毕后数据并未提取出来。OpenFOAM允许用户在求解计算完毕后执行functionObject,此时可以在controlDict文件中添加functionObject,然后利用命令:

也可以将functionObject写入到一个独立的文件中,然后执行上面的操作命令。一个简单的调用例子:

3 查看结果

计算完毕后,算例路径下多出了一个名为的文件夹。

该文件夹中的文件组织形式如下所示。

此时可以绘制监控得到的数据图。

如查看力系数文件(路径postProcessing/forceCoeffs_object/0/forceCoeffs.dat),其内容如下图所示。

可以使用gnuplot查看阻力系数变化曲线:

得到的阻力系数随迭代过程的变化曲线如下图所示:

类似方式可以查看升力系数:

图形显示如图所示。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201102A018WR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券