宏DEFINE_GRID_MOTION用来移动任意边界和流体区域内的网格节点。它提供了对节点和网格最大限度的操作,可以将刚体运动、变形和相对运动等结合起来。但是使用此UDF时,每一个时间步都必须执行。

DEFINE_GRID_MOTION限制:

1.

给定节点的运动是基于绝对坐标的,不可基于相对坐标的。

2.

给定节点的新位置是基于该节点上一个时间步的位置,而不是该节点的初始(t=0)位置

3.

宏DEFINE_GRID_MOTION中没有用户定义的节点位置内存记忆

4.

当使用宏DEFINE_GRID_MOTION时,节点移动的区域的连接关系不能改变。

摘自《ANSYS FLUENT技术基础与工程应用:流动传热与环境污染控制领域》,源代码有误,对原UDF进行了修正,添加注释

圆管在垂直流动方向上的振动方程如下:

式中,A表示振动圆柱的振幅,ω表示振动角频率,f表示振动频率。作为示例,在本例中,设A=4mm,f=25Hz

#include"udf.h"

#include"math.h"

#define
omeg 50*3.14159265358979323846

#define A
0.004    //振幅

DEFINE_GRID_MOTION(mc,domain,dt,time,dtime)

{

Thread*
tf=DT_THREAD(dt);    
//DT_THREAD 就是获取网格运动所在的
thread 指针

face_t
f;

Node*
v;    //指向网格节点的指针

int
n;

SET_DEFORMING_THREAD_FLAG(THREAD_T0(tf));

Message("\nprevious
time=%.5f\t current
time=%.5f\n",PREVIOUS_TIME,CURRENT_TIME);

Message("time=%.5f\t
dtime=%.5f\t n=%d",time,dtime,N_TIME);

begin_f_loop(f,tf)

{

f_node_loop(f,tf,n)

{

v=F_NODE(f,tf,n);

if(NODE_POS_NEED_UPDATE(v))        //在UDF手册当中没有查询到NODE_POS_NEED_UPDATED和NODE_POS_UPDATED宏

{

NODE_POS_UPDATED(v);

NV_D(NODE_COORD(v),=,NODE_X(v),NODE_Y(v)+A*sin(omeg*(N_TIME+1)*CURRENT_TIMESTEP)-A*sin(omeg*N_TIME*CURRENT_TIMESTEP),NODE_Z(v));

}

}

}

end_f_loop(f,tf);

}

二维算例(点击图片查看动态图):





三维算例(点击图片查看动态图)





绕流振动UDF【转载】的更多相关文章

  1. ICEM-extrude功能画圆柱绕流网格【转载】

    转载自:http://blog.csdn.net/lgw19910426/article/details/26401517 首先画网格大体顺序为点-->线-->面-->单元体. 第一 ...

  2. OpenFOAM——绕流振动

    流体的物性参数为: 密度:1kg/m3 粘度系数:0.01N·s/m2           首先进行建模操作,任何建模软件均可,本算例在ICEM建模和进行网格划分,生成的网格如下: 接下来转入Open ...

  3. 15第十五章UDF用户自定义函数(转载)

    15第十五章UDF用户自定义函数 待补上 原文链接 本文由豆约翰博客备份专家远程一键发布

  4. 沸腾换热UDF【转载】

    #include "udf.h"    //包括常规宏 #include "sg_mphase.h"    // 包括体积分数宏 CVOF(C,T) #defi ...

  5. 膜态沸腾UDF【转载】

    膜态沸腾的UDF,添加注释.其中获取VOF梯度的方法详见前面的日志,其中很多宏无法通过UDF手册查阅, 蒸汽相中的质量源项的一般形式为: 式中: 通过一阶近似,热流之差可表达为: 式中: 通过此近似, ...

  6. 将HTML5封装成android应用APK文件的几种方法(转载)

    越来越多的开发者热衷于使用html5+JavaScript开发移动Web App.不过,HTML5 Web APP的出现能否在未来取代移动应用,就目前来说,还是个未知数.一方面,用户在使用习惯上,不喜 ...

  7. C#路径/文件/目录/I/O常见操作汇总<转载>

    文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...

  8. Hive学习笔记【转载】

    本文转载自:http://blog.csdn.net/haojun186/article/details/7977565 1.  HIVE结构 Hive 是建立在 Hadoop 上的数据仓库基础构架. ...

  9. Hive的UDF实现及注意事项

    Hive自身查询语言HQL能完毕大部分的功能,但遇到特殊需求时,须要自己写UDF实现.下面是一个完整的案例. 1.eclipse中编写UDF ①项目中增加hive的lib下的全部jar包和Hadoop ...

随机推荐

  1. LifeGame

    LifeGame 用例说明&用例图 用例名: 设置细胞颜色 说明 用户可以根据自己的喜好来设置细胞的颜色 主事件流 在菜单出点击需要的颜色游戏检测到菜单的返回的颜色更改细胞的颜色,最后显示出来 ...

  2. wireshark语法小结

    https://blog.csdn.net/cumirror/article/details/7054496 过滤重传包 https://blog.csdn.net/Joseph_ChiRunning ...

  3. MySQL Hardware--RAID卡常用信息查看

    MegaRAID信息查看 #查raid卡信息(生产商.电池信息及所支持的raid级别) /usr/local/sbin/MegaCli -AdpAllInfo -aALL |grep -E " ...

  4. Flink 使用(一)——从kafka中读取数据写入到HBASE中

    1.前言 本文是在<如何计算实时热门商品>[1]一文上做的扩展,仅在功能上验证了利用Flink消费Kafka数据,把处理后的数据写入到HBase的流程,其具体性能未做调优.此外,文中并未就 ...

  5. /sys 和 /dev 区别

    参考:What's the “/sys” directory for? Directory - /sys in linux 前言 各种Linux发行版下面似乎都有/sys目录,tree查看下面内容,会 ...

  6. [S32K]GPIO使用

    问题: 1.为何对Port口下的某个引脚单独配置Direction会影响到该Port下的其他PIN脚,导致之前配置失效?当前没办法,只能把工程中所有用到的PIN脚Direction一次配置完毕 详细介 ...

  7. Python标准库-datatime和time

    Python标准库-datatime和time 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.标准库datatime 1>.datatime模块 #!/usr/bin/e ...

  8. nginx编译安装之-./configure 参数详解

    参考官方文档 http://nginx.org/en/docs/configure.html --with开头的,默认是禁用的(没启动的,想使用的话需要在编译的时候加上) --without开头的,默 ...

  9. git 在本地备份与指定不需要管理文件

    git 在本地备份 备份文件夹操作 在本地备份文件夹克隆一个不带工作区的仓库: 哑协议: git clone --bare <workspace>/.git yourwork.git gi ...

  10. python高级特性-迭代器

    凡是可作用于for循环的对象都是Iterable类型: 凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列: 集合数据类型如list.dict.str等是Itera ...