本文描述OpenFOAM中的文件组织结构。
典型的文件组织结构如下图所示。
case文件夹中包含三个子目录:
0文件夹中包含有求解器计算所需的边界条件与初始条件。如上图中0文件中包含文件U
与文件p
,其中分别存储边界上的速度与压力值。0
文件夹表示存储的是0时刻的数据,若为瞬态计算,在计算过程中还会生成以时间为名称的新的文件夹。
如示例中的p文件内容:
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
movingWall
{
type zeroGradient;
}
fixedWalls
{
type zeroGradient;
}
frontAndBack
{
type empty;
}
}
文件中指定了各边界(movingWall、fixedWalls以及frontAndBack)上的压力值,如上的示例中,利用关键字internalField uniform 0
指定了全局压力为0,并指定movingWall边界与fixedWalls边界的压力为zeroGradient
。
在p文件中,通过dimensions
关键字指定了压力的量纲,需要注意这里的量纲是单位质量的压力,其单位为帕斯卡与密度单位的商,即m2/s2
。
在文件头中指定了文件版本、格式类型、物理量类型以及对象。
FoamFile
{
version 2.0; //指定版本为2.0
format ascii; //指定文件存储格式为ascii
class volScalarField; //指定物理量类型为标量场
object p; //指定对象为压力p
}
对于U文件,则指定了各边界对应的速度信息。如下面的U文件:
FoamFile
{
version 2.0;
format ascii;
class volVectorField;//指定物理场为矢量场
object U;
}
// * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0]; //指定物理量单位为m/s
internalField uniform (0 0 0); //指定计算区域内部速度为0
boundaryField
{
movingWall
{
type fixedValue;
value uniform (1 0 0);
}
fixedWalls
{
type noSlip;
}
frontAndBack
{
type empty;
}
}
constant文件夹通常用于指定网格参数、物性参数等。
如前面的示例中,网格数据存储在子文件夹polyMesh
中,该文件夹下包含的文件(boundary、faces、neighbour、owner、points)存储了网格细节。
物性参数存储在文件transportroperties
中,如下面的示例中指定了运动粘度为0.01 m2/s。
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * //
nu [0 2 -1 0 0 0 0] 0.01;
需要注意的是,当选用的求解器不同时,constant文件夹中可能需要补充额外的文件,如选择了湍流模型,则可能需要在constant文件夹中添加湍流参数文件。
system文件夹中包含了所有计算过程中需要进行设置与控制的参数。如前面的示例中,system文件夹中包含了4个文件:
blockMesh
所需的网格控制参数