木风10086 发表于 2020-11-1 09:34:19

边界附近源项的UDF

在固体wall边界附近的一层单元内添加源项,这层单元我单独提取出来做了zone。本意是当单元压力大于某一值、单元上wall的那条面温度大于某一值时就释放源项,代码如下:
可是运行的时候总是整个wall的温度大于设定值时才释放,而不是单元内的与wall对应的那个面的温度大于值就在该单元释放,问题在哪?
F_T(f,t)到底是整个wall的温度还是单元内那个面的温度?我查看了一些udf内容觉得F_T(f,t)应该是单元面,可是为什么我的运行后总是wall边界的结果满足if条件后才产生源项??求指教
#include "udf.h"
DEFINE_SOURCE(c_e, cell, thread, dS, eqn)
{
    real source;
int n;
   double st;
   face_t f;
   Thread *t;
Domain *domain=Get_Domain(1);
   t=Lookup_Thread(domain,15);

begin_f_loop(f,t)
{
       st=F_T(f,t);
    if ( C_P(cell,thread) >= 120000. && st>=310.)
    {
      source =1.10921e11;
      dS = 0;
   }
    else
    {
      source = 0;
      dS = 0;
   }
return source;
}   
end_f_loop(f,thread)
}

killera27 发表于 2022-1-8 15:14:46

begin_f_loop(f,t)这个函数就是给出thread中的所有face,你得到的是face的温度,但你根本没有指定是哪个face的啊~
页: [1]
查看完整版本: 边界附近源项的UDF