您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 如何利用FLUENT二次开发-(1)
利用FLUENT二次开发(UDF)辅助科学计算龚磊2007.4.26引言:•随着计算机硬件的发展及CFD软件的成熟,采用CFD商业软件进行工程计算及科研辅助日趋流行.相比传统的编程,CFD软件计算具有建模快,收敛性好,移植性强等优点,因而可以节省出更多时间花在问题本质上,而不是计算实现上.•CFD软件使用没有降低对流体基本知识的掌握,只是自己不用离散方程了,数学上的要求降低了。FLUENT应用范围•航空•航天•船舶•化工•汽车•能源•生物•其它FLUENT的应用范围“相当广泛”2.能源4.船舶1.航空3.汽车FLUENT二次开发-UDF•UDF(用户自定义程序)是FLUENT提供的二次开发接口,通过大量的宏定义来实现用户和SOLVER中数据的交互的一种方法,来增强FLUENT的功能及模型的应用范围:比如边界条件,修改控制方程,求解自定义方程等等.•采用UDF接口我们可以定义求解UDS(用户自定义标量方程)UDS理论及实现标量输运方程:非定常项对流项扩散项源项可通过UDF修改DEFINE_UDS_UNSTEADY可通过UDF修改DEFINE_UDS_FLUX扩散系数可修改(材料面板直接或UDF修改)可通过UDF修改DEFINE_SOURCE()iiiiuStxxx举例实现:双电层理论求解•双电层理论的控制方程(P-N-P方程):2()zenn()0bnzenDnDntkTV解决方案:•采用三个UDS方程,分别对于以上三个方程,三个标量方程中的在这里分别代表电位势,正离子浓度,负离子浓度.nn具体步骤一:方程规范化•将双电层的三个方程分别与标志输运方程对比:2()0zenn()iiiiuStxxx源项扩散项对流项非定常项扩散系数为1DEFINE_SOURCE来定义源项具体步骤一:方程规范化•正负离子方程与标准输运方程对比()iiiiuStxxx源项扩散项对流项非定常项()()bnzenDnDntkTVDEFINE_UDS_UNSTEADY来定义DEFINE_UDS_FLUX来定义扩散系数为D具体步骤二:编写UDF文件•取名为uds-flux.c,内容如:•#include“udf.h”•DEFINE_UDS_FLUX(UDS0_FLUX,f,t,i){…}•DEFINE_UDS_FLUX(UDS1_FLUX,f,t,i){…}•DEFINE_SOURCE(POSSION_SOURCE,c,t,dS,eqn){…}•DEFINE_UDS_UNSTEADY(uds0_unsteady,c,t,i,apu,su){…}•DEFINE_UDS_UNSTEADY(uds0_unsteady,c,t,i,apu,su){…}•…………具体步骤三:FLUENT设置•1,启动FLUENT,读入CAS文件•2,编译编写好的UDF文件uds-flux.c•菜单:defineuser-definedfunctionscomplied•先点击build编译,再点击load读入库.••3:添加三个UDS方程:•菜单:defineuser-definedscalars•默认为0个,翻动上下按钮添加UDS数目到1••UDSindix指UDS的编号,从0开始,UDS0对应第一个UDS方程,以此类推.设定求解区域:可选择在流体域或固体域或全部区域求解,本问题设定在流体域求解设定标量方程中的对流项,默认为质量流量.这里,我们设定第一个UDS为负离子方程,所以从下拉菜单中选择UDF编写的负离子对流项UDS0_FLUX•继续翻动numberofuser-definedscalars右边的上下按钮添加第二个UDS方程(正离子方程)•继续翻动numberofuser-definedscalars右边的上下按钮添加第三个UDS方程(电位势方程)注意设置正离子方程时,将UDSIndex调到其对应的Index=1正离子方程的自定义对流项UDS1_FLUX电位势方程没有对流项,所以选择none•点击OK,系统会弹出对话筐显示UDS已经添加成功,并提示到材料面板设置UDS扩散系数D.•再次点击OK确认.•转到材料面板,设置扩散系数D:•菜单:definematerials•弹出菜单如下:•点击UDSDiffusivity右边的Edit按钮,分别修改三个方程对应的扩散系数.•4:设置边界条件:UDS边界条件及添加源项•菜单:defineBoundaryConditions•源项fluid,点击set,弹出左边的面板.因为只有电位势方程有源项,所以点击userscalar2旁边的edit来添加源项.•添加源项个数为1,选择POSSION_SOURCE•边界条件wall/inlet/outlet……•Fluent内置的UDS边界条件有两种:第一类边界条件:给定标量值;第二类边界条件:给定流通量.如图电位势方程,给定了壁面zeta电位为25.7mv.正负离子在壁面无穿透,所以都给流通量为0•5:求解控制•菜单Solvecontrolssolution…选择要求解的控制方程,如下图只先求解电位势方程来进行电场及正负离子初始化.压松弛因子来保证收敛.一般正负离子及电位势方程压松弛因子都可设到0.9.差分格式,电位势方程可选二阶迎风以保证精度.•6:初始化,迭代求解.•菜单solveinitializeinitialize•solveIterate•至此,整个UDS设置求解流程已经完成,当然不同情况下略有不同,如选择了Unsteady求解器,添加UDS的时候弹出的菜单如下:前面定常求解器情况下该选项不存在相应的选择自定义的非定常项uds0_unsteadyCFD软件只是实现工具,深入理解所研究问题的本质才是根本.谢谢大家!
本文标题:如何利用FLUENT二次开发-(1)
链接地址:https://www.777doc.com/doc-4084159 .html