一个简单而完整的UDS例子
一个简单而完整的UDS例子
gearboy
假定需要求解方程为乎+ dt
标准方程形式:
即如果计算达到稳定时,?
dx/
dxj)
=2,此
名 称
表 达 式
各项在UD一个简单而完整的UDS例子
一个简单而完整的UDS例子
gearboy
假定需要求解方程为乎+ dt
标准方程形式:
即如果计算达到稳定时,?
dx/
dxj)
=2,此
名 称
表 达 式
各项在UDS 中需要定义 的量
在UDS中对应的宏
离散形式的
非
稳
态 项
非稳态项
dp(/) ~dT
一
apu su
DEFINE_UDS_UNSTE ADY
(详细见UDF
帮助)
对 流 项
a f 叫时
通量V
DEFINE_UDS_FLUX
扩散项
-「宵
扩散率r
DEFINE_DIFFUSIVIT
Y
=2
dp(b d
_ 厂 7- _j
dt
dxj)
瓦I
Fluent中各项的定义如下:
d L g
—(b-
I
方程解析解为心"C,其中C为常数(假定其为
0),可由边界条件确定。因此,当解稳定时,
Otx+v,等值线为一系列45度的斜直线。 将此方程与标准方程对比发现:
名 称
表 达 式
各项在 UDS中需 要定义的 量
需要在UDS中定义的宏
非稳态项
g dt
离散形式
的非稳态 项
\t \t
DEFINE_UDS_UNSTEAD
Y
对 流 项
J
(单位向
量 7 = {m})
DEFINE_UDS_FLUX
扩散项
冷
扩散率
r = i
DEFINEDIFFUSIVITY
源 项
2
2
DEFINESOURCE
边界条件
c = 0
S, =xZh
(b代表边 界处)
DEFINE PROFILE
*注:源项和扩散率为常数,可以不用定义宏,但为了说明问题,仍采用宏来定义。
假定如图所示的计算域,其中正方形边长为10, 原点在正方形中心,四边均为wall。
将如下源码,写入一个UDF文件,例如
,与cas文件放在同一目录。
#include ""
DEFINE_UDS_UNSTEADY(MyUnsteady皿i,a pu,su) { real physical_dt, vol, phi_old; physical_dt =
RP_Get_Real("physical-time-step"); vol = C_VOLUME(c,t); *apu = -vol / physical_dt; /^implicit part*/ phi_old
C_STORAGE_R(c,t,SV_UDSI_M 1(i));
*su =
/^explicit part*/
}
vol*phi_old/physical_dt;
DEFINE_UDS_FLUX(MyFlux,f,t,i)
real NV_VEC(unit_vec), NV_VEC(A); 〃声明
矢量变量
F_AREA(A, f, t);
NV_DS(unit_vec, =, 1, 1, 1, *, 1);
量赋值
return NV_DOT(unit_vec, A);
积
}
〃单位矢
l=J
〃矢量点
l=J
DEFINE_DIFFUSIVITY(MyDiff,c,t,i)
return ;
}
DEFINE_SOURCE(MySource,c,t,dS,eqn)
dS[eqn]=0;
return ;
}
DEFINE_PROFILE(MyProfile,thread,index)
{
real x[ND_ND]; /* this will hold the position
vector */
real xx,yy;
face_t f;
begin_f_loop(f,thread)
{
F_CENTROID(x,f,thread);
xx = x[0];
yy=x[i];
F_PROFILE(f,thread,index) = (xx+yy);
II
4 = x + y
}"""
end_f_loop(f,thread)
}
编译通过并载入
启
一个简单而完整的UDS例子 来自淘豆网m.daumloan.com转载请标明出处.