finish16 UDF第五到十章Word文件下载.docx

上传人:b****8 文档编号:22532103 上传时间:2023-02-04 格式:DOCX 页数:113 大小:543.96KB
下载 相关 举报
finish16 UDF第五到十章Word文件下载.docx_第1页
第1页 / 共113页
finish16 UDF第五到十章Word文件下载.docx_第2页
第2页 / 共113页
finish16 UDF第五到十章Word文件下载.docx_第3页
第3页 / 共113页
finish16 UDF第五到十章Word文件下载.docx_第4页
第4页 / 共113页
finish16 UDF第五到十章Word文件下载.docx_第5页
第5页 / 共113页
点击查看更多>>
下载资源
资源描述

finish16 UDF第五到十章Word文件下载.docx

《finish16 UDF第五到十章Word文件下载.docx》由会员分享,可在线阅读,更多相关《finish16 UDF第五到十章Word文件下载.docx(113页珍藏版)》请在冰豆网上搜索。

finish16 UDF第五到十章Word文件下载.docx

在udf.h文件中包含了宏的定义和这章中所用到的大部分宏文件和它的说明。

因此如果在你的原程序中包含了udf.h文件,那么也就包含了各种的求解器读写文件了。

(.h文件)。

下面列出了一些使用预先设计的宏来读写数据类型:

——溶液变量及它们的组合变量(速度,温度,湍流量等)

——几何变量(坐标,面积,体积等)

——网格和节点变量(节点速度等)

——材料性质变量(密度,粘度,导电性等)

——分散相模拟变量。

Foralltypesofdataexceptspecificheat,theword\access"

referstoreadingandwriting

data.Inthecaseofspecificheat,however,datacanbereadbutcannotbemodified.

Inthefollowingsections,eachmacroislistedwithitsarguments,argumenttypes,and

returnedvalue.Argumentsbelongtothefollowingdatatypes:

cell_tccellidentifier

face_tffaceidentifier

Thread*tpointertoathread

Thread**ptpointertoanarrayofphasethreads

Intiintegerindex

Node*nodepointertoanode

Argumentsareeitherinputstoafunction,orareoutputs.Eachmacroreturnsavalue,

whicheitherisoutputbacktothesolver(asanargument),orisavailableforassignment

inyourfunction.

对于除了指定的热量以外的所有数据而言,存取这个词还指读写数据。

对于指定的的热量的数据是只能读不能改的。

在下面章节中列出了每一个宏的包含的参数,参数的类型和返回值。

其中参数属于下面的数据类型。

cell_tc单元格标识符

face_t面积标识符

Thread*t线指示器

Thread**pt象限矩阵指示器

IntI整数

Node*node节点指示器

参数既不是方程的输入也不是方程的输出。

每一个宏返回一个值,这个值要么作为一个参数以输出值的形式返回求解器,要么是你方程中可用参数。

Forexample,themacroC_T

realtemp;

temp=C_T(c,t);

hastwoarguments,cellidentifiercandthreadpointert.Theseargumentsarepassed

fromtheFLUENTsolvertothefunction.CTreturnstherealvalueoftemperature,

whichcanthenbeassignedtoavariableinyourUDF(tempinthisexample).

例如宏C_T

C_T有两个参数,单元标识符C和线指示器t。

这些参数从FLUENT求解器中返回到方程中。

C_T返回一个温度的实数值,这个值能够分配到的你的UDF变量中去。

(比如这个例子中的temp)

C_CENTROID(x,c,t);

hasthreearguments:

x,c,andt.Inthiscasethecellidentifiercandthreadpointer

tareinputarguments,whilethearrayx(thecellcentroid)isoutputtotheFLUENT

solverasanargument.

C_CENTROID(x,c,t)有三个参数,x,c,t。

在这里单元标识符C和线指示器是输入参数,而矩阵x(单元格的质心)是以参数形式输出到FLUENT求解器中的。

