首页/文章/ 详情

Fluent获取指定范围内物理量分布

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
内容稀缺
2月前浏览1929

1 问题描述

需要获得在某个范围内物理量的分布情况,例如有多少体积的流体在某个速度区间内,以及分布位置,需要如何操作?

2 解决方案

2.1 曲面上的分布

  1. 创建等值切面(iso-clip)

在等值切面的设置界面,设置物理量取值范围与曲面区域。被选择的曲面可以是入口、壁面、对称面等网格中存在的曲面,也可以是后处理平面、等值面等后处理对象。

  1. 数据处理

等值切面的面积可通过“report definitions”功能的“surface report”获得,其形状、位置、物理量分布可利用网格、云图等模式进行展示。

2.2 空间上的分布

有两种方法:

  • 表达式体积(expression-volume)
  • 单元注册器(cell register)
  1. 创建表达式体积

通过表达式创建体积内部的物理量取值范围。

表达式采用 AND 函数,逻辑关系为多个判断条件需要同时满足,语法结构为 AND(condition_1, condition_2, …,condition_n),且判断条件可应用于不同的物理量(如条件 1 规定速度取值范围,条件 2 规定压力取值范围)。

如下图所示,判断条件 1 (OR 函数)为区域编号 206 或者 200 的区域,即两个区域;判断条件 2 为速度大于 0.2 m/s。

  1. 创建单元注册器

在单元注册器的设置界面上可设置物理量的判断条件,包括取值范围、分布百分比范围、偏离标准差的范围。单元注册器方法只能处理整个计算域,无法像表达式体积那样通过判断条件只处理指定区域。在单元注册器的设置界面上勾选“create volume surface”可创建相同判断条件的表达式体积,方便利用表达式进行修改。

  1. 数据处理

上述两种方法创建的区域,其体积信息均可通过“report definitions”功能的“volume report”获得,其形状、位置、物理量分布等可利用网格、云图等模式进行展示。


(完)

来源:CFD之道
FluentUM曲面
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-07
最近编辑:2月前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2556粉丝 11195文章 729课程 27
点赞
收藏
作者推荐

Fluent案例|膜状沸腾UDF

