liuyusis 发表于 2008-8-31 16:47

用udf定义压力边界条件

本人想用udf,定义两个压力边界条件,压力进口为:p=p0+p1*sin(wt),出口为p=p0+p1*sin(wt+a),p0为平均压力,p1为压力振幅,a为:两个压力波的相位差。我分别编了进出口的压力udf,录入时候后一个会把前一个覆盖,就是只能录入一个udf文件,希望高手给与指导。另外,以下两个为我的针对一个压力边界的udf,不清楚时间项的获得在循环外和循环内有什么区别,希望大虾指教。

#include "udf.h"

#definew 314
/*w is the angular velocity w=2*pi*f, f=50is frequency*/

DEFINE_PROFILE(Pressure_profile_in,t,i)
{
    face_t f;
    float time;   /* time is the iterative time*/
    float dp=132950; /*Dp is the amplitude of pressure */

      time=RP_Get_Real("flow-time");
/*        printf("the time is,%f\n",time);*/

        begin_f_loop(f,t)
    {
               
                double ss=w*time;
                F_PROFILE(f,t,i)=sin(ss+2.295)*dp;
/*                printf("the pressure is,%f\n",F_PROFILE(f,t,i));*/
          }
   end_f_loop(f,t)
}

另一个 的 time=RP_Get_Real("flow-time");在循环体内部。

#include "udf.h"

#definew 314
/*w is the angular velocity w=2*pi*f, f=50is frequency*/

DEFINE_PROFILE(Pressure_profile_in,t,i)
{
    face_t f;
    float time;   /* time is the iterative time*/
    float dp=132950; /*Dp is the amplitude of pressure */

      
/*        printf("the time is,%f\n",time);*/

        begin_f_loop(f,t)
    {
                time=RP_Get_Real("flow-time");
                double ss=w*time;
                F_PROFILE(f,t,i)=sin(ss+2.295)*dp;
/*                printf("the pressure is,%f\n",F_PROFILE(f,t,i));*/
          }
   end_f_loop(f,t)
}

两者有什莫区别?谢谢

appolm 发表于 2008-8-31 22:34

分别编udf?一个udf文件可以定义多个边界条件
这两个的区别是,第二个把time=。。。,读了n编,有点浪费
页: [1]
查看完整版本: 用udf定义压力边界条件