| 查看: 2210 | 回复: 21 | ||
[求助]
一个入口速度函数的UDF编程,新手实在无力,望大神不吝赐教! 已有2人参与
|
|
入口速度是V=80*丨sin((pi*x)/0.6)丨, “丨”表示绝对值,“pi”表示圆周率。 fluent新手,对宏命令知之甚少,希望大神能帮我编写一个函数。深表感激! |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有9人回复
最失望的一年
已经有17人回复
为什么nbs上溴 没有产物点出现呢
已经有6人回复
求推荐博导
已经有4人回复
存款400万可以在学校里躺平吗
已经有34人回复
求助一下有机合成大神
已经有4人回复
求推荐英文EI期刊
已经有5人回复
26申博
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
疑惑?
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
fluent udf请教
已经有16人回复
【答案】应助回帖
感谢参与,应助指数 +1
|
#include "udf.h" DEFINE_PROFILE(velocity1,t,i) /* 定义属性宏 三个参数 第一是名称 第二个是线程指针 第三个是变量标号 */ { real x[ND_ND]; /* 存放2D或者3D位置参数 */ real y; /* y值为模型中的y坐标值 */ cell_t f; /* 创建网格体指针 */ begin_c_loop(f,t) /* 体线程t中所有网格体指针f的遍历循环 */ { C_CENTROID(x,f,t); /* 把体线程t中所有指针f中的网格体的中心点的坐标值赋给数组x[ND_ND] */ y = x[1]; /* 把x[ND_ND]中的第二个元素集合赋给变量y */ if ( y > 0.5 ) /* 条件判断,当y值大于0.5时,执行下列语句 */ { C_PROFILE(f, t, i) = y^2; /* y^2是表示入口速度等于y坐标值的平方,这里可以改成你要的关系式 */ } else /* 条件判断 */ { C_PROFILE(f, t, i) = 1; /* 条件判断,当y值小于0.5时,执行语句 */ } } end_c_loop(f,t) /* 遍历循环结束 */ } 最后要解释方法导入到fluent里 再在速度入口条件下导入 |

2楼2015-05-18 17:59:19

3楼2015-05-18 18:00:18
4楼2015-05-18 19:28:21

5楼2015-05-18 20:09:53
6楼2015-05-18 20:40:15

7楼2015-05-18 21:01:22
8楼2015-05-18 23:42:23
moons2
金虫 (正式写手)
- 应助: 144 (高中生)
- 金币: 1440.5
- 红花: 8
- 帖子: 431
- 在线: 239.4小时
- 虫号: 3784607
- 注册: 2015-04-03
- 性别: GG
- 专业: 流体力学
【答案】应助回帖
★ ★ ★ ★
感谢参与,应助指数 +1
opporoppor: 金币+4, ★★★很有帮助 2015-05-19 18:53:02
感谢参与,应助指数 +1
opporoppor: 金币+4, ★★★很有帮助 2015-05-19 18:53:02
|
#include "udf.h" #include "math.h" #define pi 3.14159 DEFINE_PROFILE(inlet_x_velocity, thread, position) { real x[ND_ND]; /* this will hold the position vector */ real y; face_t f; begin_f_loop(f, thread) { F_CENTROID(x,f,thread); y = x[0]; F_PROFILE(f, thread, position) =80.*abs(sin(pi*y/.6)); } end_f_loop(f, thread) } 不保证对,自己多想多试。 |
9楼2015-05-19 09:44:46
10楼2015-05-19 10:37:40













回复此楼