欢迎来到天天文库
浏览记录
ID:29005836
大小:286.86 KB
页数:10页
时间:2018-12-15
《动网格系列(一).docx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、1利用GRID_MOTION宏径向缩放圆柱区域1.1文件需求两个附加文件:1、scale_cylinder.c定义径向缩放圆柱区域的UDF宏文件。2、input.txt指定圆柱网格区域轴以及缩放因子的输入文件。1.2操作过程Step1:启动FLUENT启动FLUENT,读取网格文件。网格文件如图1-1所示。图1-1计算网格Step2:准备input.txt文件-在input.txt文件中输入缩放因子(与尺寸的比值)以及圆柱轴的起点及方向。参看后文介绍。-圆柱轴的起点及方向可以通过FLUENT软件获取。获
2、取过程参看附录B。本例中的input.txt文件是为UDF文件所准备的。Step3:编译及加载UDF-利用菜单Define→User-Defined→Functions→Compiled...,在弹出的对话框中添加UDF文件scale_cylinder.c至SourceFile列表框中,点击按钮【Build】编译文件。-点击按钮【Load】加载UDF文件。如图1-2所示。UDF加载成功后,input.txt文件内容将会被显示在命令窗口中。如图1-3所示。图1-2编译UDF图1-3input.txt文件内
3、容Step4:设置网格运动及缩放圆柱区域-点击模型树节点【DynamicMesh】,在右侧面板中勾选【DynamicMesh】,本例不需要设置MeshMethods,如图1-4所示。-在动网格设置面板中,点击按钮【Create/Edit…】按钮,弹出动网格区域定义对话框。如图1-5、图1-6所示。-在图1-6所示面板中,设置ZoneNames为fluid-cylinder,设置Type为User-Defined,在下方的MotionAttributes标签页中设置MeshMotionUDF为scale_
4、cyl::libudf,点击按钮【Create】创建动网格区域。图1-4设置动网格图1-5创建动网格区域图1-6创建动网格区域Step5:文件读取宏设置点击菜单Define→User-Defined→ExecuteonDemand...,弹出如图1-7所示对话框,设置ExecuteonDemand为read_input::libudf,点击Execute按钮。图1-7文件读取宏Step6:动网格预览-在General中设置计算类型为Transient,如图1-8所示。-在DynamicMesh面板中点击
5、按钮【PreviewMeshMotion…】,点击按钮【Preview】观察网格变化。图1-8设置瞬态计算图1-9动网格预览由于本例的网格运动并未涉及到时间,故也可以在稳态计算情况下预览。1.1UDF文件解释1、input.txt文件该文件为文本文件,其中记录了圆柱网格区域的轴向原点及方向。文本格式:*第1行:缩放因子*第2行:圆柱轴原点X坐标*第3行:圆柱轴原点y坐标*第4行:圆柱轴原点z坐标*第5行:圆柱轴X方向分量*第6行:圆柱轴y方向分量*第7行:圆柱轴z方向分量查看input.txt文件内容为
6、:22045350.071068-0.50.5其中2表示缩放因子为2,表示扩大2倍。(20,45,35)表示圆柱轴向原点坐标,(0.071068,-0.5,0.5)表示圆柱轴向方向向量。2、scale_cylinder.c文件该文件为UDF源文件,包含了三个宏:DEFINE_ON_DEMAND、DEFINE_EXECUTE_ON_LOADING以及DEFINE_GRID_MOTION。其中DEFINE_ON_DEMAND及DEFINE_EXECUTE_ON_LOADING宏的主要目的为读取input.t
7、xt文件,DEFINE_GRID_MOTION宏目的在于控制网格节点运动。其内容及注释如下(为图简洁,这里采用C++注释方式):#include"udf.h"//定义三个变量,fac为缩放因子,origin为原点坐标,dir为方向向量staticrealfac,origin[3],dir[3];//定义函数read_input_file,从文本文件中读取数据voidread_input_file(void){inti;//定义文件指针fpFILE*fp;//以只读的方式打开文本文件input.txt,这
8、里采用的是绝对路径,因此input.txt要放在工程路径下fp=fopen("input.txt","r");if(fp==NULL)Message("Inputfiledoesnotexist!");else{//读取第一行文本,保存在变量fac中fscanf(fp,R_DATA,&fac);for(i=0;i<3;i++)fscanf(fp,R_DATA,&(origin[i]));//读取2~4行数据,保存在origin数组中for(
此文档下载收益归作者所有