24小时热门版块排行榜    

查看: 538  |  回复: 0

leesz

新虫 (初入文坛)

[求助] 二维剖面强迫横摇问题

大家好,第一次在小木虫上发帖求助,金币有点少,但是真心求教,求大家帮帮忙。
我现在做的问题如下:
想要用FLUENT计算一个二维剖面在水中强迫横摇的问题。二维剖面做简谐运动,幅值频率分别是A和φ0。应用动网格中的滑移网格来解决这个问题。下面是我自己编写的UDF。
UDF code:

#include"udf.h"
#define freq 0.84 //频率
#define ampl 0.175 //幅值
#define density 998.2 //水密度
#define GRAVITY 9.81 //重力加速度
int id=14; //二维剖面的ID

DEFINE_CG_MOTION(int_block_roll, dt, vel, omega, time, dtime)
{
        omega[2] = 2*M_PI*freq*ampl*cos(2*M_PI*freq*time);
}

DEFINE_EXECUTE_AT_END(exe_end)
{
        real x_cg[3],m_glob[3],f_glob[3],sita,time,m_plus;
        real x[ND_ND],A[ND_ND];
        FILE *fp;
        Domain *domain=Get_Domain(1);
        face_t f;
        Thread *tf=Lookup_Thread(domain,id);
        time = CURRENT_TIME;
        x_cg[0] = 0.0;
        x_cg[1] = 0.0;
        m_plus=0.0;
        sita = ampl*sin(2*M_PI*freq*time);
        if(!Data_Valid_P())
                return;
        Compute_Force_And_Moment(domain,tf,x_cg,f_glob,m_glob,TRUE);
        begin_f_loop(f,tf)
{
        F_CENTROID(x,f,tf);
        F_AREA(A,f,tf);
        if(x[1]<0.0)
                m_plus+=density*GRAVITY*x[1]*fabs(x[1]*A[0]-x[0]*A[1]);
}
    end_f_loop(f,tf)
        m_glob[2]+=m_plus;

        #if !RP_NODE
        fp=fopen("roll.txt","a";
        fprintf(fp,"%f,%f,%f,%f,%f,%f
",time,sita,f_glob[0],f_glob[1],NV_MAG(f_glob),m_glob[2]);
        fclose(fp);
        #endif
}
模拟中我使用的二维剖面是根据Ikeda的试验来确定的。网格的划分使用ANSYS ICEM来画的结构网格。参考很多做同样问题的文献,最后是要监测二维剖面受到的力矩的大小。求大家帮忙看看哪里出了问题,谢谢!
万分感谢!@wuming524
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 leesz 的主题更新
信息提示
请填处理意见