fluent培训笔记:核心关系定义
2017-03-02 by:CAE仿真在线 来源:互联网
1初始化和边界条件1 FLUENT的初始化面板中有一项是设置从哪个地方开始计算(computefrom),选择从不同的边界开始计算有很大的区别吗?该怎样根据具体问题选择从哪里计算呢?比如有两个速度入口A和B,还有压力出口等等,是选速度入口还是压力出口?如果选速度入口,有两个,该选哪个呀?有没有什么原则标准之类的东西?
一般是选取ALL ZONE,即所有区域的平均处理,通常也可选择有代表性的进口(如多个进口时)进行初始化。对于一般流动问题,初始值的设定并不重要,因为计算容易收敛。但当几何条件复杂,而且流动速度高变化快(如音速流动),初始条件要仔细选择。如果不收敛,还应试验不同的初始条件,甚至逐次改变边界条件最后达到所要求的条件。
2要判断自己模拟的结果是否是正确的,似乎解的收敛性要比那些初始条件和边界条件更重要,可以这样理解吗?也就是说,对于一个具体的问题,初始条件和边界条件的设定并不是唯一的,为了使解收敛,需要不断调整初始条件和边界条件直到解收敛为止,是吗?如果解收敛了,是不是就可以基本确定模拟的结果是正确的呢?
对于一个具体的问题,边界条件的设定当然是唯一的,只不过初始化时可以选择不同的初始条件(指定常流),为了使解的收敛比较好,我一般是逐渐的调节边界条件到额定值( "额定值"是指你题目中要求的入口或出口条件,例如计算一个管内流动,要求入口压力和温度为10MPa和3000K,那么我开始叠代时选择入口压力和温度为1MPa和500K(假设,这看你自己问题了),等流场计算的初具规模、收敛的较好了,再逐渐调高压力和温度,经过好几次调节后最终到达额定值10MPa和3000K,这样比一开始就设为10MPa和3000K收敛的要好些)这样每次叠代可以比较容易收敛,每次调节后不用再初始化即自动调用上次的解为这次的初始解,然后继续叠代。即使解收敛了,这并不意味着就可以基本确定模拟的结果是正确的,还需要和实验的结果以及理论分析结果进行对比分析。
3FLUENT的湍流模型FLUENT的湍流模型有哪几种?
A、Spart-Alpla单方程模型
B、K-e 双方程模型
C、雷诺应力模型
D、大涡模拟模型
单方程模型在这几种模型的中的计算量最小,它是一种刚刚发展起来的湍流模型,主要针对于航空流体机械的数值模拟,对于其他复杂流动的计算还没有经过验证
双方程湍流模型能够比较准确地模拟各种复杂流动,而且计算量也在工程可以接受的范围;标准k-ε模型解决一般的流动问题,RNG k-ε模型主要应用于旋转坐标系下的流动问题(旋转机械),Realizable k-ε模型主要用于射流、大分离、回流等问题
雷诺应力模型和大涡模拟主要应用于湍流运动的机理研究中,由于计算量非常大,因此目前还很少用于有复杂几何形状的工程问题中
4FLUENT中残差的概念
残差-是cell各个face的通量之和,当收敛后,理论上当单元内没有源项使各个面流入的通量也就是对物理量的输运之和应该为零。最大残差或者RSM残差反映流场与所要模拟流场(只收敛后应该得到的流场,当然收敛后得到的流场与真实流场之间还是存在一定的差距)的残差,残差越小越好,由于存在数值精度问题,不可能得到0残差,对于单精度计算一般应该低于初始残差1e-03以下才好,当注意具体情况,看各个项的收敛情况(比方说连续项不易收敛而能量项容易)。
一般在FLUENT中可以进行进出口流量监控,当残差收敛到一定程度后,还要看进出口流量是否稳定平衡,才可确定收敛与否(翼型计算时要监控升阻力的平衡)。
残差在较高位震荡,需要检查边界条件是否合理,其次检查初始条件是否合理,必如激波的流场,初始条件的不合适会造成流场的振荡。有时流场可能有分离或者回流,这本身是非定常现象,计算时残差会在一定程度上发生振荡,这是如果进出口流量是否达到稳定平衡,也可以认为流场收敛。另外fluent缺省采用多重网格,在计算后期将多从网格设置为0可以避免一些波长的残差在细网格上发生震荡.
5udf编译的经验总结1)安装vc时候,只要选择了“环境变量”这一项,就不需要在“我的电脑 > 属性 > 高级 > 环境变量”中
更改“include”“lib”“path”变量的值,保持默认状态即可;
2)如果是fluent6.1以上的版本,读入你的case文件,只要在define->user-defined->functions->complied中,
add你的udf源文件(*.c)和“udf.h”头文件,然后确定用户共享库(library name)的名称,按“build”,就
相当于nmake用户共享库;在这一步中常出现的错误:
(a)(system "move user_nt.udf libudf\ntx86\2d")0
(system "copy C:\Fluent.Inc\fluent6.1.22\src\makefile_nt.udf libudf\ntx86\2d\makefile")已复制 1 个文件。
0
(chdir "libudf")()
(chdir "ntx86\2d")()
'nmake' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'nmake' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Done.
而点击load时则出现不可编译的错误:
Opening library "libudf"...
Error: open_udf_library: 系统找不到指定的文件。
Error Object: ()
原因:没有安装vc或者没有选择环境变量。
解决方法:安装vc,并选择环境变量;没有正确设置环境变量的,按以下方法:
. 在我的电脑 > 属性 > 高级 > 环境变量中设置“include”“lib”“path”变量的值,
. include:D:\Program Files\Microsoft Visual Studio .NET\Vc7\include\
. lib:D:\Program Files\Microsoft Visual Studio .NET\Vc7\lib\
. 找到Microsoft Visual Studio .NET\Vc7\bin\cl.exe的动态链接库mspdb70.dll, 将mspdb70.dll的
路径加入到path的值。
cl.exe 是 the Microsoft Visual Studio的编辑执行文件,只要正确设置环境变量后,你才能看到以下信息:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
usage: cl [ option... ] filename... [ /link linkoption...
(b)(system "move user_nt.udf libudf\ntx86\3d")0
(system "copy C:\fluent.inc\fluent6.1\src\makefile_nt.udf libudf\ntx86\3d\makefile")已复制 1 个文件。
0
(chdir "libudf")()
(chdir "ntx86\3d")()
udf.c
# Generating udf_names.c because of makefile udf.obj
udf_names.c
udf_names.c(7) : error C2059: syntax error : '}'
udf_names.c(8) : warning C4034: sizeof returns 0
我在c里调试已经通过了,但是在fluent编译时出现问题,我该怎么调试呀?
Done.
解决方法:找到一个带udf的例题,如果udf能正确运行,将该例题的udf源文件example.c另存为一个新文件;
然后,将上面的内容全部删除,将你编写的udf源文件的内容copy到新文件中去,存储这个新文件后,
最后编译和创建用户共享库(build),就不会出现上述问题了。
原因:可能是自己编写udf源文件的模板不对,具体原因我也不太清楚,请大家指教了。
3)然后在define->user-defined->functions->complied中按“load”,即连接共享库到fluent可执行文件中
相关标签搜索:fluent培训笔记:核心关系定义 Fluent培训 Fluent流体培训 Fluent软件培训 fluent技术教程 fluent在线视频教程 fluent资料下载 fluent分析理论 fluent化学反应 fluent软件下载 UDF编程代做 Fluent、CFX流体分析 HFSS电磁分析