24小时热门版块排行榜    

查看: 1940  |  回复: 0

xiaoxiang_

铜虫 (小有名气)

[求助] Fluent计算,四面体网格,编写UDF,用数组赋值初始温度

计算一个传热问题,使用Gambit分三个区域划分了四面体网格。要编一个UDF给定温度初场。温度初场的数据已知,保存在一个数组中(无规律)。尝试编写的UDF如下。
假设计算区域总共有20000个网格,数组的数据也已经按照Gambit网格文件里体网格的顺序排好。但是,这个UDF导入Fluent里显示的温度场是错误的。
请问:
        1  下面UDF代码是否正确?如果有错误,请找出并给出错误原因及正确代码
        2  是否有更好的解决本问题的方法,请给出详细思路及代码
      (个人认为,该UDF中的语句 C_T(c,t)=temp0_cell[c]; 可能有问题,网格温度值的定位方式为:Domain--->Thread--->Cell,然而Thread的具体组织方式不清楚,导致
赋值没有对应到相应的网格而失败。UDF是否还有其它的数据定位方式,可以便于本问题的解决?)
           以上两个问题,只要解决其一,使Fluent可以正确导入数组温度初场,就给金币。

#include "udf.h"
#define total_cell 20000
real temp0_cell[total_cell]={
/*此处有20000个数据*/
};

DEFINE_INIT(cell_temp, d)
{
        cell_t c;
        Thread *t;
        real x[ND_ND];
       
        thread_loop_c(t,d)
        {
                  begin_c_loop_all(c,t)
                  {
                    C_CENTROID(x,c,t);
                    C_T(c,t)=temp0_cell[c];                            
                  }
                  end_c_loop_all(c,t)  
        }

}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiaoxiang_ 的主题更新
信息提示
请填处理意见