Fluent循环流动案例(模拟循环泵,含换热、散热、VOF、UDF)

在此特意记录下循环通道的fluent思路和参数设置

该案例中,主要关注的是催化剂域的温度变化情况,因此需要监控的是温度的变化曲线,关于泵如何进行模拟,这里有两种思路,一种是用风扇代替泵,优点是整个流体域基本是连通的,缺点就是风扇性能不好知道,因此通过泵的流量不好控制。另一种思路是流体域在泵处断开,设置入口和出口,虽然流体域断开,但是可以让入口的流量等于出口流量,然后再考虑入口温度的变化即可。针对第二种,可以让出口温度传递给入口温度,此时就需要监控出口平均温度的变化,并通过设置变量,让该变量作为媒介,记录出口平均温度,然后通过该变量赋值到每次迭代步前的入口温度设置中。该变量可以设置表达式,亦可用UDF设置。

一、 建模

        1.1 用风扇模型模拟循环泵

        这里是在CATIA软件建立的是2D模型,如下图所示,绿色是流体域,蓝色是催化剂域,橙色是风扇流体域

        1.2 通道断开,设置入口和出口

         把上面橙色的风扇流体域去掉就行

二 、导入几何,划分网格

        2.1 采用 Workbench Meshing

        先针对有设置入口和出口的1.2节模型,因为是2D模型,单元尺寸设置为5mm,方法采用默认就行,查看偏度(skewness),没有大于0.97的,且基本都在0.51以下,质量已经很好。

        2.2 设置流体域、边界名称

        如下图,设置催化剂层为pzone2,流体域为fzone1,加热壁面有heat-wall和heat_wall2,入口inlet,出口outlet,散热面wall-pipe-rejection。

三、Fluent设置

        3.0 设置为稳态计算,打开和设置为y轴的重力

        3.1设置好材料,如下,流体材料添加hydrogen和liquid材料,固体材料添加baowen材料

        3.2 打开多相流,选择VOF,其他参数如下 

        3.3 打开能量选项,选择层流 

        因为要考虑换热,因此要打开能量选项。同时,设置入口、出口为质量流量类型出入口,流量均为0.1kg/s,根据模型和材料参数,估算雷诺数Re=\frac{\rho v d}{\mu }<2300,因此选择层流。

        3.4 设置加热壁面heat-wall和heat_wall2,直接设定为453K,其他参数为默认 ;散热面wall-pipe-rejection设置传热系数h=11.63W/(m²·K),壁厚30mm,来流温度为300K,材料选择设置好的“baowen”。

        流体域中多孔介质区域的设置如下所示

        3.5 新建报告定义,名称改为outletTemp,选择面积平均积分Area-Weight Average,选择场变量为Temperature和Static Temperature,选择需要统计的outlet边界,点击“报告文件”和“报告图”前面的选择框,方便后续监控作图。

       3.5.1 同时再创建报告定义,改名为“report-plot-avgtemp_of_pzone",选择Area-Weight Average,选择场变量为Temperature和Static Temperature,选择需要统计的interior-pzone2区域,点击“报告文件”和“报告图”前面的选择框,方便后续监控作图。

         3.6 创建表达式inletTemp,选择报告定义,点击选择上一步创建好的outletTemp即可,弄好后如下图所示。

       3.6.1 inlet设置温度项,在总温度下拉菜单中选择上述定义好的“inletTemp”表达式。

        3.7 创建区域标记,参数如下,Region0是用于局部初始化liquid所占据空间的位置,region1为笔者设置的温度局部初始化区域,在此可以不用设置。

         3.8 初始化,如下,先点击全局初始化,再点击局部初始化,设置region0的liquid的Volume fraction为1。 

         3.9 求解方法采用Coupled,伪时间法。

        3.10 迭代次数输入200000,报告间隔为50,计算至3.5节报告定义“report-plot-avgtemp_of_pzone”中的温度值基本稳定后,结束计算。

四、 采用UDF的Fluent设置

        4.1 UDF文件如下

