利用CFD软件解决动网格问题,通常可分为以下两类:
(1)主动型动网格
主动型动网格问题通常指的是边界运动规律及运动状态已知,通常可由软件使用者通过函数或程序进行描述。在程序计算过程中,求解器调用边界运动轨迹描述程序实现边界运动。这类动网格例子很多,如各类泵、风扇等。
(2)被动型动网格
还有一类动网格问题,其边界运动规律往往是未知的,常常需要通过计算边界上的力或力矩,以此来求取边界的运动。在这类动网格计算设置中,网格变化规律难以预料,导致网格参数经常需要进行多次调整才能达到目的。这类例子在现实中其实也很多,比如风力发电机的叶轮、水轮机等。
解决主动型动网格问题比较容易,利用CFD软件提供的动网格模拟能力很容易解决。需要关注的地方是边界运动后,网格节点如何重新布置和生成。如在FLUENT软件中,其动网格主要包括三种网格功能:弹簧光顺、动态层及网格重构。利用网格重构功能几乎可以解决所有主动型动网格问题。
那被动型动网格问题怎么处理呢?一般来说,这类边界的运动都是由于内部流体对其压力所造成的,那么就涉及到力和力矩计算的问题。对于这类问题,在FLUENT软件中可以采用6DOF模型进行计算。
需要注意的是,以上所有类型动网格计算均建立在边界为刚性的情况下。即不会计算由于流动产生的力的作用导致的边界变形。若要计算边界变形,则需要采用流固耦合方法,利用固体求解器计算。被动型动网格中的力和力矩均是压力对面的积分计算而来。
1、6DOF UDF宏
在FLUENT中利用6DOF是需要定义UDF宏的。该宏的定义形式如下:
DEFINE_SDOF_PROPERTIES(name, properties, dt ,time ,dtime)
函数中:
Name:宏名称
Real *properties:存储6DOF属性的数组
Dynamic_Thread *dt:存储制定的动网格属性
Real time:当前时间
Real dtime:时间步长
该UDF宏没有返回值。用户需要定义的变变量为name、properties、dt、dtime。
在利用该UDF宏的过程中,需要注意的是properties数组,其包含多种属性:
SDOF_MASS //质量,定义方式如properties[SDOF_MASS]=7.0定义质量7kg
SDOF_IXX,SDOF_IYY,SOF_IZZ,//X、Y、Z方向惯性矩
SDOF_IXY,SDOF_IXZ,SDOF_IYZ,//惯性积
SDOF_LOAD_LOCAL,//布尔值,FALSE为全局坐标系,TRUE为体坐标系(局部坐标系),默认为FALSE
SDOF_LOAD_F_X,SDOF_LOAD_F_Y,SDOF_LOAD_F_Z,//X,Y,Z方向外力
SDOF_LOAD_M_X,SDOF_LOAD_M_Y,SDOF_LOAD_M_Z,//分别为X,Y,Z方向外力矩
SDOF_ZERO_TRANS_X,SDOF_ZERO_TRANS_Y,SDOF_ZERO_TRANS_Z,//布尔值,TRUE表示该方向位移为0,默认为FALSE
SDOF_ZERO_ROT_X,SDOF_ZERO_ROT_Y,SDOF_ZERO_ROT_Z,//布尔值,TRUE表示该方向旋转自由度为0,默认值为FALSE
SDOF_SYMMETRY_X,SDOF_SYMMETRY_Y,SDOF_SYMMETRY_Z,//指定半模型的对称轴法向向量。在半模型运动时使用。
上面的变换变量可以应付绝大多数问题,然而在FLUENT中,用户还可以自定义变换变量,这也是通过6DOF属性变量实现,这些变量包括:
SDOF_CUSTOM_TRANS,//布尔值,TRUE表示使用自定义变换变量,FALUSE表示不使用
SDOF_CTRANS_11,SDOF_CTRANS_12,SDOF_CTRANS_13,SDOF_CTRANS_21,SDOF_CTRANS_22,SDOF_CTRANS_23,SDOF_CTRANS_31,SDOF_CTRANS_32,SDOF_CTRANS_33,//坐标旋转变量
SDOF_DTRANS_11,SDOF_DTRANS_12,SDOF_DTRANS_13,SDOF_DTRANS_21,SDOF_DTRANS_22,SDOF_DTRANS_23,SDOF_DTRANS_31,SDOF_DTRANS_32,SDOF_DTRANS_33,//衍生旋转矩阵
这些旋转矩阵在实际使用中应用较少。
下面是一个简单的SDOF实例:
#include “udf.h”
DEFINE_SDOF_PROPERTIES(stage,prop,time,dtime)
{
prop[SDOF_MASS] = 800.0;
prop[SDOF_IXX] = 200;
Prop[SDOF_IYY] = 100;
Prop[SDOF_IZZ] = 100;
}
上面的UDF定义了一个名为stage的SDOF宏,且质量800kg,X方向转动惯量为200,Y方向转动惯量100,Z方向转动惯量100
2、刚体参数的获取
应用6DOF无可避免的会碰到刚体属性值的获取问题。对于简单的几何体,应用力学公式可以很方便的计算出诸如质量、转动惯量等。但是对于复杂的几何模型,要想通过数学公式计算出这些物理量几乎是不可能的。
其实,几乎所有的CAD建模软件中均具有这些物理量的计算能力,不过要注意区分计算的是全局坐标系还是局部坐标系。