动网格中一个重要任务是部件运动方式的指定。在动网格中指定部件的运动,往往将部件的运动方式指定为其加速度、速度或位移与时间的相关关系,本文主要讲述如何在Fluent中利用瞬态Profile文件指定部件的运动方式。

在Fluent中指定部件运动主要有两种方式:Profile与UDF宏。当运动方程已知时,利用UDF宏指定运动非常方便,然而当需要指定的运动并无任何函数关系时(比如说通过传感器监测得到的速度-时间、加速度-时间曲线),此时利用Profile文件进行运动表述则较为方便。

Profile文件有三种表述方式:

  • 标准形式
  • 表格形式
  • CSV格式

需要注意的是:在Fluent中的Profile文件所指定的边界运动均是与时间相关的。只有在动网格中指定了in-cylinder方法时,profile文件才可以指定为角度的函数。关于in-cylinder方法,我们在后面再进行详细描述。

标准瞬态Profile文件

标准瞬态Profile文件可表述为以下格式:

((profile-name transient n periodic?)
(field_name_1 a1 a2 a3 ... an)
(field_name_2 b1 b2 b3 ... bn)
.
.
.
(field_name_r r1 r2 r3 ... rn)
)

文件中:

  • profile-name:自定义的 profile名,必须全部为小写字母,且要求小于64个字符
  • field_name:各种场变量,但必须有一行time,且时间变量数据为升序排列
  • transient:为瞬态profile关键字,需要保留
  • n:每一个场变量拥有的数据个数
  • periodic?:表示是否使用时间周期profile,若为1则使用周期,写0或省略则表示不使用周期。

一个典型的Profile文件示例:

((sampleprofile transient 3 0)
(time 1 2 3 )
(u 10 20 30 )
)

标准Profile注意的问题

  • profile中所有的物理量均需要使用国际单位制,软件并不会进行转换
  • 必须有一行为time,可以是任意一行。但如果采用in-cylinder方法,则必须有一行为angle
  • profile名必须为小写字母,且不能包含有空格或其他标点符号
  • 标准形式Profile文件可以通过菜单File →Read →Profile...读取

表格形式瞬态Profile文件

表格形式的profile文件与标准形式类似,表述为以下形式:

profile-name n_field n_data periodic?
field-name-1 field-name-2 field-name-3 .... field-name-n_field
v-1-1 v-2-1... ... ... ... v-n_field-1
v-1-2 v-2-2... ... ... ... v-n_field-2
.
.
.
.
.
v-1-n_data v-2-n_data ... ... ... ... v-n_field-n_data

一个典型示例:

sampletabprofile 2 3 0
time u 2 3 0
1 10
2 20
3 30

表格形式profile文件需要注意的问题

  • profile中所有的物理量均需要使用国际单位制,软件并不会进行转换
  • 第一个field_name必须为time。但如果采用in-cylinder方法,则必须为angle
  • profile名必须为小写字母,且不能包含有空格或其他标点符号
  • 标准形式Profile文件可以通过TUI命令file →read-transient-table读取

CSV格式瞬态文件

CSV文件是以逗号隔开的数据文件,可以使用excel打开。

在描述运动过程时,通常采用瞬态csv文件。

瞬态CSV文件形式如下:

[Name]
transient-temperature
[Data]
time,temperature
1.1,300
1.2,350
1.3,400

文件可以采用文本文件编辑,保存后修改文件扩展名为CSV。

上例中的Name与Data是关键字,不可修改。

time和terperature为变量名,分别为时间和温度。数据列表采用逗号隔开。

注意:标准形式Profile文件可以通过菜单File →Read →Profile...读取

profile文件中的物理量

能用profile表示的物理量很多,在动网格中常用的如:表示位置的变量x,y,z;表示速度的变量v_x,v_y,v_z;表示角速度的变量omega_x,omega_y,omega_z;表示时间的变量time。

时间步长

需要注意的是,profile中的数据采用的是线性插值,因此计算过程中采用的时间步长需要低于profile数据时间步长,否则会造成数据信息丢失,尤其是在曲线有曲率存在的位置。

如下图所示,蓝色线条为大时间步长下得到的值,可以看到在曲率位置并未严格遵守profile指定的规律。

一个案例

如果要表示运动函数:

\[v_x=2sin(3t)+5
\]

时间区间为[0,20],时间步长为0.5s,如果要利用profile来表达,则可以采用如下步骤:

  • step 1:利用excel编辑公式计算数据(这里括号内假设计算得到的是度,将其转化为弧度)

  • step 2:如果采用标准profile文件,需要转置保存数据

之后将文件保存到文本文件中,并添加其他所需的结构信息。如图所示。

之后将文件保存为扩展名为prof即可。

  • 若采用表格形式profile文件,则直接保存到文本文件并添加其他的结构信息。

  • 若采用CSV格式,则需要在Excel文件中添加文本信息并保存为CSV格式。

保存后用文本编辑器打开csv文件。

需要去掉数据信息后的逗号,如上图中前三行行末尾的逗号。去掉完毕后保存csv文件即可。