5.2CellMacros

Themacroslistedinthissectionarerealvariablesreturnedbythesolver,andarede_ned

onacell.Thesecellvariablesareavailableinboththesegregatedandthecoupledsolvers.

Definitionsforthesecellmacroscanbefoundinthereferencedheaderfiles(e.g.,mem.h).

5.2单元格宏

这章所列出的宏是由求解器返回的实数变量,并且这些变量都是定义在一个单元格中的。

这些单元格变量在单独的或是联合的求解器中都能得到。

(segregatedandthecoupledsolvers.)

这些单元格宏的定义在相关的扩展名为(.h)的文件中可以得到。

(例如mem.h等)

5.2.1MacrosforAccessingFlowVariables

MacrosforaccessingflowvariablesinFLUENTareshowninTable5.2.1.Notethatthe

G,RG,M1,andM2suffixesthatareshownforthecelltemperaturemacro(CT)can

beappliedtoallofthesolvervariablemacroslistedinTable5.2.1withtheexceptionof

cellpressure(CP).Thesesuffixescorrespondtogradientvector,reconstructiongradient

vector,previoustimestep,and2ndprevioustimestep,respectively.Inthecaseofcell

pressure,thegradientvectorandcomponentsarederivedusingCDPinsteadofCPG.A

descriptionofeachsuffixanditsusageispresentedinthesectionsbelow.

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.h

C_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)VectorsandComponents

YoucanaddthetheGsuffixtoyourmacrotoaccessthegradient(G)vectorofavariable

quantity.Forexample,

C_T_G(c,t);

/*returnsthecelltemperaturegradientvector.*/

returnsthetemperaturegradientvector.Notethatgradientvariablesareavailableonly

whentheequationforthatvariableisbeingsolved.Forexample,ifyouaredefining

asourcetermforenergy,yourUDFcanaccessthecelltemperaturegradient(using

CTG),butitcan'

tgetaccesstothex-velocitygradient(usingCUG).Therefore,if

youaresettingupauser-definedscalartransportequation,somegradientsmaynotbe

available.Thisisbecausethesolvercontinuallyremovesfrommemorydatathatitdoesn'

t

need.Youcanpreventthesolverfromfreeingupmemorybyissuingthetextcommand

solve/set/expert,andthenansweringyestothequestion,Keeptemporarysolver

memoryfrombeingfreed?

.Ifyoudothis,allofthegradientdataareretained,but

thecalculationrequiresmorememorytorun.

读写梯度矢量和其分量

你可以在你的宏中加入下标_G来得到梯度矢量和它的分量,例如:

/*返回单元格的温度梯度矢量.*/

注意只有当已经求解出包含这个变量的方程时才能得到梯度变量。

例如如果你定义了一个关于能量的原程序,那么你的UDF可以读写单元格的温度梯度(使用C_T_G)

但是你却不能读写X方向的速度分量(使用C_U_G)。

而且,如果你建立了一个由使用者确定的方式转移方程,那么你就不能得到一部分的梯度了。

这是因为求解器不断的移走它不需要的数据。

你可以使用下面的方法来阻止存储器释放记忆:

发出文本命令save/set/expert,然后对计算机提出的“是否阻止暂时的求解器记忆释放”这一提问回答“是”。

按照这种做法就可以保留所有的梯度数据,但是这种计算需要更多的内存。

Youcanaccessacomponentofagradientvectorbyspecifyingitasanargumentinthe

gradientvectorcall(0forthexcomponent;

1fory;

and2forz).Forexample,

C_T_G(c,t)[0];

/*returnsthex-componentofthecelltemperature*/

/*gradientvector*/

returnsthexcomponentofthetemperaturegradientvector.NotethatinTable5.2.1,

thegradientandcomponentmacrosareshownonlyfortemperaturebutcanbeextended

toallofthevariablesexceptpressure.YoumustuseCDPtoaccessthecellpressure

