您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 一个简单而完整的UDS例子
1一个简单而完整的UDS例子gearboy标准方程形式:Sxxtjj(默认iu)Fluent中各项的定义如下:名称表达式各项在UDS中需要定义的量在UDS中对应的宏非稳态项t离散形式的非稳态项(详细见UDF帮助)DEFINE_UDS_UNSTEADY对流项jx通量DEFINE_UDS_FLUX扩散项22jx扩散率DEFINE_DIFFUSIVITY假定需要求解方程为2jjxxt当t,即如果计算达到稳定时,2jjxx,此方程解析解为cyx,其中c为常数(假定其为0),可由边界条件确定。因此,当解稳定时,yx,等值线为一系列45度的斜直线。将此方程与标准方程对比发现:名称表达式各项在UDS中需要定义的量需要在UDS中定义的宏非稳态项t离散形式的非稳态项1nntVtVDEFINE_UDS_UNSTEADY对流项jx通量AI(单位向量1,1,1I)DEFINE_UDS_FLUX扩散项22jx扩散率1DEFINE_DIFFUSIVITY源项22DEFINE_SOURCE边界条件0cbbbxy(b代表边界处)DEFINE_PROFILE*注:源项和扩散率为常数,可以不用定义宏,但为了说明问题,仍采用宏来定义。2假定如图所示的计算域,其中正方形边长为10,原点在正方形中心,四边均为wall。将如下源码,写入一个UDF文件,例如MyFistUDF.c,与cas文件放在同一目录。#includeudf.hDEFINE_UDS_UNSTEADY(MyUnsteady,c,t,i,apu,su){realphysical_dt,vol,phi_old;physical_dt=RP_Get_Real(physical-time-step);vol=C_VOLUME(c,t);*apu=-vol/physical_dt;/*implicitpart*/phi_old=C_STORAGE_R(c,t,SV_UDSI_M1(i));*su=vol*phi_old/physical_dt;/*explicitpart*/}DEFINE_UDS_FLUX(MyFlux,f,t,i){realNV_VEC(unit_vec),NV_VEC(A);//声明矢量变量F_AREA(A,f,t);NV_DS(unit_vec,=,1,1,1,*,1);//单位矢量赋值returnNV_DOT(unit_vec,A);//矢量点积}DEFINE_DIFFUSIVITY(MyDiff,c,t,i){return1.0;}DEFINE_SOURCE(MySource,c,t,dS,eqn){dS[eqn]=0;return2.0;}3DEFINE_PROFILE(MyProfile,thread,index){realx[ND_ND];/*thiswillholdthepositionvector*/realxx,yy;face_tf;begin_f_loop(f,thread){F_CENTROID(x,f,thread);xx=x[0];yy=x[1];F_PROFILE(f,thread,index)=(xx+yy);//bbbxy}end_f_loop(f,thread)}编译通过并载入启动非稳态求解器,并在Define-User-Defined-Scalars面板中添加一个UDS,选择自定义的通量和非稳态项在材料面板中,选择自定义扩散率4在boundaryconditions的Fluid面板中,选择自定义源项在boundaryconditions的壁面边界条件面板中,选择自定义边界条件5在solve-controls-solution中禁止Flow计算,只计算自定义标量迭代过程中的残差曲线,可以看出正逐渐趋向稳定采用后处理等值线面板,观察自定义标量的等值线6未完全稳定时的等值线最终稳定时的等值线,可以看出是一系列45度的斜直线,与解析解相同。但右上角顶点的值为9.9,而解析解中应为x+y=10,所以尚存在1%的误差。
本文标题:一个简单而完整的UDS例子
链接地址:https://www.777doc.com/doc-4391900 .html