找回密码
 注册
查看: 3158|回复: 12

[求助]请高手帮帮忙!

[复制链接]
发表于 2005-8-4 01:08:45 | 显示全部楼层 |阅读模式

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

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

x
[这个贴子最后由stan在 2005/09/13 10:02pm 第 2 次编辑]

哪位高手可以帮我把下面这个函数编个udf:

谢谢!
发表于 2005-8-5 13:48:40 | 显示全部楼层

[求助]请高手帮帮忙!

以前的帖子上copy的
改一改就可以了
#include "udf.h"
DEFINE_PROFILE(unsteady_velocity, thread, position)
{
face_t f;
real t = CURRENT_TIME;
real t3,t2,t1 = 1.6 e-05;
real k,b=0.006;
  k=(4 * b) / t1;
begin_f_loop(f, thread)
   {
    t2 = t / t1;
    t3 = t - floor(t2) * t1;
    if  (t3<=t1/4)
     F_PROFILE(f, thread, position) =0.021+k*t3;
    else if  (t3>t1/4 && t3<=(3*t1)/4)
     F_PROFILE(f, thread, position) =0.021-k*t3+2*b;
   
    else
    F_PROFILE(f, thread, position) =0.021+k*t3-4*b;
   }
end_f_loop(f, thread)
}
 楼主| 发表于 2005-8-5 15:27:47 | 显示全部楼层

[求助]请高手帮帮忙!

谢谢!
但这个与我的函数差别还是很大的,我还是不会。
发表于 2005-8-7 14:03:26 | 显示全部楼层

[求助]请高手帮帮忙!

我来写写看,高手看对不对,刚学了点udf,呵呵,如果有错误还请多多指导啊!
&#35;include "udf.h"
&#35;include "math.h"
DEFINE_PROFILE(unsteady_velocity, thread, position)
{
face_t f;
real t = CURRENT_TIME;
begin_f_loop(f, thread)
  {
    if  (t>0&&t<0.24)
    F_PROFILE(f, thread, position) =240*exp(-7.557t)*sin(13.09t);
   else if  (t>0.24&&t<=0.2743)
    F_PROFILE(f, thread, position) =-(34.3)*exp(-7.557)*sin(13.09*(t-0.24))
  
   else
   F_PROFILE(f, thread, position) =0;
  }
end_f_loop(f, thread)
}
 楼主| 发表于 2005-8-8 12:19:50 | 显示全部楼层

[求助]请高手帮帮忙!

[这个贴子最后由stan在 2005/08/08 12:28pm 第 1 次编辑]
下面引用由zhubin2005/08/07 02:03pm 发表的内容:
我来写写看,高手看对不对,刚学了点udf,呵呵,如果有错误还请多多指导啊!
&#35;include "udf.h"
&#35;include "math.h"
DEFINE_PROFILE(unsteady_velocity, thread, position)
...
调试时出现
Error: D:\01\fluent\v.c: line 14: parse error.
Error: D:\01\fluent\v.c: line 20: parse error.
另外请问在哪里设置t<=0.8?
谢谢!
发表于 2005-12-2 10:54:11 | 显示全部楼层

[求助]请高手帮帮忙!

我表示怀疑,但是不一定怀疑的就对。DEFINE_PROFILEMIN
发表于 2005-12-2 11:03:47 | 显示全部楼层

[求助]请高手帮帮忙!

DEFINE_PROFILE命令要在迭代循环前就算好了,那我估计你的这个程序就会一直以第一种情况作为速度初值计算。在进入迭代后就不会去根据你的流体时间来判断你的速度初值的。
发表于 2005-12-2 11:11:57 | 显示全部楼层

[求助]请高手帮帮忙!

LBSALE[1]LBSALE[这个贴子最后由Mclaren在 2005/12/02 11:14am 第 1 次编辑]

我来试一下
&#35;include "udf.h"
DEFINE_PROFILE(unsteady_velocity, thread, position)
{
face_t f;
real t = RP_Get_Real("flow-time");
begin_f_loop(f, thread)
{
   if  (t>0&&t<0.24)
   F_PROFILE(f,thread,position) =240*exp(-7.557t)*sin(13.09t);
  else if  (t>0.24&&t<=0.2743)
   F_PROFILE(f, thread, position) =-(34.3)*exp(-7.557)*sin(13.09*(t-0.24));
  else
  F_PROFILE(f, thread, position) =0;
}
end_f_loop(f, thread)
}
发表于 2005-12-2 11:17:15 | 显示全部楼层

[求助]请高手帮帮忙!


我在上面的帖子里面把程序贴出来了
想看的自己点
一个币,应该的

发表于 2005-12-23 23:58:40 | 显示全部楼层

[求助]请高手帮帮忙!

注意14行,应该为13.09*t
发表于 2005-12-24 00:00:12 | 显示全部楼层

[求助]请高手帮帮忙!

可以用DEFINE_ADJUST来试试
发表于 2006-5-18 11:08:36 | 显示全部楼层

[求助]请高手帮帮忙!

下面引用由stan2005/08/08 00:19pm 发表的内容:
调试时出现
Error line 14 D line 20: parse error.
另外请问在哪里设置t<=0.8?
谢谢!
发表于 2007-8-20 10:58:35 | 显示全部楼层

[求助]请高手帮帮忙!

下面引用由zhubin2005/08/07 02:03pm 发表的内容:
我来写写看,高手看对不对,刚学了点udf,呵呵,如果有错误还请多多指导啊!
&#35;include "udf.h"
&#35;include "math.h"
DEFINE_PROFILE(unsteady_velocity, thread, position)
...
你的十四行,少个*号
在十九行,少个;号
编译误把19,20当成一行.故有错误.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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