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

文章详细描述了在Fluent中使用两种方法模拟循环通道的温度变化,包括通过风扇模型和断开流体域设置入口和出口,以及利用UDF实现出口温度对入口温度的动态赋值。文章涵盖了建模、网格划分、Fluent参数设置和求解过程。
摘要由CSDN通过智能技术生成

在此特意记录下循环通道的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_HOST
    begin_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_NODE
        sum_Area = PRF_GRSUM1(sum_Area);
    sum_T = PRF_GRSUM1(sum_T);
#endif

    node_to_host_real_2(sum_Area, sum_T);

#if !RP_NODE
    outlet_temp = sum_T / sum_Area;
    // Message("n temperature of outlet:%fn", outlet_temp);
#endif

    host_to_node_real_1(outlet_temp);
    outlet_T = outlet_temp;
}

DEFINE_PROFILE(inletTemperature, t, index)
{
    face_t f;

#if !RP_HOST
    begin_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,将出口温度赋予到入口的过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值