首页/文章/ 详情

DEFINE_PROFILE用法介绍(1)

3年前浏览6382
01—概述

可以使用DEFINE_PROFILE定义一个自定义边界配置文件或单元格区域条件,该条件随空间坐标或时间而变化。可以自定义的变量如下:

  • 速度,压力,温度,湍流动能,湍流耗散率;
  • 质量流量;
  • 目标质量流量作为流动时间的函数;
  • 物种质量分数(物种输运);
  • 体积分数(多相流模型);
  • 壁面热边界条件(温度、热通量、产热率、传热系数、外发射率等等);
  • 壳层热生成率;
  • 壁面粗糙度;
  • 壁面的剪切和应力条件;
  • 孔隙度;
  • 多孔阻力方向矢量;
  • 壁面粘附接触角(VOF多相流模型);
  • 源项;
  • 固定的变量;
注意,DEFINE_PROFILE只允许修改壁面热流的单个值。对于ANSYS Fluent没有线性化的显式源项,采用单值计算。如果你想要线性化你的壁面热流源项,并分别考虑传导热流和辐射热流,你需要使用DEFINE_HEAT_FLUX来指定你的UDF。
02—用法

DEFINE_PROFILE (name, t, i)

  • symbol name:UDF的名字;
  • Thread *t:指向要在其上应用边界条件的线程的指针;
  • int i:标识要定义的变量的索引。当你通过图形用户界面将UDF与边界条件对话框中的变量连接时,就设置了i。这个索引随后通过ANSYS Fluent求解器传递到你的UDF,以便函数知道操作哪个变量。
  • 函数返回值:void;
DEFINE_PROFILE通常用于指定边界面区域上的边界条件,但在计算期间也可以用于指定或固定单元区域中流动变量保持不变。
注意,与term source和property udf不同,profile udf(使用DEFINE_PROFILE定义)不是ANSYS Fluent从边界区域中的线程循环中调用的。求解器只将指向与边界区域关联的线程的指针传递给DEFINE_PROFILE宏。你的UDF需要执行以下工作:遍历线程中的所有面,计算边界变量的面值,然后将值存储在内存中。ANSYS Fluent为你提供了一个面循环宏,可以在一个线程中对所有面进行循环(begin_f_loop…)。
F_PROFILE通常与DEFINE_PROFILE一起使用,它是一个由ANSYS Fluent提供的预定义宏。F_PROFILE在内存中为给定的面和线程存储边界条件,并嵌套在面循环中,如下面的示例所示。需要注意的是,索引i是DEFINE_PROFILE的一个参数,它与F_PROFILE的参数是相同的。F_PROFILE使用线程指针t、面标识符f和索引i在内存中设置适当的边界面值。注意,在使用孔隙度配置文件的情况下,还可以使用C_PROFILE来定义这些类型的函数。在多相流情况下,可以多次调用DEFINE_PROFILE UDF(特别是在混合域线程中使用该概要文件时)。如果必须避免这种情况,那么将前缀MP_添加到UDF名称中。然后该函数将只被调用一次,即使它用于多个配置文件。
03—示例

如下图所示,有一根圆形管道,我们需要在管壁施加一个随着Z轴变化的热通量。

Q=8000+10000*Z

UDF代码如下:

#include "udf.h"
DEFINE_PROFILE(wall_heat_flux, thread, position)

  real x[ND_ND]; /* this will hold the position vector */  
  real z;  
  face_t f;  
  begin_f_loop(f,thread)  
   {   
    F_CENTROID(x, f, thread);    
    z =x[2];   
    F_PROFILE(f, thread, position) = 8000.+10000.*z;  
    }  
    end_f_loop(f, thread)
}
04—计算结果

从上图可以看出,壁面的热通量是随Z轴变化的。

案例文件可关注***:“CFD流”获取。

Fluent湍流流体基础换热散热UDF代码&命令网格处理标准解读二次开发
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-05-21
最近编辑:3年前
CFD流
硕士 | CFD工程师 *****:CFD流
获赞 123粉丝 1951文章 45课程 17
点赞
收藏
未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