资源描述:
《fluent_udf_学习分享教学教案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、FluentSoftwareTrainingTRN-99-003UserDefinedFunctionsG1©FluentInc.2/20/01FluentSoftwareTrainingTRN-99-003IntroductionuWhatisaUserDefinedFunction?lAUDFisaroutine(programmedbytheuser)writteninCwhichcanbedynamicallylinkedwiththesolver.nStandardCfunctionsse.g.
2、,trigonometric,exponential,controlblocks,do-loops,filei/o,etc.nPre-DefinedMacrossAllowsaccesstofieldvariable,materialproperty,andcellgeometrydata.uWhybuildUDF’s?lStandardinterfacecannotbeprogrammedtoanticipateallneeds.nCustomizationofboundaryconditions,so
3、urceterms,reactionrates,materialproperties,etc.nAdjustfunctions(onceperiteration)nExecuteonDemandfunctionsnSolutionInitializationG2©FluentInc.2/20/01FluentSoftwareTrainingTRN-99-003UDFBasicsuUDF’sassignsvalues(e.g.,boundarydata,sourceterms)toindividualcel
4、lsandcellfacesinfluidandboundaryzones.lInaUDF,zonesarereferredtoasthreads.lAloopingmacroisusedtoaccessindividualcellsbelongingtoathread.ne.g.,aface-loopmacrovisits563facesonfacezone3(velocity-inlet).sPositionofeachfaceisavailabletocalculateandassignspatia
5、llyvaryingproperties.nThreadandvariablereferencesareautomaticallypassedtoUDFwhenassignedtoboundaryinGUI.uValuesreturnedtothesolverbyUDFsmustbeinSIunits.G3©FluentInc.2/20/01FluentSoftwareTrainingTRN-99-003UsingUDFsintheSolversuThebasicstepsforusingUDFsinFL
6、UENTareasfollows:STEP1:CreateafilecontainingtheUDFsourcecodeSTEP2:Startthesolverandreadinyourcase/datafilesSTEP3:InterpretorCompiletheUDFSTEP4:AssigntheUDFtotheappropriatevariableandzoneinBCpanel.STEP5:SettheUDFupdatefrequencyintheIteratepanelSTEP6:Runthe
7、calculationG4©FluentInc.2/20/01FluentSoftwareTrainingTRN-99-003Example:Non-UniformInletVelocityuAnon-uniforminletvelocityistobeimposedonthe2Dturbinevaneshownbelow.Thex-velocityvariationistobespecifiedas:u(y)=20[1-(y/0.0745)2]y=0G5©FluentInc.2/20/01FluentS
8、oftwareTrainingTRN-99-003Example:SourceCodeuTheDEFINE_PROFILEmacroallows#include"udf.h"thefunctioninlet_x_velocitytoDEFINE_PROFILE(inlet_x_velocity,thread,nv)bedefined.{floatx[3];/*thiswillholdthepositionlAllUDFsbeg