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

OpenFOAM|09 深入Case结构

本文详细描述OpenFOAM的案例目录。

以cavity案例为例,该案例文件目录结构如下图所示。

1 constant文件夹

constant文件夹中包含一个名为polyMesh的子文件夹与一个名为的文件。

1.1 transportProperties文件

transportProperties文件中指定了流体属性,其文件内容如下所示。

在所有的OpenFOAM输入文件中,可以使用注释某一行,也可以使用注释多行。

方括号中的数值用来表示物理量的单位,OpenFOAM要求为所有的物理量定义单位。方括号中一共有7个值,其含义如下表所示。

即方括号中的单位表示为[ 1 (kg), 2 (m), 3 (s), 4 (K), 5 (mol), 6 (A), 7 (cd)] ,因此transportProperties文件中定义的物理量的单位为,即:

本案例计算的是不可压缩流动,因此仅需要定义运动粘度即可。运动粘度与动力粘度的关系为:

运动粘度的值可以在此文件中进行修改。

根据所涉及的物理和使用的模型,可能需要在字典文件transportProperties中定义更多的物理量,例如,对于多相流模型,需要定义每一相的密度Rho及运动粘度nu,有时还需要定义表面张力。

此外,根据所选用的物理模型,将在常量目录中找到更多字典。例如,如果需要设置重力,则需要创建字典g;如果使用可压缩流动,则需要在字典thermPhysicalProperties中定义动力粘度µ和许多其他物理属性。

1.2 polyMesh文件夹

初始情况下polyMesh是个空文件夹,当生成网格后,文件夹中将会包含有OpenFOAM格式的网格数据。在OpenFOAM中,可以使用网格生成工具生成网格,不过在应用之前,需要在文件夹中准备字典文件。

下面简要介绍block MeshDict字典的几个重要输入。需要注意的是在实际应用过程中很少使用该工具为复杂几何体生成网格。利用文本编辑器打开字典文件,其中内容如下所示。

定义的计算区域以及几何点如下图所示。

字典文件创建完毕后,可以使用在案例文件路径下使用命令生成计算网格。利用查看计算网格,如下图所示。

网格生成完毕后,文件夹中多出了几个文件,其中存放了网格数据。

polyMesh文件夹中包含5个子文件:

points:此文件中包含了所有网格节点的坐标值

faces:此网格中保存了网格面的数据信息

owner:包含一系列的 owner 标识,这里面的信息和面相关。第一行的信息表示面 0 的owner 序号,第二行信息标示面 1 的 owner 序号,以此类推;

neighbor:一系列的 neighbor 标识,参考上述 owner 的描述;

boundary:包含一系列的 patch(不同的 patch 具有不同的名字) ,每个边界面具有相应的字典信息。

这里比较重要的是文件,下面是boundary文件的内容:

边界信息如下图所示。

网格边界的名称与类型在进行计算之前需要检查,确保与0文件夹中所设置的边界条件保持一致。

这些边界类型包括基础边界类型与数值边界类型两种。基础类型中的约束类型如下表所示。

基础类型中的类型如下表所示。

壁面边界类型如下表所示。

boundary文件中的边界名称必须与0文件夹中的边界条件名称保持一致,否则OpenFOAM会给出警告信息。

2 system文件夹

文件夹中主要包含了三个文件:controlDict、fvSchemes、fvSolution。

ControlDict:包含有关案例运行的一般设置

fvSchemes:包含将用于控制方程中不同项的离散化格式的设置

fvSolution:包含有关如何求解每个离散化线性方程组的设置

2.1 controlDict文件

controlDict文件的内容如下所示。大多数参数的意义都可以通过字段名猜测得到。

那么如何知道每个关键字都有哪些选项可用呢?

最难的方法是参考源代码

最简单的方法是使用banana法

那banana法是什么呢?此方法包括插入一个虚词(安装中不存在),并让OpenFOAM自动列出可用选项。

例如将文件中的改成

计算中将得到下面的错误提示输出:

所以备选选项是nextWrite、Writenow、noWriteNow、endtime。

2.2 fvSchemes文件

fvSchemes文件用于指定控制方程各项所采用的离散算法。

在本例中,我们使用后向差分离散格式(DdtSchemes)。对于梯度离散化(GradSchemes),使用高斯线性方法。对于对流项(DivSchemes)中的项div(φ,U)与项div((nuEff*dev2(T(grad(U))))) 使用线性插值。对于拉普拉斯(LaplacianSchemes和snGradSchemes)的离散化使用高斯线性方法,并进行有限的1次修正(以处理网格的非正交性和非均匀性)。

本案例的fvSchemes文件内容如下所示。

2.3 fvSolution文件

FvSolution字典文件中包含了对离散化的线性方程组进行求解的算法设置。方程求解器、计算残差以及计算算法都需要在字典文件中进行指定。在字典文件fvSolution(取决于您使用的求解器)中,可以找到找到其他子字典Piso、Pimple、Simple和RelacationFactors。对于controlDict和fvSchemes字典,参数可以动态更改。此外,如果想知道有哪些选项可用,只需使用banana方法即可。

在本案例中,为了求解压力(P),我们使用PCG方法,预处理器采用DIC方法,绝对容差设置为1e-06,相对容差relTol等于0。关键字指的是最终压力校正,并且使用的相对公差relTol等于0。本例中对p和pFinal使用相同的公差。但是可以使用不一样的计算容差,在这种情况下,通常在pFinal中使用更严格的容差。

本案例的fvSolution文件内容如下所示。

为了求解U,这里使用方法,使用更平滑的,绝对容差设置为1e-05,相对容差relTol设置为0。求解器将进行迭代计算,直到达到用户设置的任何容差值或达到迭代次数的最大值(可选输入)。

PISO子词典包含与压力-速度耦合方法(PISO方法)相关的参数。在本案例中进行2次PISO校正,不进行正交校正。

3 0文件夹

0文件夹存储初始条件与边界条件。本案例的0文件夹中包含两个文件:p文件与U文件,分别设置压力边界与速度边界。

3.1 U文件

U文件的内容如下图所示。

3.2 p文件

p文件指定边界压力分布。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券