UDF-将该时间步下的出口平均温度作为下一时间步的进口温度条件

这个相对比较简单,直接附上UDF源码,关键点都给了注释
#include “udf.h”
#include “mem.h”
#include “metric.h”
#include “unsteady.h”

real pst=0.0;//存储上一次迭代时间
real TO1=300.0;//自己设定进口温度初始值

DEFINE_ADJUST(boundary_time_step,d)//每次迭代前自动执行
{

Domain *d1=NULL;
Thread *t1=NULL,*t2=NULL;
face_t f;
real A[ND_ND];
real current_timestep=CURRENT_TIMESTEP;
real current_time=CURRENT_TIME;	
//real previous_time=PREVIOUS_TIME;
real difference_time=current_time-pst;
real sum_A=0.0,sum=0.0,area;
d1=Get_Domain(1);
t1=Lookup_Thread(d1,11);//给定模块1出口的边界面ID
if(difference_time>(current_timestep/10000))//判断当前迭代是否为更新了时间,在当前时间步里的迭代计算是不更新时间的
{
	begin_f_loop(f,t1)
	{
		F_AREA(A,f,t1);
		area=NV_MAG(A);
		sum_A+=area;
		sum+=area*F_T(f,t1);
	}
	end_f_loop(f,t1)
	sum_A=PRF_GRSUM1(sum_A);
	sum=PRF_GRSUM1(sum);
	TO1=sum/sum_A;//出口面平均温度
	//printf("\nrenew!!!\n");
	printf("\nTO1=%g\n",TO1);
}
pst=current_time;//更新为当前时间
//printf("\nCURRENT_TIMESTEP=%g,CURRENT_TIME=%g",current_timestep,current_time);

}
DEFINE_PROFILE(inlet1,t,i)//给定进口边界温度
{

face_t f;
begin_f_loop(f,t)
{
	F_PROFILE(f,t,i)=TO1;
}
end_f_loop(f,t);

}

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值