|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
小弟想用udf的形式给MHD模块中外部磁场赋值,赋值的效果想跟自带的MHD模块一样,结果计算的时候发现,外部磁场赋值成功了,计算的时候却发散了
我计算的问题是磁流体泵;变化的磁场驱动流体运动。
我的udf:
#include "udf.h"
DEFINE_INIT(my_init_BO_y,domain)
{
cell_t c;
Thread *t;
real xc[ND_ND];
real temp1,temp2;
temp1=0.02;
temp2=0.2;
/* loop over all cell threads in the domain */
thread_loop_c(t,domain)
{
/* loop over all cells */
begin_c_loop_all(c,t)
{
C_CENTROID(xc,c,t);
if(xc[2]<1.0) C_UDMI(c,t,2)=cos(2*3.1415*60.0/360.0);
else if(xc[2]<2.0) C_UDMI(c,t,2)=cos(2*3.1415*120.0/360.0);
else if(xc[2]<3.0) C_UDMI(c,t,2)=cos(2*3.1415*180.0/360.0);
else if(xc[2]<4.0) C_UDMI(c,t,2)=cos(2*3.1415*240.0/360.0);
else if(xc[2]<5.0) C_UDMI(c,t,2)=cos(2*3.1415*300.0/360.0);
else C_UDMI(c,t,2)=cos(2*3.1415*360.0/360.0);
C_UDMI(c,t,4)=sqrt(C_UDMI(c,t,2)*C_UDMI(c,t,2));
}
end_c_loop_all(c,t)
}
}
DEFINE_ADJUST(adjust_b0_y,d)
{
cell_t c;
Thread *t;
real xc[ND_ND];
real current_time;
current_time=RP_Get_Real("flow-time");
/* current_time=CURRENT_TIME;*/
thread_loop_c(t,d)
{
begin_c_loop_all(c,t)
{
C_CENTROID(xc,c,t);
if(xc[2]<1.0) C_UDMI(c,t,2)=cos(2*3.1415*60.0/360.0+2.0*3.1415*current_time);
else if(xc[2]<2.0) C_UDMI(c,t,2)=cos(2*3.1415*120.0/360.0+2.0*3.1415*current_time);
else if(xc[2]<3.0) C_UDMI(c,t,2)=cos(2*3.1415*180.0/360.0+2.0*3.1415*current_time);
else if(xc[2]<4.0) C_UDMI(c,t,2)=cos(2*3.1415*240.0/360.0+2.0*3.1415*current_time);
else if(xc[2]<5.0) C_UDMI(c,t,2)=cos(2*3.1415*300.0/360.0+2.0*3.1415*current_time);
else C_UDMI(c,t,2)=cos(2*3.1415*360.0/360.0+2.0*3.1415*current_time);
C_UDMI(c,t,4)=sqrt(C_UDMI(c,t,2)*C_UDMI(c,t,2));
}
end_c_loop_all(c,t)
}
}
现在主要的问题是:计算几步后就会发散,发现感应磁场不正确,外部磁场是我想要的,
[ 本帖最后由 liuwei870313 于 2012-7-8 10:02 编辑 ] |
-
-
|