一个UDF的详细描述并求助

wxxzwb
rudy 2010-04-07 字数 1309

之前在版上发了一个帖子关于UDF的,有点模糊,现将详细问题陈述如下,望达人给以指点。

函数的作用:制冷机的出口用一个面来表示,边界条件为velocity inlet,将其吹出冷风温度一直固定在-10度,用函数实现的是它的工作状态,即工作时速度为0.5m/s,不工作时速度为0.0m/s。

判断制冷机工作与否的条件要判断位于点(0,0,-0.8)处单元的温度的大小,若这个温度高于-5度,制冷机就会开始工作,吹出-10度,0.5m/s的冷风;若这个温度低于-5度,制冷机是不会工作的,也就是吹出冷风的速度为0.0m/s。

特别声明的是点(0,0,-0.8)处单元并不是位于制冷机所在的面上,程序在运行的过程中不断地去运行这个函数,以确定制冷机是否工作,即velocity inlet边界条件面板上的速度值是否为0。

#include"udf.h"

DEFINE_PROFILE(velocity_aircondition,thread,position)

{

real temp;                        //用来存储位于点(0,0,-0.8)处单元的温度

face_t f;                         //指向制冷机所在的边界面

程序在这里怎样让C_T知道cell这个单元并读出温度的值

temp=C_T(cell,thread);          //这个cell为位于位于点(0,0,-0.8)处的单元

if(temp>=278)                   //若温度高于-5度,制冷机工作,吹出0.5m/s

F_PROFILE(f,thread,position)=0.5;//温度为-10度的冷风

else

F_PROFILE(f,thread,position)=0.0;

//否则制冷机不工作,即对空间不进行冷却

}                                 //程序最后返回一个值赋给边界面板中的速度

NumComp 数值计算
3 个回复
wxxzwb
rudy 2010-04-08

自己顶一下

【 在 wxxzwb (rudy) 的大作中提到: 】

:     之前在版上发了一个帖子关于UDF的,有点模糊,现将详细问题陈述如下,望达人给以指点。

:     函数的作用:制冷机的出口用一个面来表示,边界条件为velocity inlet,将其吹出冷风温度一直固定在-10度,用函数实现的是它的工作状态,即工作时速度为0.5m/s,不工作时速度为0.0m/s。

:     判断制冷机工作与否的条件要判断位于点(0,0,-0.8)处单元的温度的大小,若这个温度高于-5度,制冷机就会开始工作,吹出-10度,0.5m/s的冷风;若这个温度低于-5度,制冷机是不会工作的,也就是吹出冷风的速度为0.0m/s。

: ...................

gutentage
:) 2010-04-08

这个udf 确实不好写,最近也碰到了这种问题。我是想取出某个特定点的压力。不好弄啊。。。

【 在 wxxzwb (rudy) 的大作中提到: 】

: 自己顶一下

seb
seb,reloaded.零力尽致·热力青春难忘怀 2010-04-08

问题不在fluent上,而在网格上

画网格的时候设法把这个点,比如(1,1,1),画在某个网格cell的中心上。

接后thread loop一下找到这个cell就ok

【 在 gutentage (:)) 的大作中提到: 】

: 这个udf 确实不好写,最近也碰到了这种问题。我是想取出某个特定点的压力。不好弄啊。。。