Fluent动网格【2】:Profile文件的更多相关文章

  1. Fluent动网格【1】:概述

    最近总有小伙伴向我询问Fluent中的动网格问题,因此决定做一期关于Fluent动网格技术的内容. 动网格技术在流体仿真中很特殊,应用也很广.生活中能够碰到形形色色的包含有部件运动的问题,比如说我现在 ...

  2. Fluent动网格【13】:网格光顺总结及实例

    光顺(Smoothing)方法是最基本的网格节点更新方法.Fluent提供了三种光顺方法: Spring弹簧光顺 Diffusion扩散光顺 Linearly Elastic Solid光顺 三种方法 ...

  3. Fluent动网格【8】:网格节点运动案例

    Fluent动网格中的DEFINE_GRID_MOTION宏允许用户定义网格节点的运动.本案例演示采用DEFINE_GRID_MOTION宏指定边界节点的运动. 案例动网格效果如图所示. 案例描述 本 ...

  4. Fluent动网格【9】:区域运动

    本文所述的区域运动并非动网格中的运动域,而是指在多参考系(MRF)或滑移网格中所涉及到的区域的运动. 在滑移网格中指定区域运动时,除了能够指定绝对运动外,还能指定某一区域与其他区域间的相对运动,如图所 ...

  5. Fluent动网格【7】:网格节点运动

    在动网格中,对于那些既包含了运动也包含了变形的区域,可以通过UDF来指定区域中每一个节点的位置.这给了用户最大的自由度来指定网格的运动.在其他的动网格技术中(如重叠网格)则很难做到这一点.定义网格节点 ...

  6. Fluent动网格【5】:部件变形

    在动网格中关于部件运动除了指定刚体运动外,有时还需要指定某些边界的变形,这种情况经常会遇到,尤其是与运动部件存在相连接边界的情况下,如下图中边界1运动导致与之相连的边界2和边界3发生变形. Fluen ...

  7. Fluent动网格【3】:DEFINE_CG_MOTION宏

    除了利用Profile进行运动指定之外,Fluent中还可以使用UDF宏来指定部件的运动.其中用于运动指定的宏主要有三个: DEFINE_CG_MOTION DEFINE_GEOM DEFINE_GR ...

  8. Fluent动网格【11】:弹簧光顺

    动网格除了前面讲了很多的关于运动指定之外,另一个重要主题则为网格的更新. 在部件运动之后,不可避免的会造成网格形状的变化,如若不对网格加以控制,在持续运动的过程中,则可能造成网格极度变形.歪曲率过大, ...

  9. Fluent动网格【6】:部件变形案例

    本案例描述使用动网格过程中处理边界变形的问题. 案例描述 本案例几何为一个抛物线旋转成型的几何体.如图所示. 其中上壁面刚体运动引起抛物面变形.刚体运动方程为: \[ v=\left\{ \begin ...

随机推荐

  1. (转)40个Java集合面试问题和答案

    Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 另外,码农网之前也整理过一篇关于Java集合面试题的文章:大公司最 ...

  2. 李宏毅机器学习笔记1:Regression、Error

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

  3. Win10 下 hadoop3.0.0 单机部署

    前言 因近期要做 hadoop 有关的项目,需配置 hadoop 环境,简单起见就准备进行单机部署,方便开发调试.顺便记录下采坑步骤,方便碰到同样问题的朋友们. 安装步骤 一.下载 hadoop-XX ...

  4. 蛋疼的mocha库-promise异步测试

    mocha 测试库的使用 错误的处理异步测试 异步当出现断言错误的时候,他会抛出错误,但不会把这次测试当作失败,就是正确的顺利通过测试了,很无语. promise的reject会在then的第二个函数 ...

  5. html+css基础知识

    这是自己学习html时候做的一些记录,供大家参考 <!-- 块和内联 块元素:独占一行的元素 div p h ul div没有任何语义,就是一个纯粹的快元素 就是为了方便布局 span是内联元素 ...

  6. 【Java并发核心三】CountDownLatch、CyclicBarrier及Phaser

    个人感觉,看书学习还是需要“不求甚解”,因为一旦太过于计较小的得失,就容易钻牛角尖,学习进度也慢.我们完全可以先学一个大概,等到真正用到的时候再把那些细节丰富起来,就更有针对性. 所以,针对java并 ...

  7. 50 tips of JavaScript,这些坑你都知道吗?

    1.在局部作用域中,使用var操作符定义的变量将成为定义该变量的作用域中的局部变量,省略var的会创建全局变量:在全局作用域中,不管是否使用var操作符定义的变量都会创建一个全局变量.但是,在全局作用 ...

  8. Java程序员面试中的多线程问题1

    转自:http://blog.jobbole.com/18571/ 很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework), 理解 ...

  9. C++有关 const & 内敛 & 友元&静态成员那些事

    C++中有关 const & 内敛 & 友元&静态成员 的用法比较杂乱,算是C++中一个麻烦的部分.现速速的对它们做大致的总结,了解它们当中常见的用法和陷阱. const修饰的 ...

  10. float:浮点型double:双精度实型decimal:数字型单精度浮点数(Single)双精度浮点数(double)

        单精度浮点数(Single) 双精度浮点数(double)       Decimal为SQL Server.MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部分以及小 ...