问题描述
拟用Fluent模拟圆柱振子在不同流速的风作用下的横向振动。采用二维模型,用UDF和动网格实现流固耦合。
一开始用的是SDOF宏,即只给圆柱一个垂直流速的平动自由度,再给圆柱加上弹簧回复力项和阻尼项,但是不知道是什么原因,位移一直算不准,而尝试自由落体运动又是能算准的,可能是Fluent软件自带的计算位移的方法不适合计算这种振动问题吧。于是编写了这个UDF载入Fluent,通过调节γ和β基本能得到结果。
代码
// cylinder.c
#include "udf.h"
static real x_prev=0;
static real x_cur=0;
static real v_prev=0;
static real v_cur=0;
static real a_prev=0;
static real a_cur=0;
DEFINE_CG_MOTION(cylinder,dt,vel,omega,time,dtime)
{
real f_glob[ND_ND],m_glob[ND_ND],x_cg[ND_ND];
real lift, m, c, k;
NV_S(vel, =, 0.0);