中科大FLUENT讲稿 第七章 自定义函数(8)
/* profile for x-velocity */
DEFINE_PROFILE(x_velocity, thread, position) {
real y, del, h, x[ND_ND], ufree; /* variable declarations */ face_t f;
h = YMAX - YMIN; del = DELOVRH*h; ufree = UMEAN*(B+1.); begin_f_loop(f, thread) {
F_CENTROID(x,f,thread); y = x[1]; if (y <= del)
F_PROFILE(f,thread,position) = ufree*pow(y/del,B); else
F_PROFILE(f,thread,position) = ufree*pow((h-y)/del,B); }
end_f_loop(f, thread) }
/* profile for kinetic energy */
DEFINE_PROFILE(k_profile, thread, position) {
real y, del, h, ufree, x[ND_ND]; real ff, utau, knw, kinf; face_t f;
h = YMAX - YMIN; del = DELOVRH*h; ufree = UMEAN*(B+1.);
ff = 0.045/pow(ufree*del/VISC,0.25); utau=sqrt(ff*pow(ufree,2.)/2.0); knw=pow(utau,2.)/sqrt(CMU); kinf=0.002*pow(ufree,2.); begin_f_loop(f, thread) {
F_CENTROID(x,f,thread); y=x[1]; if (y <= del)
F_PROFILE(f,thread,position)=knw+y/del*(kinf-knw); else
F_PROFILE(f,thread,position)=knw+(h-y)/del*(kinf-knw);
}
end_f_loop(f, thread)
}
/* profile for dissipation rate /*
DEFINE_PROFILE(dissip_profile, thread, position) {
real y, x[ND_ND], del, h, ufree; real ff, utau, knw, kinf; real mix, kay; face_t f;
h = YMAX - YMIN; del = DELOVRH*h; ufree = UMEAN*(B+1.);
ff = 0.045/pow(ufree*del/VISC,0.25); utau=sqrt(ff*pow(ufree,2.)/2.0); knw=pow(utau,2.)/sqrt(CMU); kinf=0.002*pow(ufree,2.); begin_f_loop(f, thread) {
F_CENTROID(x,f,thread); y=x[1]; if (y <= del)
kay=knw+y/del*(kinf-knw); else
kay=knw+(h-y)/del*(kinf-knw); if (VKC*y < 0.085*del) mix = VKC*y; else
mix = 0.085*del;
F_PROFILE(f,thread,position)=pow(CMU,0.75)*pow(kay,1.5)/mix; }
end_f_loop(f,thread) }
7.5.1.3 正弦壁面温度分布
壁面温度随着x呈正弦分布,靠近壁最左端温度为300K,中间为400K,最右端时又降为300K,分布式为:
x?? T(x)?300?10s0in???
0.005?? UDF的C语言源代码如下。
/*************************************************************************/ /* UDF for specifying a sinusoidal temperature profile boundary condition */
/*************************************************************************/ #include \
#define PI 3.141592654
DEFINE_PROFILE(temperature_profile, thread, position) {
real r[ND_ND]; /* this will hold the position vector */ real x; face_t f;
begin_f_loop(f, thread) {
F_CENTROID(r,f,thread); x = r[0];
F_PROFILE(f, thread, position) = 300.+100.*sin(PI*x/0.005); }
end_f_loop(f, thread) }
7.5.2 源项
本节分析源项UDFs的两个例子: 1.与空间位置相关的多孔介质区 2.流体区域涡产生器
7.5.2.1 多孔介质区的源项
多孔介质区域的源项方程式为:source??0.5C2?yvxvx 假设 sourc?eS??Avxvx ,A?0.5C2?y 于是,有
dSd?vx? ??Avx?Avxdvxdvx所以,UDF的返回源项值为: sourc?e?Avxvx 源项对输运方程所求变量vx的导数为:
dS??2Avx dvx源项UDF必须给出源项对所求变量的直接导数,源项的导数用于对源项的线性化(见下一节)。下面是根据上述方程编写的UDF的C源程序。
/**************************************************************/ /* UDF for specifying an x-momentum source term */
/**************************************************************/ #include \#define C2 100.0
DEFINE_SOURCE(xmom_source, cell, thread, dS, eqn) {
real x[ND_ND]; real con, source;
C_CENTROID(x, cell, thread);
con = C2*0.5*C_R(cell, thread)*x[1];
source = -con*fabs(C_U(cell, thread))*C_U(cell, thread); dS[eqn] = -2.*con*fabs(C_U(cell, thread)); return source; }
7.5.2.2 涡产生器
本函数要求处理器返回我们期望的网格变量值。考虑源项的线性化方程,令
?SS(?)??anb?nb?S(?old)?(?p??p,old)
??于是,可得差分方程:
? ? S ? ?S???p,old??ap???p??anb?nb??S(?old)? ? ???????如果线性化源项中
?SS(?)?1020(?p,desired??p),??1020
??则可得该点的参数值为, ? p ,desired 相当于该点变量取我们希望的值 p ,desired 。 ?在本例中,我们为了得到r?值,取源项:
source?1020?r??vswirl?
源项的导数:ds=-1020,由此编写的UDF源程序如下。
/**************************************************************/ /* UDF for specifying a swirl-velocity source term */
/**************************************************************/ #include \
#define OMEGA 50. /* rotational speed of swirler */
#define WEIGHT 1.e20 /* weighting coefficients in linearized equation */ DEFINE_SOURCE(user_swirl, cell, thread, dS, eqn) {
real w_vel, x[ND_ND], y, source; C_CENTROID(x, cell, thread); y = x[1];
w_vel = y*OMEGA; /* linear w-velocity at the cell */ source = WEIGHT*(w_vel - C_WSWIRL(cell,thread)); dS[eqn] = -WEIGHT; return source; }
宏C_WSWIRL(cell,thread)用于取出2D旋转问题的切向速度分量。
7.5.3 用户自定义标量输运方程
本节例子给用户自定义标量输运方程添加源项。本节的用户自定义标量输运方程求解的是FLUENT中的P-1辐射模型,然后将求得的辐射能项加入总的能量方程求解温度。UDFs中定义了边界条件,源项和用户自定义标量输运方程的一些参数。
Poisson入射辐射能量方程,G:
入射辐射边界条件:
能量方程源项:
在本例中,我们使用了用户自定义标量输运方程。首先需要在FLUENT中激活用户自定义标量输运方程:
…… 此处隐藏:2233字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [政务民生]2013年公共基础知识热点问题(七)
- [政务民生]检验检测机构资质认定评审准则及释义20
- [政务民生]关于印发重庆市房屋建筑和市政基础设施
- [政务民生]1、隧道洞身开挖支护施工技术交底书
- [政务民生]2015年山东省17地市中考语文试题分类汇
- [政务民生]2-高级会计师资格考试和评审流程图
- [政务民生]2018版中国清分机行业发展分析及前景策
- [政务民生]新课改高中政治探究
- [政务民生]2018-2024年中国新型组合房屋行业投资
- [政务民生]2015年上海市春季高考数学模拟试卷五
- [政务民生]灌砂法及环刀法测压实度(带计算过程)
- [政务民生]运筹学实验2求解非线性规划
- [政务民生]劝学、逍遥游默写(教师卷)
- [政务民生]《运筹学》 - 期末考试 - 试卷A - 答案
- [政务民生]八年级英语下册 Module 6 Hobbies测试
- [政务民生]2019年宪法知识竞赛试题库100题(含答
- [政务民生]自动化英文文献翻译
- [政务民生]公文格式实施细则
- [政务民生]高一地理上册课堂跟踪练习题6
- [政务民生]会计继续教育习题及答案
- 第三章 无约束最优化方法
- 泛读教程第三册答案
- 魏晋南北朝文学
- 幂的运算复习题
- 城市环境问题的成因与治理策略_以社会
- 钢结构行业产业链及竞争分析研究
- 新型热塑性弹性体增韧聚丙烯的研究
- 中国旅游地理B卷试题及答案
- (苏教版)五年级数学上册第三单元测试卷
- 不稳定性心绞痛诊断与治疗
- 俞氏国际后勤职能部门绩效考核办法
- GB7258-2017新标准考试题含答案
- 小学生汉字听写比赛活动方案
- 1.3《平抛运动》学案 教科版必修2
- 2011香港特别行政区公务员考试复习资料
- 考虑水力条件变化的城市给水管网可靠性
- 表面活性剂在油田开发和生产中的应用
- ITT内部培训资料-FI端吸泵的介绍
- 文明守纪,从我做起学生发言稿
- 初中读《聊斋志异》心得体会800字范文




