您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > fluentUDF第五章使用宏存取FLUENT解算器变量
第五章使用宏存取FLUENT解算器变量本章提供了可以存取FLUENT解算器中变量的预定义宏。5.1介绍5.2单元宏5.3面宏5.4几何图形宏5.5节点宏5.6多相宏5.7DPM宏5.8NOx宏5.1IntroductionFluentInc.hasprovidedyouwithasetofpredefinedfunctionsthatyoucanusetoaccessdatafromtheFLUENTsolver.Thesefunctionsareprimarilyimplementedinthecodeasmacros.Themacroslistedinthischapteraredefinedinheaderfilessuchasmem.h,metric.h,anddpm.h.Theudf.hfilecontainsdefinitionsforDEFINEmacros,aswellas#includedirectivesformostofthesolveraccessmacroheaderfilesfoundinthischapter.Therefore,includingudf.hinyoursourcecodefilewillalsoresultintheinclusionofsolveraccess.hfiles.Someexamplesofsolverdatayoucanaccessusingpredefinedmacrosare:_solutionvariablesandtheirderivatives(e.g.,velocity,temperature,turbulencequantities)_geometryvariables(e.g.,coordinates,areas,volumes)_gridandnodevariables(e.g.,nodevelocities)_materialpropertyvariables(e.g.,density,viscosity,conductivity)_discretephasemodelvariables5.1介绍Fluent公司提供了一系列预定义函数来从求解器中读写数据。这些函数以宏的形式存放在代码中。这章的所列出的宏是被定义在扩展名为.h文件里的。例如mem.h,metric.h,和dpm.h。在udf.h文件中包含了宏的定义和这章中所用到的大部分宏文件和它的说明。因此如果在你的原程序中包含了udf.h文件,那么也就包含了各种的求解器读写文件了。(.h文件)。下面列出了一些使用预先设计的宏来读写数据类型:——溶液变量及它们的组合变量(速度,温度,湍流量等)——几何变量(坐标,面积,体积等)——网格和节点变量(节点速度等)——材料性质变量(密度,粘度,导电性等)——分散相模拟变量。Foralltypesofdataexceptspecificheat,theword\accessreferstoreadingandwritingdata.Inthecaseofspecificheat,however,datacanbereadbutcannotbemodified.Inthefollowingsections,eachmacroislistedwithitsarguments,argumenttypes,andreturnedvalue.Argumentsbelongtothefollowingdatatypes:cell_tccellidentifierface_tffaceidentifierThread*tpointertoathreadThread**ptpointertoanarrayofphasethreadsIntiintegerindexNode*nodepointertoanodeArgumentsareeitherinputstoafunction,orareoutputs.Eachmacroreturnsavalue,whicheitherisoutputbacktothesolver(asanargument),orisavailableforassignmentinyourfunction.对于除了指定的热量以外的所有数据而言,存取这个词还指读写数据。对于指定的的热量的数据是只能读不能改的。在下面章节中列出了每一个宏的包含的参数,参数的类型和返回值。其中参数属于下面的数据类型。cell_tc单元格标识符face_t面积标识符Thread*t线指示器Thread**pt象限矩阵指示器IntI整数Node*node节点指示器参数既不是方程的输入也不是方程的输出。每一个宏返回一个值,这个值要么作为一个参数以输出值的形式返回求解器,要么是你方程中可用参数。Forexample,themacroC_Trealtemp;temp=C_T(c,t);hastwoarguments,cellidentifiercandthreadpointert.TheseargumentsarepassedfromtheFLUENTsolvertothefunction.CTreturnstherealvalueoftemperature,whichcanthenbeassignedtoavariableinyourUDF(tempinthisexample).例如宏C_Trealtemp;temp=C_T(c,t);C_T有两个参数,单元标识符C和线指示器t。这些参数从FLUENT求解器中返回到方程中。C_T返回一个温度的实数值,这个值能够分配到的你的UDF变量中去。(比如这个例子中的temp)C_CENTROID(x,c,t);hasthreearguments:x,c,andt.Inthiscasethecellidentifiercandthreadpointertareinputarguments,whilethearrayx(thecellcentroid)isoutputtotheFLUENTsolverasanargument.C_CENTROID(x,c,t)有三个参数,x,c,t。在这里单元标识符C和线指示器是输入参数,而矩阵x(单元格的质心)是以参数形式输出到FLUENT求解器中的。5.2CellMacrosThemacroslistedinthissectionarerealvariablesreturnedbythesolver,andarede_nedonacell.Thesecellvariablesareavailableinboththesegregatedandthecoupledsolvers.Definitionsforthesecellmacroscanbefoundinthereferencedheaderfiles(e.g.,mem.h).5.2单元格宏这章所列出的宏是由求解器返回的实数变量,并且这些变量都是定义在一个单元格中的。这些单元格变量在单独的或是联合的求解器中都能得到。(segregatedandthecoupledsolvers.)这些单元格宏的定义在相关的扩展名为(.h)的文件中可以得到。(例如mem.h等)5.2.1MacrosforAccessingFlowVariablesMacrosforaccessingflowvariablesinFLUENTareshowninTable5.2.1.NotethattheG,RG,M1,andM2suffixesthatareshownforthecelltemperaturemacro(CT)canbeappliedtoallofthesolvervariablemacroslistedinTable5.2.1withtheexceptionofcellpressure(CP).Thesesuffixescorrespondtogradientvector,reconstructiongradientvector,previoustimestep,and2ndprevioustimestep,respectively.Inthecaseofcellpressure,thegradientvectorandcomponentsarederivedusingCDPinsteadofCPG.Adescriptionofeachsuffixanditsusageispresentedinthesectionsbelow.5.2.1用来读写流体变量的宏。在FLUENT中可以用来读写流体变量的宏在表5.2.1中列出,注意加了_G,_RG,_M1,和_M2这些下标的单元格温度的宏可以应用于表5.2.1中的所有求解器的变量中,但是除了单元格压力(C-P)。这些下标分别表示的是矢量梯度,改造的矢量梯度,前一次的步长,和前两次的步长。而对于单元格压力,它的矢量梯度和相应的分量是使用C_DP得到的而不是C_P_G。每一个下标的描述和用法在下面介绍。表5.2.1:在mem.h文件中的流体变量宏名称(参数)参数类型返回值C_T(c,t)celltc,Thread*t温度C_T_G(c,t)celltc,Thread*t温度梯度矢量C_T_G(c,t)[i]celltc,Thread*t,inti温度梯度矢量的分量C_T_RG(c,t)celltc,Thread*t改造后的温度梯度矢量C_T_RG(c,t)[i]celltc,Thread*t,inti改造后的温度梯度矢量的分量C_T_M1(c,t)celltc,Thread*t温度的前一次步长C_T_M2(c,t)celltc,Thread*t温度的前二次步长C_P(c,t)celltc,Thread*t压力**C_DPinsgmem.hC_DP(c,t)celltc,Thread*t压力梯度矢量C_DP(c,t)[i]celltc,Thread*t,intI压力梯度矢量的分量C_U(c,t)celltc,Thread*tu方向的速度C_V(c,t)celltc,Thread*tv方向的速度C_W(c,t)celltc,Thread*tw方向的速度C_H(c,t)celltc,Thread*t焓C_YI(c,t,i)celltc,Thread*t,inti物质质量分数C_K(c,t)celltc,Thread*t湍流运动能C_D(c,t)celltc,Thread*t湍流运动能的分散速率C_O(c,t)celltc,Thread*t确定的分散速率AccessingGradient(G)VectorsandComponentsYoucanaddthetheGsuffixtoyourmacrotoaccessthegradient(G)vectorofavariablequantity.Forexample,C_T_G(c,t);/*returnsthecelltemperaturegradientvector.*/returnsthetemperaturegradientvector.Notethatgradientvariablesareavailableonlywhentheequationforthatvariableisbeingsolved.Forexample,ifyouaredefiningasourcetermforenergy,yourUDFcanaccessthecelltemperaturegradient(usingCTG),butitcan'tgetaccesstothex-velocitygradient(usingCUG).Therefore,ifyouaresettingupauser-definedscalartransportequation,somegradientsmaynotbeavailable.Thisisbecausethesolvercontinuallyremove
本文标题:fluentUDF第五章使用宏存取FLUENT解算器变量
链接地址:https://www.777doc.com/doc-2873948 .html