gradientvectorandcomponents,asshowninTable5.2.1.

在调用梯度矢量时把某一分量作为参数,这样就可以得到梯度分量了,(参数0代表X方向的分量,1代表Y方向的分量,2代表Z方向的分量)例如:

/*返回温度梯度X方向的分量*/

注意在表5.2.1中虽然只列出了温度梯度和其分量求解的宏,但是却可以扩展到除了压力以外的所有变量中去,对于压力你只能按照表5.2.1中的方法使用C_DP来得到压力梯度和其分量。

AccessingReconstructionGradient(RG)Vectorsand

Components

Inthesamewayasthegradient,youcanaddtheRGsu_xtoyourmacrotoaccessthe

reconstructiongradient(RG)vectorandcomponentsofavariablequantity.Byspecify-

ingtheappropriateinteger(0forthexcomponent;

and2forz)asanargument,

youcanobtainthedesiredvectorcomponent.Reconstructiongradientsaretypically

usedwhenyouwanttoimplementyourowninterpolationscheme.Reconstructiongra-

dientandcomponentmacrosareshownonlyfortemperatureinTable5.2.1,butcan

beextendedtoallofthevariables.NotethatRGvariables,likegradientvariables,are

availableonlywhentheequationforthatvariableisbeingsolved.

读写改造过的梯度矢量和其分量

和梯度一样的方式,你可以通过加RG的下标在你的宏中来得到梯度向量和其分量。

通过使用恰当的整数作为参数来获得想要的矢量分量。

(参数0代表X方向的分量,1代表Y方向的分量,2代表Z方向的分量)当你完成你自己的插补计划时可以使用改造过的梯度。

改造过的温度梯度和其分量在表5.2.1中列出了,但是可以推广到所有的变量。

注意改造过的梯度矢量和梯度矢量一样都只有在梯度方程被求解出来时才可以得到。

AccessingPreviousTimeSteps

TheM1suffixcanbegenerallyappliedtothemacrosinTable5.2.1toallowaccesstothevalueofthevariableattheprevioustimestep(i.e.,t-_t).Thesedatamaybeuseful

inunsteadysimulations.Forexample,

C_T_M1(c,t);

/*returnsvalueofcelltemperatureatprevioustimestep*/

returnsthevalueofthecelltemperatureattheprevioustimestep.

TheM2suffixcanbegenerallyappliedtothemacrosinTable5.2.1toallowaccessto

thevalueofthevariableatthetimestepbeforethepreviousone(i.e.,t-2_t).These

datamaybeusefulinunsteadysimulations.Previoustimestepmacrosareshownonly

fortemperatureinTable5.2.1,butcanbeextendedtoallofthevariables.

读写前一步长下的时间

在表5.2.1里的宏中加入下标_M1就可以得到前一次步长时间下(t-⊿t)的变量的值。

得到的这些数据可以在不稳定的模拟中使用。

例如:

/*返回前一步时间下的单元格温度的值*/

若在表5.2.1里宏的后面加上下标M2就可以得到前两次步长下的时间(t-2⊿t)。

这些数据可用与不稳定的模拟计算中。

在表5.2.1中仅列出了温度的前一次步长的求法,但是可以扩展到其它的变量中去。

5.2.2MacrosforAccessingDerivatives

ThemacroslistedinTable5.2.2canbeusedtoaccessvelocityderivativevariables.

Table5.2.2:

DerivativeMacrosinmem.h

5.2.2读写导数的宏

在表5.2.2中列出来的宏可以用于读写由速度导数。

表5.2.2

名称(参数)

参数类型

返回值

CDUDX(c,t)

celltc,Thread*t

velocityderivative

CDUDY(c,t)

CDUDZ(c,t)

CDVDX(c,t)

CDVDY(c,t)

CDVDZ(c,t)

CDWDX(c,t)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 初中作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1