找回密码
 注册
查看: 845|回复: 6

[求助]请教高手,udf,谢谢!

[复制链接]
发表于 2005-9-19 14:03:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
在三维的情况下,出口边界条件中,我是想先得到单元的重心坐标,然后再在计算出口的压力,udf这样写的:
     #include "udf.h"
     DEFINE_PROFILE(unsteady_pressure, thread, position)
     {
      real x[ND_ND];
      real y;
      cell_t c;
      begin_c_loop(c, thread)
     {
      C_CENTROID(x,c,thread);
      y = x[1];
      C_P(c, thread, position) =24.01*1000-9.8*1000*y;
      }
      end_c_loop(c, thread)
      }
编译时没有出错,但是在对整个区域初始化时出错了,是不是我的写错了?请各位大虾给与指正,谢谢了!
发表于 2005-9-19 14:51:30 | 显示全部楼层

[求助]请教高手,udf,谢谢!

第一,出口边界应该是 面 吧,不是格子操作。
   
   
第二,第11行不对:注意C_P(c, thread, position)好像是不可以这样的,这个函数返回值,不能赋值。可以改为F_PROFILE(f,thread,index)=....这样应该ok了。
就是改成
#include "udf.h"
    DEFINE_PROFILE(unsteady_pressure, thread, position)
    {
     real x[ND_ND];
     real y;
     face_t c;
     begin_f_loop(c, thread)
    {
     C_CENTROID(x,c,thread);
     y = x[1];
     F_PROFILE(c, thread, position) =24.01*1000-9.8*1000*y;
     }
     end_f_loop(c, thread)
     }
请试试看!good luck!
发表于 2005-9-19 14:55:42 | 显示全部楼层

[求助]请教高手,udf,谢谢!

sorry!错了一行!汉!
#include "udf.h"
   DEFINE_PROFILE(unsteady_pressure, thread, position)
   {
    real x[ND_ND];
    real y;
    face_t c;
    begin_f_loop(c, thread)
   {
    F_CENTROID(x,c,thread);
    y = x[1];
    F_PROFILE(c, thread, position) =24.01*1000-9.8*1000*y;
    }
    end_f_loop(c, thread)
    }
 楼主| 发表于 2005-9-19 15:05:01 | 显示全部楼层

[求助]请教高手,udf,谢谢!

谢谢关注,不过还是有点错误,你看一下这是我计算二维时用的出口边界,
     #include "udf.h"
     DEFINE_PROFILE(unsteady_pressure, thread, position)
     {
      real x[ND_ND];
      real y;
      face_t f;
      begin_f_loop(f, thread)
     {
      F_CENTROID(x,f,thread);
      y = x[1];
      F_PROFILE(f, thread, position) =24.01*1000-9.8*1000*y;
      }
      end_f_loop(f, thread)
      }
是不是可以用在三维里?这样对不对啊?
发表于 2005-9-20 11:29:00 | 显示全部楼层

[求助]请教高手,udf,谢谢!

   
   应该可以用在3维的模型里面,维度ND_ND宏从系统传值过来,二维是2,三维是3。边界的类型都是 面 类型操作,而不管实际是线还是面。
good luck!
发表于 2005-9-20 11:41:32 | 显示全部楼层

[求助]请教高手,udf,谢谢!

对整个区域(不是边界)初始化时出错的问题:
如果你是要对某个流场区域(局部块或全部)进行初始化操作,第一,简单一点的条件可以在做做网格时候先定义一下,然后在计算的时候用pacth.第二,如果比较复杂,可以用custom fuction来pacth,如果还复杂一点,就编初始化udf吧。
 楼主| 发表于 2005-9-20 23:45:49 | 显示全部楼层

[求助]请教高手,udf,谢谢!

谢谢关注,正在调试中!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表