|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
icoFoam为OpenFOAM中单相不可压缩流求解器,运用PISO算法求解压力-速度耦合.顶盖驱动流动为不可压流动经典算例,通常用来验证编写程序的正确性和有效性.
求解器icoFoam位置: /applications/solvers/incompressible/icoFoam
顶盖驱动流算例位置: /tutorials/icoFoam/cavity
顶盖驱动流算例下文件夹结构
|--0- //初始条件和边界条件
| |--p //压力
| |--U //速度
|
|-constant- //参数和网格
| |-transportProperties //物理参数设定文件
| |-polyMesh //网格文件夹
| |-blockMeshDict //blockMesh网格生成文件
| |-boundary //边界文件,运用blockMesh可生成该文件,可删除
|-system-
|-controlDict //程序运行控制文件
|-fvSchemes //离散格式设定文件
|-fvSolution //代数方程求解器设定文件
上面文件p,controlDict, fvSchemes, fvSolution已经在本站博文"使用OpenFOAM的基本流程"中详述
下面对其他文件进行说明
文件U
//文件头
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//单位,关于物理单位配置,在本站博文"OpenFOAM>>solver>>basic>>potentialFoam的说明"
dimensions [0 1 -1 0 0 0 0];
//初始条件,全场速度为0
internalField uniform (0 0 0);
//边界条件
boundaryField
{
movingWall //顶盖速度
{
type fixedValue; //恒定速度
value uniform (1 0 0); //速度大小Ux=1 m/s
}
fixedWalls //其他3面为墙,速度无滑移
{
type fixedValue;
value uniform (0 0 0);
}
frontAndBack //前面和后面为empty,因为是二维的
{
type empty;
}
}
文件transportProperties
//文件头
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//流体黏性系数,关于如何设置并使用参数,参看本站博文"OpenFOAM中的参数字典使用剖析"
nu nu [0 2 -1 0 0 0 0] 0.01;
文件blockMeshDict
//文件头
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 0.1; //单位转换,也就是说下面所有点都要乘以0.1才是真值
vertices //网格中的点,点的位置没有顺序要求,点的序号从0开始
(
(0 0 0)
(1 0 0)
(1 1 0)
(0 1 0)
(0 0 0.1)
(1 0 0.1)
(1 1 0.1)
(0 1 0.1)
);
blocks //块结构化网格中的一个块
(
hex (0 1 2 3 4 5 6 7) //块中的8个边界点,方的是前面定义点的序号
(20 20 1) //x y z 3个方向的网格的个数
simpleGrading (1 1 1) //网格均匀划分
);
//块的8个点的顺序
(1)每个块都有一个局部坐标,坐标的原点为hex中的第0个点,也是点序列的第0个点
(2)hex中的第0个点和第1个点构成X方向
(3)hex中的第1个点和第2个点构成Y方向
(4)hex中的第0 1 2 3个点构成平面Z=0
(5)hex中第0个点和第4个点构成方向Z
(6)第5 6 7个点的寻找方法和点1 2 3相同.
应当注意,上面的那个例子中hex中点的序号和点在vertices的序号恰好一致.
//边的定义,对于曲线边才会定义,直边不定义,本例子中所有边是直边
edges
(
);
patches //边界
(
wall movingWall //上面墙
(
(3 7 6 2)
)
wall fixedWalls //其他三面墙
(
(0 4 7 3)
(2 6 5 1)
(1 5 4 0)
)
empty frontAndBack //前面和后面两个面
(
(0 3 2 1)
(4 5 6 7)
)
);
//上面边界中点有一定顺序,满足右手定则,是边界面的法向量指向外,也就是从外面向里看,逆时针方向.
mergePatchPairs //需要和在一起的patch对
(
);
文件boundary中的内容不用管他,运用blockMesh会将其覆盖.
程序运行命令
运用控制台进入/tutorials/icoFoam/cavity
输入: blockMesh 生成网格
输入: icoFoam 运行程序
程序运行结束后,输入paraFoam做后处理.
转自OpenFOAM研究:http://blog.sina.com.cn/openfoamresearch
[ 本帖最后由 su_junwei 于 2009-5-2 18:25 编辑 ] |
|