找回密码
 注册
查看: 2324|回复: 2

求教,UDF帮助的例子:求温度的最大值?+++++

[复制链接]
发表于 2013-1-13 15:53:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
各位前辈、师兄弟,我在UDF帮助里看到这样一个例子:求一计算区域温度的最大值和最小值。大体程序如下:
#include "udf.h"
DEFINE_ON_DEMAND(on_demand_calc)
Domain *d;
{
real tmax = 0.;
real tmin = 0.;
real temp,volume,vol_tot;
Thread *t;
cell_t c;
d = Get_Domain(1);
thread_loop_c(t,d)
{
  begin_c_loop(c,t)
   {
    temp = C_T(c,t);
    if (temp < tmin || tmin == 0.) tmin = temp;
    if (temp > tmax || tmax == 0.) tmax = temp;
    }
  end_c_loop(c,t)
printf("\n Tmin = %g Tmax = %g\n",tmin,tmax);
}
我对if (temp > tmax || tmax == 0.) tmax = temp;这句话的意思不是很了解,为什么如果网格温度大于tmax或者tmax=0,就认为这个网格的温度是计算区域温度的最大值呢?
请求您的解惑,因为在做的一个模拟会用到类似的概念(想求一个满足一定条件的坐标的最大值),应该也是同样的原理。
谢谢~

[ 本帖最后由 wangxw0315 于 2013-1-14 18:06 编辑 ]
发表于 2013-1-17 10:19:15 | 显示全部楼层
if (temp > tmax || tmax == 0.) tmax = temp;   

因为之前给tmax赋初值0了,所以if(tmax==0)目的是 循环第一个值直接赋值给tmax,之后再比较。
 楼主| 发表于 2013-1-18 12:25:55 | 显示全部楼层

回复 2# stryhood 的帖子

懂了~ 谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表