24小时热门版块排行榜    

查看: 3220  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

longma135

金虫 (小有名气)


[交流] 关于UDM的使用顺序问题

之前看过一张图,是压力求解器的求解顺序,如下
关于UDM的使用顺序问题

在我编写的UDF程序中,连续性方程,动量方程,组分方程和能量方程都有源项编写,他们之间也会有联系,我都存储在UDM中,例如,各组分的源项我赋值给UDM0,UDM1,UDM2。。。。然后,连续性方程我return UDM0+UDM1+UDM2。。。这样写对么?
现在我想知道fluent的求解顺序,因为这决定了UDM的使用顺序,是按照图中所示的吗?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lianghui0

银虫 (小有名气)



longma135(金币+1): 谢谢参与
引用回帖:
2楼: Originally posted by longma135 at 2013-12-19 21:26:49
我的UDF从上到下写的顺序是组分方程,动量方程,连续性方程,能量方程,我这样写的原因是连续性方程和能量方程都会用到组分方程的数据,fluent会根据我UDF编写的顺序求解么?

楼主请教,我最近初学UDF,想定义一个UDM存储一个表达式“C_UDMI(c,t,0) = C_DUDX(c,t) * C_DVDY(c,t) - C_DVDX(c,t) * C_DUDY(c,t);”,但是显示不出云图,如果把这句改成C_UDMI(c,t,0) = C_U(c,t) 就可以显示云图了,差别、差错在哪?求指导!!!程序如下:
#include "udf.h"
#include "mem.h"
  DEFINE_ON_DEMAND(on_demand_calc)
{
   Domain *d;       /* declare domain pointer since it is not passed as an argument to the DEFINE macro */
   real uavg = 0.;
   real umax = 0.;
   real umin = 0.;
   real temp,volume,vol_tot;
   Thread *t;
   cell_t c;
   d = Get_Domain(1);  /* Get the domain using ANSYS Fluent utility */

   /* Loop over all cell threads in the domain */
   thread_loop_c(t,d)
      {
      begin_c_loop(c,t)
        {
           volume = C_VOLUME(c,t);  /* get cell volume */
           temp = C_U(c,t);   /* get cell temperature */
           if (temp < umin || umin == 0.) umin = temp;
           if (temp > umax || umax == 0.) umax = temp;
           vol_tot += volume;
           uavg += temp*volume;
        }
    end_c_loop(c,t)
    uavg /= vol_tot;
    printf("\n Umin = %g  Umax = %g  Uavg = %g\n",umin,umax,uavg);

    /* Compute user's function and store in user-defined memory*/
    /*(location index 0) */
    begin_c_loop(c,t)
      {
         C_UDMI(c,t,0) = C_DUDX(c,t) * C_DVDY(c,t) - C_DVDX(c,t) * C_DUDY(c,t);
      }
     end_c_loop(c,t)
    }
}
8楼2014-09-01 13:51:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

longma135

金虫 (小有名气)


我的UDF从上到下写的顺序是组分方程,动量方程,连续性方程,能量方程,我这样写的原因是连续性方程和能量方程都会用到组分方程的数据,fluent会根据我UDF编写的顺序求解么?
2楼2013-12-19 21:26:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

FX5217

银虫 (正式写手)


★ ★
longma135(金币+1): 谢谢参与
longma135: 金币+1 2013-12-20 13:16:13
引用回帖:
2楼: Originally posted by longma135 at 2013-12-19 21:26:49
我的UDF从上到下写的顺序是组分方程,动量方程,连续性方程,能量方程,我这样写的原因是连续性方程和能量方程都会用到组分方程的数据,fluent会根据我UDF编写的顺序求解么?

我觉得没什么先后顺序吧  组分方程的数据总归有初始值的吧 你把这些初始值赋给你定义的UDM,在其他的方程调用它时,就会先利用这些初始值进行求解,然后你的组分方程的求解又会更新你的UDM,个人见解
3楼2013-12-20 09:31:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

longma135

金虫 (小有名气)


引用回帖:
3楼: Originally posted by FX5217 at 2013-12-20 09:31:24
我觉得没什么先后顺序吧  组分方程的数据总归有初始值的吧 你把这些初始值赋给你定义的UDM,在其他的方程调用它时,就会先利用这些初始值进行求解,然后你的组分方程的求解又会更新你的UDM,个人见解...

我懂你的意思,但是这样会不相差一个时间间隔,不过应该也没什么大事吧
4楼2013-12-20 13:17:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见