本文摘要(由AI生成):本文基于Fluent软件,通过修改UDF模拟膜沸腾现象。计算区域设定并初始化温度分布,设置多相流、能量方程及材料属性。UDF用于定义质量源项与能量源项,并编译加载。边界条件、计算方法及监测变量设置后,进行计算并监测气相体积分数及壁面Nusselt数变化。案例简化了附壁气膜形成过程,直接初始化气膜。提供了UDF代码及相关理论背景。本案例演示在Fluent中利用UDF模拟膜状沸腾现象。膜状沸腾:在一些换热问题中,当加热壁面的温度远远高于与壁面接触的液体的饱和温度时,此时整个壁面浸泡在蒸气中,同时在汽液界面发生沸腾传质,周期性地产生气泡并向上排放的现象。膜状沸腾会导致传热效率下降,对换热不利。”本案例中的数据来自Fluent官方案例,对原始UDF进行了修改。1 问题描述本案例中要解决的问题如下图所示。本案例利用UDF定义质量源项与能量源项来模拟膜沸腾现象。计算区域宽0.0389 m,高0.1168 m。介质的饱和温度 K,计算区域底部壁面的温度为510 K。初始时刻,沿Y方向给定一个从Twall到TSAT的线性分布温度,利用下面的函数表达式进行指定:计算结果如下图所示。2 Fluent设置以2D、Double Precision方式启动Fluent利用菜单File → Read → Mesh… 读取网格文件filmBoil.msh.gz2.1 General设置选择Transient进行瞬态计算指定重力加速度为Y轴方向-9.81 m/s22.2 Models设置多相流模型选择采用VOF多相流模型采用Explicit格式激活选项Implicit Body Force激活能量方程采用Laminar层流模型2.3 Materials设置创建两个新材料liquid及vapor,材料属性如下图所示。液相材料参数气相材料参数image-202201061332578732.4 设置相指定气相为主相指定液相为次相激活选项Surface Tension Force Modeling,设置表面张力系数为0.1 N/m2.5 编译UDF右键选择模型树节点User Defined Functions,点击弹出菜单项Compiled… 打开编译对话框编译源文件boiling.c并加载UDF中使用了3个UDM,这里需要先设置UDM数量。点击Memory… 按钮打开UDM设置对话框指定UDM数量为3点击按钮Function Hooks… 打开设置对话框如下图所示,添加初始化及Adjust的UDF2.6 设置计算区域按下图所示顺序添加混合相的能量源添加气相的质量源添加液相的质量源2.7 设置边界条件设置边界heat的温度为510 K设置出口边界outlet的静压为0 Pa设置回流温度500 K设置出口液相回流体积分数为12.8 Methods如下图所示设置Methods2.9 初始化全局初始化,指定温度为500 K右键选择模型树节点Custom Field Functions,点击弹出菜单项New…如下图所示创建函数temp-profile,定义为510-y*10/0.1168Patch整个区域的温度为temp-profile2.10 监测变量监测壁面heat的Nusslet数监测整个计算区域的气相体积分数指定参考值,用于Nusselt数的计算2.11 进行计算指定时间步数为4000,时间步长为0.001 s,进行计算监测得到的体积分数随时间变化监测得到的壁面Nusselt数随时间变化曲线3 计算结果计算结果如下图所示案例实际上是投机取巧了的,事实上膜状沸腾模拟最困难的地方是附壁气膜的形成过程,这里直接将气膜以初始化的形式直接给定了。4 相关理论及UDF代码气相质量源的一般表达形式为:式中,为通过界面的单位面积的热通量,下标与分别表示气相与液相;为潜热。这样可以得到气相质量源为:由于计算域内没有内部质量源,因此液相质量源为:能量方程的潜热源变为:界面属性包括表面张力系数0.1 N/m,潜热1e5 J/kg,饱和温度 K。案例模型的长度尺度是泰勒-罗利不稳定性最危险的波长:速度尺度为:因此时间尺度为:计算域水平宽度为,垂直高度为,网格分辨率为64(水平方向)×192(高度方向)。汽液界面的初始形状必须受到扰动才能启动气泡的生长。因此,采用一个初始化UDF宏,利用气体填充所有满足以下条件的网格:式中,为坐标,单位为米。Nusselt数是表征沸腾换热的一个重要的无量纲值,其定义为:由于该问题的时间尺度为0.1s,因此时间步长为0.001,即100个时间步长分辨率。总而言之,这个问题应该运行大约1200个时间步才能捕捉到第一个气泡排放。一些代码注释如下所示。#include "udf.h"#include "sg.h"#include "sg_mphase.h"#include "flow.h"#include "mem.h"DEFINE_ADJUST(area_density, domain){ Thread *t; Thread **pt; cell_t c; //混合相中循环 mp_thread_loop_c(t, domain, pt) if (FLUID_THREAD_P(t)) { //利用P_PHASE得到主相的Thread指针,P_PHASE宏的值=0 Thread *tp = pt[P_PHASE]; begin_c_loop(c, t) { //计算得到$\namda T \cdot \nabla α$,并将其存储在UDM中方便后面调用 C_UDMI(c, t, 0) = (C_VOF_G(c, tp)[0] * C_T_G(c, t)[0] C_VOF_G(c, tp)[1] * C_T_G(c, t)[1]); } end_c_loop(c, t) }}//气相质量源DEFINE_SOURCE(gas, cell, thread, dS, eqn){ real x[ND_ND]; real source; Thread *tm = THREAD_SUPER_THREAD(thread); Thread **pt = THREAD_SUB_THREADS(tm); //得到k_lα_l k_gα_g real Kl = C_K_L(cell, pt[1]) * C_VOF(cell, pt[1]), Kg = C_K_L(cell, pt[0]) * C_VOF(cell, pt[0]); real L = 1e5; // 根据公式计算得到质量源,这里引用了前面的UDM变量 source = (Kl Kg) * C_UDMI(cell, tm, 0) / L; //将质量源存储在UDM中方便后面调用 C_UDMI(cell, tm, 1) = source; // 顺便计算能量源(等于质量源于潜热的乘积),存储在UDM中后面调用 C_UDMI(cell, tm, 2) = -source * L; // 无法保证负斜率,干脆直接赋零 dS[eqn] = 0; return source;}//液相质量源,利用UDM值进行指定DEFINE_SOURCE(liquid, cell, thread, dS, eqn){ real x[ND_ND]; real source; Thread *tm = THREAD_SUPER_THREAD(thread); Thread **pt = THREAD_SUB_THREADS(tm); source = -C_UDMI(cell, tm, 1); dS[eqn] = 0; return source;}// 计算能量源DEFINE_SOURCE(energy, cell, thread, dS, eqn){ real x[ND_ND]; real source; Thread *tm = thread; source = C_UDMI(cell, tm, 2); dS[eqn] = 0; return source;}//给底部初始化了一层气体区域DEFINE_INIT(my_init_function, domain){ Thread *t; Thread **pt; Thread **st; cell_t c; real xc[ND_ND], y, x; mp_thread_loop_c(t, domain, pt) if (FLUID_THREAD_P(t)) { Thread *tp = pt[P_PHASE]; begin_c_loop(c, t) { C_CENTROID(xc, c, t); x = xc[0]; y = xc[1]; if (y < 0.00292 0.0006 * cos(6.283 * x / 0.0778)) C_VOF(c, tp) = 1; else C_VOF(c, tp) = 0; } end_c_loop(c, t) }}相关文件下载:链接:https://pan.baidu.com/s/1dbEC25AF-r-o89I5RaxGfQ""""""""""" target="_blank">" target="_blank">https://pan.baidu.com/s/1dbEC25AF-r-o89I5RaxGfQ"""""""""" target="_blank">"" target="_blank">https://pan.baidu.com/s/1dbEC25AF-r-o89I5RaxGfQ"""""""""" target="_blank"><a href="https://pan.baidu.com/s/1dbEC25AF-r-o89I5RaxGfQ" """"""""

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