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),然后根据获取的时间来改变重力

fluent在运行时改变重力方向方法总结的更多相关文章

  1. Activity系列讲解---Activity运行时的屏幕方向,全屏,窗体模式的设置

    Android内置了方向感应器的支持.Android会根据所处的方向自动在竖屏与横屏间切换.但是有的应用程序只能在横/竖屏时运行,比如某些游戏,此时我们要锁定该Activity运行时的屏幕方向,< ...

  2. 如何在运行时改变App的图标

    在你完成应用程序的beta版本后,最后会有些人去帮你测试,使你去完善应用程序……或者会有投资青睐.但是如果测试人员有一种简单地方式去检查构建版本的应用程序会不会有帮助呢? 这个教程将会向你展示这些,向 ...

  3. JVM运行时数据区--本地方法栈

    本地方法栈 1.Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法(一般非Java实现的方法)的调用 2.本地方法栈,也是线程私有的. 3.允许被实现成固定或者是可动态拓展的内存 ...

  4. 【JVM第五篇--运行时数据区】方法区

    写在前面的话:本文是在观看尚硅谷JVM教程后,整理的学习笔记.其观看地址如下:尚硅谷2020最新版宋红康JVM教程 一.栈.堆.方法区的关系 虚拟机运行时的数据区如下所示: 即方法区是属于线程共享的内 ...

  5. EF6 Create Different DataContext on runtime(运行时改变连接字符串)

    引言   在使用EF时,有时我们需要在程序运行过程中动态更改EF的连接字符串,但不幸的时EF是否对 ConfigurationManager.RefreshSection("xxx" ...

  6. 运行时改变控件的大小(点击后立刻ReleaseCapture,然后计算位移,最后发消息改变位置)——最有趣的是TPanel其实也有窗口标题,因此可发HTCAPTION消息

    //光标在控件不同位置时的样式 // 由于拐角这点手动精确实在困难 所以用范围 范围+3 这样很容易就找到这一点了 procedure CtrlMouseMove(Ctrl: TWinControl; ...

  7. 关于Animator状态在运行时的正负方向播放

    如果直接在脚本里改播放速度,会报出如下警告: 之前没有很好的解决方法,但根据评论里的新方法,我试了下,可以控制播放正负方向了:

  8. ugui在运行时改变RectTransform的大小

    http://blog.csdn.net/BeiFuDeNvWang/article/details/50838266 在代码中动态改变RectTransform大小的方法如下所示: 1:直接对siz ...

  9. 第2月第6天 iOS 运行时添加属性和方法

    http://blog.csdn.net/meegomeego/article/details/18356169 第一种:runtime.h里的方法 BOOL class_addProperty(Cl ...

随机推荐

  1. drf--认证组件

    目录 认证简介 用户认证RBAC(Role-Based Access Control) 局部使用 全局使用 源码分析 认证简介 使用场景:有些接口在进行访问时,需要确认用户是否已经登录,比如:用户需要 ...

  2. IDEA忽略编译报错

    设置Intellij IDEA忽略部分类编译错误 File——Settings——Compiler——Java compiler修改:Use complier:将Javac改为Eclipse在Ecli ...

  3. java中创建线程的3种方法

    1.继承Thread类优点:可以直接使用Thread类中的方法,代码比较简单.缺点:继承Thread类之后不能继承其他类. 2.实现Runable接口优点:实现接口,比影响继承其他类或实现接口.缺点: ...

  4. JavaScript 之 定时器

    JavaScript 里面有两个定时器:setTimeout() 和 setInterval() . 区别: setTimeout():相当于一个定时炸弹,隔一段时间执行,并且只会执行一次就不在执行了 ...

  5. QTGraphics-View拖拽以及鼠标指针操作

    因为QGraphicsView继承自QWidget,它也提供了像QWidget那样的拖拽功能. 另外,为了方便,Graphics View框架也为场景以及每个item提供拖拽支持.当视图接收到拖拽事件 ...

  6. AF step、Bokeh等说明

    基本概念:FV: Focus Value, 用来衡量图像AF的清晰度. DOF: Deep Of Field, 景深,表示物距清晰的范围,景深越长表示物距前后清晰的范围越大. AF step一般来说, ...

  7. 数据结构与算法—simhash

    引入 随着信息爆炸时代的来临,互联网上充斥着着大量的近重复信息,有效地识别它们是一个很有意义的课题. 例如,对于搜索引擎的爬虫系统来说,收录重复的网页是毫无意义的,只会造成存储和计算资源的浪费: 同时 ...

  8. Nginx学习(二)

    ------------恢复内容开始------------ Nginx配置文件 主配置文件结构:四部分 main block:主配置段,既全局配置段,对Http,mail都有效 event{ }事件 ...

  9. linux命令-jdk及mysql安装操作

    1. VMware虚拟机 VMWare虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows.DOS.LINUX系统. 1.1.  vmware15安装配置 Work ...

  10. JVM存储位置分配——java中局部变量、实例变量和静态变量在方法区、栈内存、堆内存中的分配

    Java中的变量根据不同的标准可以分为两类,以其引用的数据类型的不同来划分可分为“原始数据类型变量和引用数据类型变量”,以其作用范围的不同来区分可分为“局部变量,实例变量和静态变量”. 根据“Java ...