|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
一.几何描述:左中右三个区域(ID 17,19,18),中间夹两个interior。
二. 问题:想取两个interior面上的UDS。后来查看帮助,得知UDS在边界上没有存储值,于是想获得临近节点上的UDS值。
三. 思路:1.找到interior 的thread (Get_Domain,Look_Thread)
2. 确定临近网格的thread (THREAD_T)
3.取网格上的UDS值 (C_UDSI)
四.遇到问题:并没能按要求取得网格上的值。
五. 疑点:1.寻找interior的thread,需要先确定domain,可是interior两侧有两个domain,选哪个都可以吗?
2. 选择一个domain之后,由面thread找cell thread的过程中,C0/C1两个cell thread是否都存在,还是只存在选定domain这一侧的?
请高手帮忙看看,谢谢~
/*UDF*/
DEFINE_DIFFUSIVITY(myuds_diffusivity,c,t,i)
{
Thread *sr,*rl,*src,*rlc;
int a;
real dif;
cell_t c0;
face_t f;
real tall,tavesr,taverl;
Domain *domain0,*domain1;
domain0=Get_Domain(17);
domain1=Get_Domain(18);
sr=Lookup_Thread(domain0,29); /*29为interior的ID*/
rl=Lookup_Thread(domain1,30); /*30为interior的ID*/
src=THREAD_T0(sr); /*cell thread*/
rlc=THREAD_T0(rl); /*cell thread*/
a=0;
tall=0.0;
begin_c_loop(c0,src) /*循环取小孔侧cell的UDS平均值*/
{
a=a+1;
tall=tall+C_UDSI(c0,src,0);
C_UDMI(c0,src,2)=C_UDSI(c0,src,0);
}
end_c_loop(c0,src)
tavesr=tall/a;
tall=0.0;
a=0;
begin_c_loop(c0,rlc) /*循环取大孔侧的UDS平均值*/
{
a=a+1;
tall=tall+C_UDSI(c0,rlc,0);
C_UDMI(c0,rlc,3)=C_UDSI(c0,rlc,0);
}
end_c_loop(c0,rlc)
taverl=tall/a;
dif=5.67*(pow(taverl/100,4)-pow(tavesr/100,4))*emissivity*sample_length/1000/(taverl-tavesr); /*有效导热*/
} |
|