fluent在运行时改变重力方向方法总结
Fluent版本:19.0(其他版本应该也适用)
这里我们用一个简单的算例(同心环中的自然对流)来说明
算例来自《ANSYS Fluid Dynamics Verification Manual》中的VMFL009: Natural Convection in a Concentric Annulus.
外环温度为327K,内环温度为373K
通过计算瑞利数,本算例应该采用层流模型进行计算
首先我们不考虑重力
打开Fluent,读入网格(建议在ICEM导出网格的时候就进行缩放,这样可以避免在Fluent当中scale了)
计算很快完成
我们可以看出自然对流在没有施加重力的作用下,和导热几乎是一样的
接下来我们考虑重力对自然对流的影响,我们在Y的负向施加9.81m/s2的重力加速度,只需在上面算例的基础上勾选重力选项,然后输入对应的重力加速度
那么如果我们重力是随时间变化的怎么办呢?我们可以采用下面三种方式来让重力随时间变化
方法一:采用UDF当中的DEFINE_ADJUST宏来实现重力随时间变化,我们仍然采用本算例,我们仍然勾选重力选项(如果不勾选,则不能改变重力),但是我们不输入重力加速度的值,而采用默认值0,在UDF中指定重力,我们编写如下的代码:
编译该UDF,挂载该UDF
然后
如果没有上面的步骤,否则UDF指定的重力将不生效
通过对面我们可以看出GUI施加重力和UDF施加重力的效果是一样的,计算结果是完全一致的,如果我们想要重力随时间变化,我们可以在UDF中采用RP_Get_Real(“flow-time”)或者CURRENT_TIME来根据时间变化调整重力方向
方法二:通过UDF在Fluent当中添加到动量源项的方式
我们编写如下的代码:
编译该UDF
挂载该UDF
然后计算
我们可以看到通过添加动量源项的方式与GUI施加重力的效果也是一致的,施加动量源项需要注意一下量纲,返回源项的值时,需要重力与源项之间相差一个密度,需要用重力乘密度以后再返回。如果想要重力随时间变化,同上,可以在UDF中采用RP_Get_Real(“flow-time”)或者CURRENT_TIME来根据时间变化调整重力方向。
方法三:通过编写scheme来实现改变重力
我们编写如下的scheme代码:
(define (ChangeGravity)
(begin
(rpsetvar 'gravity/y -9.81)
(%models-changed)
)
)
然后将文本文件重命名为以.scm为后缀名(我命名为demo.scm)
我们仍然勾选重力选项(如果不勾选,则不能改变重力),但是我们不输入重力加速度的值,而采用默认值0。
然后计算
从计算结果我们看到和scheme施加重力的方式和GUI施加重力的方式也是一致的,随时间变化在scheme当中为(rpgetvar 'flow-time),然后根据获取的时间来改变重力