转载自:http://blog.sina.com.cn/s/blog_e256415d0101nfhp.html
Chalmers大学的Andreu Oliver González对OpenFOAM中的动网格技术给出了比较全面的介绍。
http://www.tfd.chalmers.se/~hani/kurser/OS_CFD_2009/AndreuOliverGonzalez/ProjectReport_FINAL.pdf
这里对其中的部分内容进行了翻译,如下:
OpenFOAM中的动网格方法分为两种:
dynamicFvMesh,拓扑不改变
staticFvMesh,网格无运动
dynamicMotionSolverFvMesh,根据边界条件与扩散方程计算内部网格的运动。是最简单的网格运动求解器。求解网格运动方程,并通过扩散性diffusivity控制网格的距离与质量。
dynamicInkJetFvMesh, 与上一个类似,但是网格点运动是显式定义
dynamicRefineFvMesh, 与staticFvMesh类似,但是通过增加或减少网格点自动加密或粗糙化网格
solidBodyMotionFvMesh, 使用运动函数定义固体对象的运动
2.topoChangeFvMesh,拓扑改变,即网格的尺寸或者连通性改变。
linearValveFvMesh, 在相对线性运动的两篇网格的交界处使用sliding网格。其中库文件linearValveFvMeshCoeffs用于选择适合的运动求解器
linearValveLayersFvMesh, 类似与上面的类,但在挤压和拉伸网格以外,增加了添加或删除层的功能。
mixerFvMesh, 存在一个运动的组件与一个固定的组件之间的滑移交界面时,使用该类。除了dynamicMeshDict文件外,文件MRFZones定义了运动组件。其中slidingInterface类给出了滑移界面两边的相对运动。
movingConeTopoFvMesh, 对网格挤压或拉伸,并且当网格层厚度达到临界值时,增加或移除一个层。除了dynamicMeshDict文件外,
constant/meshModifiers文件指定移动或固定边界的系数与特征,每个区域最大与最小的网格层厚度。
动网格求解器:用于求解网格运动方程
displacementLaplacian, 基于Laplacian扩散方程求解网格运动,需要在初始文件夹中增加一个文件, pointDisplacement,用于初始化网格的位移变量.
velocityLaplacian, 与前面的求解器类似,区别是求解的变量是网格的运动速度, pointMotionU。边界条件定义的是边界移动的速度,适用于最大位移较小的情形。
LaplaceFaceDecomposition,
适用于最大位移未知或较大的情形。通过有限元方法求解Laplace光滑方程,分解网格和面,重建网格。这种方法增加了稳健性,但是相对于上两种方法计算量较大。
SBRStress, 通过位移模型求解Laplacian扩散方程与网格的位移,即cellDisplacement,并且考虑固体的旋转。
扩散模型:用于求解网格运动方程后,决定网格如何移动
Quality based methods, 基于质量的方法,扩散域为网格质量测度函数。
uniform, 网格的操作对所有移动边界一致,即所有区域中的网格以同样的比例拉伸或压缩。
directional, 网格的拉伸与压缩与运动的方向一致。主要思想是通过滑移边界操作网格。定义了两个标量系数,一个定义了网格的非正交性,另一个定义了网格的偏移量。
motionDirectional, 通过对运动对象的优选操作网格,使得网格适应于运动对象。
inverseDistance, 用于定义一个或多个边界,扩散域定义为至定义的最近边界的距离的倒数,即逆距离。
linear, 扩散域线性依赖于逆距离
quadratic, 扩散域与逆距离为二次关系
exponential, 扩散域依赖于逆距离的指数