|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
大家好,我是做非定常计算,想监测每一步某些测点上的压力,因为这些测点是移动的,所以每一步的坐标是变化的。我原来的思路是看那个移动测点在那个边界上(如wall1上),然后在这个边界上循环找到与我要监测点距离最近的那个face,然后把那个face的压力输出。但这个程序有个问题就是每一步都要去循环这个边界上所有的face,耗费的时间较多,影响计算速度。
??想问大家有没有这样的命令,就是我知道这个点的坐标,然后就可以直接判断这个点在哪个cell里面,这样,在那个cell循环就可以了,或者直接输出这个cell质心点的压力都可以?非常谢谢。下面是我的现在程序部分,有些常用的定义就没写出来了,希望各位指点。
DEFINE_EXECUTE_AT_END(output_pre)
{
real che_point1[3]={174.292,1.169,1.552};/*监控点的初始坐标*/
curr_time=CURRENT_TIME;
che_point1[0]=che_point1[0]+v1*curr_time;/*点沿x方向以V1速度运行*/
t=Lookup_Thread(d,kc2); /*监测点属于边界kc2,所以在kc2上循环*/
tolerance=3;
begin_f_loop(f,t)
{F_CENTROID(FC,f,t);
dis=sqrt((FC[0]-che_point1[0])*(FC[0]-che_point1[0])+(FC[1]-che_point1[1])*(FC[1]-che_point1[1])+(FC[2]-che_point1[2])*(FC[2]-che_point1[2]));
if(dis<tolerance)
{
tolerance=dis;
che_FP[1]=F_P(f,t);
}
}
end_f_loop(f,t) |
|