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. Puppet自动化管理配置

    Puppet:开源系统配置和管理工具 随着虚拟化和云计算技术的兴起,计算机集群的自动化管理和配置成为了数据中心运维管理的热点.对于 IaaS.Paas.Saas 来说,随着业务需求的提升,后台计算机集 ...

  2. 网络编程之TCP三次握手与四次挥手、基于TCP协议的套接字编程

    目录 TCP三次握手和四次挥手 背景描述 常用的熟知端口号 TCP概述 TCP连接的建立(三次握手) TCP四次挥手 如果已建立连接,客户端突然断开,会怎么办呢? 基于TCP协议的套接字编程 什么是S ...

  3. 26、router.beforeEach路由拦截

    为了防止用户未登录直接修改路径来访问页面,解决办法: 在main.js文件中加入以下代码: // 路由拦截 router.beforeEach((to, from, next) => { if ...

  4. JavaScript 之 创建元素

    方式一: 使用  document.write() 语法格式: document.write('新设置的内容<p>标签也可以生成</p>'); 注意:在使用方式的时候,writ ...

  5. mybatis的一级缓存与二级缓存

    一级缓存   Mybatis一级缓存的作用域是同一个SqlSession,在同一个sqlSession中两次执行相同的sql语句,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次会从缓存中 ...

  6. 如何实现android和服务器长连接

    转载 这种功能实际上就是数据同步,同时要考虑手机本身.电量.网络流量等等限制因素,所以通常在移动端上有一下两个解决方案: 1.一种是定时去server查询数据,通常是使用HTTP协议来访问web服务器 ...

  7. linux系统crontab

    一.cron 简介 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cro ...

  8. 【VNCserver】Centos7.4安装VNC连接华为云或亚马逊云

    1.1 文档背景 CentOS 7 / RHEL 7部署图形化界面 安装VNCserver实现linux系统云主机桌面化,通过普通用户实现桌面化操作 2.  Vncserver服务端部署 2.1 安装 ...

  9. Httpd服务入门知识-Httpd服务常见配置案例之Apache的工作做状态status页面

    Httpd服务入门知识-Httpd服务常见配置案例之Apache的工作做状态status页面 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.status功能概述 status页 ...

  10. linux使用useradd创建的用户没有目录的解决办法

    转载请注明来源https://www.cnblogs.com/sogeisetsu/p/11401562.html或https://blog.csdn.net/suyues/article/detai ...