造波(推板造波,函数造波)【转载】

转载自:http://www.jishulink.com/content/post/274472

造波(推板造波,函数造波)【转载】

造波(推板造波,函数造波)【转载】

1、推板造波

入口处采用动网格模拟推板造波过程,采用DEFINE_CG_MOTION实现造波过程,消波段采用动量源项或者多孔介质的形式实现消波模拟。具体udf如下;

#include

#include"udf.h"

#define T 5.8

#define S 1.04

#define PI 3.1415926

DEFINE_CG_MOTION(ban_moving, dt, cg_vel, cg_omega, time, dtime)

{

real u = 0;

real ww = 0;

ww = 2*PI/T;

if(time <= 2*T)

u = ww*S*time*cos(ww*time)/(4*T);

else

u = ww*S*cos(ww*time)/2;

cg_vel[0] = u;

}

原始文献下载:https://yunpan.cn/cRzMyW2n8vDcb 访问密码 e094

2、函数造波法,在入口处根据波函数得到波不同方向的流速,同时考虑波高函数,在波高函数以下位置为液相,波高函数以上位置为气相。通过修改波函数的水平速度可以实现,浪浪-水流、波浪-风载,波浪-水流-风载的耦合运动情况:

具体udf如下:

波运动函数:

include "udf.h"

#include

 

#define L 23

#define D 5

#define H 1

#define T 4

#define PI 3.141592653

#define con 8

 

DEFINE_PROFILE(x_velocity, thread, index)

{

real k,w;

real x[ND_ND];

face_t f;

real f1,f2,ff1,ff2;

real t,u;

 

k = 2*PI/L;

w = 2*PI/T;

 

f1 = PI*H/T/sinh(k*D);

f2 = 0.75*PI*H/T*PI*H/L/sinh(k*D)/sinh(k*D)/sinh(k*D)/sinh(k*D);

 

ff1 = H/2;

ff2 = PI*H*H*cosh(k*D)*(cosh(2*k*D)+2)/8/L/sinh(k*D)/sinh(k*D)/sinh(k*D);

 

t = CURRENT_TIME;

u = 0;

 

begin_f_loop(f,thread)

{

F_CENTROID(x,f,thread);

if(x[1]<(ff1*cos(-1*w*t)+ff2*cos(-2*w*t)))

u =f1*cosh(k*(x[1]+D))*cos(-1*w*t)+f2*cosh(2*k*(x[1]+D))*cos(-2*w*t);

else

u = 0;

F_PROFILE(f,thread,index) = u;

}

end_f_loop(f,thread)

}

 

DEFINE_PROFILE(y_velocity, thread, index)

{

real k,w;

real x[ND_ND];

face_t f;

real f1,f2,ff1,ff2;

real t,v;

 

k = 2*PI/L;

w = 2*PI/T;

 

f1 = PI*H/T/sinh(k*D);

f2 = 0.75*PI*H/T*PI*H/L/sinh(k*D)/sinh(k*D)/sinh(k*D)/sinh(k*D);

 

ff1 = H/2;

ff2 = PI*H*H*cosh(k*D)*(cosh(2*k*D)+2)/8/L/sinh(k*D)/sinh(k*D)/sinh(k*D);

 

t = CURRENT_TIME;

v = 0;

 

begin_f_loop(f,thread)

{

F_CENTROID(x,f,thread);

if(x[1]<(ff1*cos(-1*w*t)+ff2*sin(-2*w*t)))

v =f1*sinh(k*(x[1]+D))*sin(-1*w*t)+f2*sinh(2*k*(x[1]+D))*cos(-2*w*t);

else

v = 0;

F_PROFILE(f,thread,index) = v;

}

end_f_loop(f,thread)

}

 

DEFINE_PROFILE(voffactor, thread, index)

{

real k,w;

real x[ND_ND];

face_t f;

real f1,f2,ff1,ff2;

real t;

 

k = 2*PI/L;

w = 2*PI/T;

 

f1 = PI*H/T/sinh(k*D);

f2 = 0.75*PI*H/T*PI*H/L/sinh(k*D)/sinh(k*D)/sinh(k*D)/sinh(k*D);

 

ff1 = H/2;

ff2 = PI*H*H*cosh(k*D)*(cosh(2*k*D)+2)/8/L/sinh(k*D)/sinh(k*D)/sinh(k*D);

 

t = CURRENT_TIME;

 

begin_f_loop(f,thread)

{

F_CENTROID(x,f,thread);

if(x[1]<(ff1*cos(-1*w*t)+ff2*cos(-2*w*t)))

F_PROFILE(f,thread,index)=1;

else

F_PROFILE(f,thread,index)=0;

}

end_f_loop(f,thread)

}

原始文献下载:https://yunpan.cn/cRzMcu6wM9gGQ 访问密码 57de

posted @ 2016-06-25 13:34  硫酸亚铜  阅读(1483)  评论(0编辑  收藏  举报