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

OpenFOAM|08 第一个case

本文简单描述OpenFOAM计算案例的运行过程。

OpenFOAM中包含了众多的预制求解器,不同的求解器所需的字典输入文件可能存在较大差异,想要记住每个求解器所需的字典文件是非常困难的,所以一般情况下设置案例时,通常是在OpenFOAM案例库中找一个与自己问题足够接近的案例,然后根据自己的物理情况对案例进行修改。

OpenFOAM内置案例存放在路径中。OpenFOAM没有GUI图形界面,所有的操作都是通过终端命令来完成,所以在使用OpenFOAM之前,最好复习一下Linux系统的基本命令操作。

本文从一个方腔顶盖流计算入手,详细介绍OpenFOAM案例文件的设置。

1 问题描述

要计算的物理问题如下图所示。

控制方程为不可压缩层流NS方程

计算区域为二维,但是也可以扩展为三维

为了求得数值解,需要对计算区域进行离散,设置边界条件与初始条件,定义流体属性,设置数值格式与求解器参数

在处理不可压缩流动时,采用相对压力进行计算

已预制好所有的字典文件

本案例采用求解器进行计算,这是一个瞬态不可压缩层流求解器,一般情况下不建议在工程应用中使用此求解器,因为icoFoam的建模功能很弱,工程问题可以采用pisoFoam或pimpleFoam求解器,它们的模拟能力要比icoFoam强很多。

2 计算过程

所有的操作工作都在Linux终端中完成(Windows系统中可以使用WSL)。

从文件夹中复制文件到用户工作目录

注意第二条命令最后面的,表示将文件拷贝到当前文件夹中。表示连文件夹中的子文件一起拷贝。

生成计算网格

网格生成以及后面的计算都必须在案例文件夹内部进行,因此先利用命令进入到案例文件夹中;为OpenFOAM内置的分块网格生成器;程序主要用于统计网格信息并检查网格质量。

进行计算

直接运行进行计算。

查看计算结果

采用命令会启动paraview并读取结果数据,之后可以进行后处理计算。这里也可以利用命令创建一个空文件,然后手工启动paraview读取此文件进行后处理。

最终时刻速度分布如图所示。

3 保存计算信息

3.1 保存计算过程信息

前面的计算过程中,求解器输出到终端的信息并不会被保存。当需要对计算过程进行调试时,这些信息非常重要,因此很有必要将其保存到文件中。

可以利用Linux中的命令将这些信息保存到文本文件中。如在cavity文件夹下面的操作命令:

命令中的命令用于清除除了0、constant及system文件夹之外的所有文件;所有的log文件名都可以任意取。

执行完毕后查看工作目录,如下图所示,可以看到日志文件已经保留到路径中了。

这些日志文件都是文本文件,可以使用任何文本编辑器打开。

若想要绘制数据图形,可以利用命令:

该命令会将log.icoFoam文件中的数据进行分解。

之后可以利用进行图形绘制。

在终端输入可进入gnuplot设置绘图环境(注意要先安装gnuplot)。终端显示如下图所示。

此时可以输出压力残差,如下图所示。

类似的命令还可以输入:

关于gnuplot的使用,可以参阅该软件的官方文档。

3.2 查看计算残差

若想要在计算过程中查看残差信息,可以采用两种方案:

方法1:利用OpenFOAM提供的工具,配合字典文件一起使用

方法2:利用进行残差显示

对于,可以利用以下命令添加residuals字典:

打开文件,添加语句:

然后运行案例:

图形显示结果如下图所示。

若要使用进行残差显示,需要首先安装pyFoam,这可以使用pip或pip3进行安装。

安装完毕后,可以使用或进行残差查看。

输出图形如下图所示。

注:

不建议使用pyFoam,虽然很多时候比较方便,但pyFoam很多时候动不动罢工。

3.3 终止计算

计算终止条件在文件中进行指定。

在该文件中包含关键字,其规定了计算结束时间。如上示例中指定了结束时间为50 s。

若想要停止仿真计算并且保存计算结果,可以在字典文件中修改:

此时会终止计算并保存当前时刻数据。

若想要动态修改计算停止条件,需要在字典文件中增加关键字为,如:

也可以在OpenFOAM计算过程中采用键盘组合键强行终止,但是采用此方式终止进程的话,OpenFOAM不会保存最终时间步或迭代步得到的数据。

3.4 清理文件

如果想要清除案例文件夹中的网格与计算结果文件,可以通过命令来实现。若是并行计算的文件夹,此命令也会清除所有的processorN目录。

若只想清除网格文件,可以在终端输入命令。

若只想清除保存的结果文件,可以在终端输入:

若想要删除并行计算的结果文件,可以在终端输入:

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券