|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
各位晚上好,我想请教一个关于在fluent loop中再嵌套循环的问题。
我现在在define_adjust中遍历每个cell,要的结果是流场其他所有cell的电流在这个cell上产生的磁场的和,所以在循环中的每个cell上再去遍历其他cell,我尝试了在c_loop中再嵌套loop的方法,但是fluent报错说是非法访问,请问有什么办法解决吗?
附上我的程序。
后来程序改到DEFINE_EXECUTE_AT_END中,依然存在这个问题,请各位帮帮忙啊。
DEFINE_EXECUTE_AT_END(Bz_adjust)
{
cell_t c,c1;
Thread *t,*t1;
real x1[ND_ND],x2[ND_ND];
float z1,z2,r1,r2,r3;
double Bzself;
int i;
Domain *d0,*d1;
d0=Get_Domain(2);
thread_loop_c(t,d0)
{
begin_c_loop(c,t)
{
C_UDSI(c,t,3)=0; /*存储外部磁场轴向分量*/
C_CENTROID(x1,c,t);
z1=fabs(x1[0]);
r1=fabs(x1[1]);
Bzself=0;
d1=Get_Domain(2);
thread_loop_c(t1,d1)
{
begin_c_loop(c1,t1)
{
C_CENTROID(x2,c1,t1);
z2=fabs(x2[0]);
r2=fabs(x2[1]);
for(i=0;i<628;i++)
{
r3=sqrt(fabs(pow(r1,2.0)+pow(r2,2.0)+pow(z2-z1,2.0)-2*r1*r2*cos(i*0.01)));
if(r3!=0)
{
Bzself+=(u0)*C_UDMI(c1,t1,2)*C_VOLUME(c1,t1)*0.01*(r2-r1*cos(i*0.01))/(4*3.14*pow(r3,1.5));
}
}
}
end_c_loop(c1,t1)
}
C_UDSI(c,t,3)=Bzself; /*存储电流自生磁场环向分量*/
}
end_c_loop(c,t)
}
}
错误类型
Error:
FLUENT received fatal signal (ACCESS_VIOLATION)
1. Note exact events leading to error.
2. Save case/data under new name.
3. Exit program and restart to continue.
4. Report error to your distributor.
Error Object: () |
|