#include "udf.h"#define OUTLETID 10
real outlet_T = 300.0;DEFINE_ADJUST(my_adjust, d)
{real NV_VEC(A);real sum_T = 0;real sum_Area = 0.0;real outlet_temp;Thread *outletThread = Lookup_Thread(d, OUTLETID);face_t f;#if !RP_HOSTbegin_f_loop(f, outletThread){if (PRINCIPAL_FACE_P(f, outletThread)){F_AREA(A, f, outletThread);sum_Area += NV_MAG(A);sum_T += NV_MAG(A) * F_T(f, outletThread);}}end_f_loop(f, outletThread)
#endif#if RP_NODEsum_Area = PRF_GRSUM1(sum_Area);sum_T = PRF_GRSUM1(sum_T);
#endifnode_to_host_real_2(sum_Area, sum_T);#if !RP_NODEoutlet_temp = sum_T / sum_Area;// Message("n temperature of outlet:%fn", outlet_temp);
#endifhost_to_node_real_1(outlet_temp);outlet_T = outlet_temp;
}DEFINE_PROFILE(inletTemperature, t, index)
{face_t f;#if !RP_HOSTbegin_f_loop(f, t){if (PRINCIPAL_FACE_P(f, t)){F_PROFILE(f, t, index) = outlet_T;}}end_f_loop(f, t)
#endif
}

        4.2 Fluent设置

        总设置过程与第三章基本一致,关键在于UDF的导入、编译、设置函数钩子。

        如下,加载完成后显示有两个自定义的函数, 

        首先点击函数钩子,在“调整”项点击编辑,添加“my_adjust::libudf”,点击ok即可。 

         然后边界条件中inlet选择UDF/profile的“udf inletTemperture::libudf”,然后其他设置跟第三章节一模一样,只是inlet入口的温度用了UDF,将出口温度赋予到入口的过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/783763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS ArkTS 骨架屏加载显示(二十五)

目录 前言1、骨架屏代码显示2、代码中引用3、效果图展示 前言 所谓骨架屏&#xff0c;就是在页面进行耗时加载时&#xff0c;先展示的等待 UI, 以告知用户程序目前正在运行&#xff0c;稍等即可。 等待的UI大部分是 loading 转圈的弹窗&#xff0c;有的是自己风格的小动画。其实…

武汉大学开设 “雷军班”:计算机专业、今年招收 15 名本科生。武汉大学已经联合小米成立了机器系

更多精彩内容在公众号。 3月25日&#xff0c;武汉大学官方网站发布了一则新闻&#xff0c;报道了校长张平文对计算机学院的调研活动。在报道中&#xff0c;张平文校长特别强调了关于“雷军班”及机器人系的发展规划。他表示&#xff0c;希望计算机学院能够立足于更高层次&#…

【python从入门到精通】-- 第三战:输入输出 运算符

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…

前端虚拟滚动列表 vue虚拟列表

前端虚拟滚动列表 在大型的企业级项目中经常要渲染大量的数据&#xff0c;这种长列表是一个很普遍的场景&#xff0c;当列表内容越来越多就会导致页面滑动卡顿、白屏、数据渲染较慢的问题&#xff1b;大数据量列表性能优化&#xff0c;减少真实dom的渲染 看图&#xff1a;绿色…

Prometheus +Grafana +node_exporter可视化监控Linux + windows虚机

1、介绍 背景&#xff1a;需要对多台虚机进行负载可视乎监控&#xff0c;并进行及时的报警 2、架构图 node_exporter &#xff1a;主要是负责采集服务器的信息。 Prometheus &#xff1a;主要是负责存储、抓取、聚合、查询方面。 Grafana &#xff1a; 主要是…

Pandas | value_counts() 的详细用法

value_counts() 函数得作用 用来统计数据表中&#xff0c;指定列里有多少个不同的数据值&#xff0c;并计算每个不同值有在该列中的个数&#xff0c;同时还能根据指定得参数返回排序后结果。 返回得是Series对象 value_counts(values,sortTrue, ascendingFalse, normalizeFal…

SSTI 服务器端模板注入(Server-Side Template Injection)

1.Web_python_template_injection {{}}是变量包裹标识符&#xff0c;里面存放的是一个变量&#xff0c;当你输入 http://61.147.171.105:55121/{{8*8}} 执行成功&#xff0c;说明存在模版注入。接下来&#xff0c;开始想办法编代码拿到服务器的控制台权限 。 首先&#xff0c…

unity 打包安卓错误汇集

Failed to find target with hash string "android-34’ in: D:Pr 他说找不到sdk34level的我用as打开后卸载又重装&#xff0c;最后解决了 我放到Plugins/Android/下面的Java代码没有被编译 这个不知道为什么。我故意把代码写的有问题&#xff0c;会报错那种&#xff…

Java中常见的锁策略

目录 乐观锁 vs 悲观锁 悲观锁: 乐观锁&#xff1a; 重量级锁 vs 轻量级锁 ⾃旋锁&#xff08;Spin Lock&#xff09; 公平锁 vs 非公平锁 可重⼊锁 vs 不可重入锁 读写锁 乐观锁 vs 悲观锁 悲观锁: 总是假设最坏的情况&#xff0c;每次去拿数据的时候都认为别…

AES加密解密算法

一&#xff0c;AES算法概述 AES属于分组加密&#xff0c;算法明文长度固定为128位&#xff08;单位是比特bit&#xff0c;1bit就是1位&#xff0c;128位等于16字节&#xff09; 而密钥长度可以是128、192、256位 当密钥为128位时&#xff0c;需要循环10轮完成加密&#xff0…

【Threejs基础教程-光影篇】5.2 Threejs 阴影系统

5.2 Threejs阴影系统 学习ThreeJS的捷径在用光影系统之前threejs是实时光影web端目前没有优质的实时光影实时光影会大幅增加渲染压力没有独显的电脑不建议添加实时光影 阴影配置什么样的灯光可以产生阴影什么样的物体可以产生阴影和接受阴影注意开启阴影渲染灵活运用阴影 平行光…

判断一个数据能否同时被3和5整除

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int a 0;//提示用户printf("请输入一个整数\n");//获取用户输入数据&#xff1b;scanf("%d", &am…

Spring Boot项目启动过程中为什么日志打印没有显示完整包名呢?

一、前言 不知道大家注意过没有&#xff0c;在Spring Boot项目启动过程中日志打印并没有显示完整的报名&#xff0c;而是显示一些o.a.c&#xff0c;o.s.web形式的包名&#xff0c;如下图&#xff1a; 这是为什么呢&#xff1f; 二、原理 首先&#xff0c;我们先看一下Spring…

WordPress AutomaticPlugin SSRF漏洞复现(CVE-2024-27954)

0x01 产品简介 WordPress是一款免费开源的内容管理系统(CMS),最初是一个博客平台,但后来发展成为一个功能强大的网站建设工具,适用于各种类型的网站,包括个人博客、企业网站、电子商务网站等,并逐步演化成一款内容管理系统软件。 0x02 漏洞概述 WordPress AutomaticPlu…

01-XML-04XML处理

XML处理 DOM DOM解析要求解析器将整个XML文件全部加载到内存中&#xff0c;生成一个Document对象。 优点&#xff1a;元素和元素之间保留结构&#xff0c;关系&#xff0c;可以针对元素进行增删改查操作。 缺点&#xff1a;如果XML文件过大&#xff0c;可能会导致内存溢出。SA…

【QT入门】 QListWidget各种常见用法详解之列表模式

往期回顾 【QT入门】 Qt代码创建布局之setLayout使用-CSDN博客 【QT入门】 Qt代码创建布局之多重布局变换与布局删除技巧-CSDN博客 【QT入门】 QTabWidget各种常见用法详解-CSDN博客 【QT入门】 QListWidget各种常见用法详解之列表模式 QListWidget有列表和图标两种显示模式&a…

springboot论坛管理系统

论坛管理系统 摘要&#xff1a; 在社会快速发展的影响下&#xff0c;论坛管理系统继续发展&#xff0c;使论坛管理系统的管理和运营比过去十年更加信息化。依照这一现实为基础&#xff0c;设计一个快捷而又方便的网上论坛管理系统是一项十分重要并且有价值的事情。对于传统的论…

一篇讲明白 Hadoop 生态的三大部件

文章目录 每日一句正能量前言01 HDFS02 Yarn03 Hive04 HBase05 Spark及Spark Streaming关于作者推荐理由后记赠书活动 每日一句正能量 黎明时怀着飞扬的心醒来&#xff0c;致谢爱的又一天&#xff0c;正午时沉醉于爱的狂喜中休憩&#xff0c;黄昏时带着感恩归家&#xff0c;然后…

【Linux】进程实践项目 —— 自主shell编写

送给大家一句话&#xff1a; 不管前方的路有多苦&#xff0c;只要走的方向正确&#xff0c;不管多么崎岖不平&#xff0c;都比站在原地更接近幸福。 —— 宫崎骏《千与千寻》 自主shell命令编写 1 前言2 项目实现2.1 创建命令行2.2 获取命令2.3 分割命令2.4 运行命令 3 源代码…

非NVIDIA平台下的CUDA的替代方案OpenCL,第一步如何获取PlatformInfo、DeviceInfo

非NVIDIA平台下的CUDA的替代方案OpenCL&#xff0c;第一步如何获取PlatformInfo、DeviceInfo 介绍 当谈到高性能计算&#xff0c;NVIDIA的CUDA框架无疑是一个强大的工具。OpenC&#xff08;Open Computing Language&#xff09;是一个更为通用的解决方案&#xff0c;或者你使用…