fluent udf中文帮助
fluent udf中文帮助本章简要地介绍了用户自定义函数(UDF)及其在 Fluent 中的用法。在 1.1 到 1.6 节中我们会介绍一下什么是 UDF;如何使用 UDF,以及为什么要使用 UDF,Makefile udfmakefile udf2DEF INE PROPERTYDEFINE DRIFT DI AM基础输运方程单元()面,区域()和线(操作求解器数据运仃输运方程求解器建立在有限容积法的基础上,这种方法将计算域离散为有限数目的控制体或是单元。网格单元是中基本的计算单元,这些单元的守恒特性必须保证。也就是说普通输运方程,例如质量,动量,能量方程的积分形式可以应用到锊个单元:/pad+,p·dA=中 TODa+/,SwAunsteadyeonv画 ctiondiffusiongeneration此处,是描述普通输运数量的变量()根据所求解的输运方程它可取不同的值。下面是在输运方程中可求解的的子集E守恒与否需要知道通过单元边界的通量。因此,需计算出单元和面上的属性值(单元()面,区域()和线(单元和单元面被组合为一些区域(),这些区域规定了计算域(例如,入口,出口,壁面)的物理组成)。当用户使用的时,用户的叮调用流体区域或是边界区域的计算变量(需要获得适当的变量,比如说是区域参考)和单元,以便标定各个单元。区域)是一群单元或单元面的集合,它可以由模型和区域的物理特征(比如入∏,出∏,壁面,流伓区域)来标定。例如,·些被指定为面域()的单元面可以被指定为类型,由此,速度也就可指定了。线()是据结构的内部名称,可被用来指定一个区域结构可作为数据储存器米使用,这些数据对于它所表示的单元和面来说是公用的(操作多数的任务需要在一个线的所有单元和面上重复执行。比如,定义一个自定义轮廓函数()则会对一个面线上)的所有单元和面进行循环。为了用户方使向用户提供了一些循环宏工具(来执行对单元,面,节点()和线()的重复操作例如,单元循环宏()可以对给定单元线上的所有单元进行循环操作()。而面循环宏()则可调用所有给定面线()的面。提供的循环工具请见在某些情况下需要对某个变量操作,而这个变量恰恰又不能直接被当作变量来传递调用。比如,如果用户使用宏来定义,求解器将不会向它传递指针。这种情况下,用户函数需要用提供的宏来调用线指针(见求解器数据通过用户界面将函数(它已被编译和连接)连接到求解器上可实现调用求解器变量。旦和求解器正确连接,无论何时,函数都可调用求解器数据。这些数据将会被作为用户变量自动地传递给注意,所有的求解器变量,不管是求解器传递给的,还是传递给求解器的,都使用单位。运行将会在侦定时刻被调用。但是,也可对它们进行异步执行,使用宏,还可在需要时()执行。详情请见解释和编译的比较编译和的构建方式一样。脚木被用来调用编译器来构建一个当地目标代码库()。目标代码库包含高级语言源代码的机器语言翻译。代码库在运行时由“动态加载”()过程连接到上。连接后,与共亨库的联系()将会被保存在用户的文件中这样,当以后再读入文件时,此编译库将会与自动连接。这些库是针对计算机的体系结构和·定版本的使用的。所以,当更新,或计算机操作系统改变,或是在不同类型的机器上运行时,这些库必须重新构建而解释则是在运行吋,直接从语言源代码编译和装载()。在运行中,源代码被编译为中介的独立于物理结构的使用预处理程序的机器代码(被调用时,机器代码由內部仿真器(),或注释器)执行。注释器不具备标准编译器的所有功能;它不支持语言的某些原理。所以,在使用吋,有语言限制(见)。例如,不能够通过废弃结构()来获得数据。要获得数据结构,必须使用由提供的预定义宏。另一个例子是不能识别指针数组。这些功能必须由来执行。编译后,用户的函数名称和内容将会被储存在文件中。函数将会在读入文件时被自动编译。独立于物理结构的代码的外层()叮能会导致执行错误(),但却可使共亨不同的物理结构,操作系统,和版本。如果运行速度较慢,不用被调节就可以编译代码的形式(运行中的和请见选择或是时,注意以下内容:对其它平台是便捷的(可作为()来运行不需编译器。慢需要较多的代码。在使用语言上有限制。不能与编译系统或用户库()连接。只能使用预定义宏来获得结构中的数据。(见和)比运行快在使用语言上不存在限制可用任何编译器编译。能调用以其他语言编写的函数机器物理结构需要用户建立的每个版本的共享库(如果包含有注释器()不能处理得语言元素,则不能作为)运行总的来说,当决定使用那种类型的时使用作为简单的函数使用作为复杂的函数,这些函数对有较大要求(例如每次运行时,在每个单元上均须调用的属性需要使用编译库一个例子编辑代码,并且在用户的模型中有效使用它,须遵循以卜七个基木步骤定义用户模型。编制语言源代码。运行读入,并设置文件。编译或注释()语言源代码。在中激活开始计算。分析计算结果,并与期望值比较。在开始解决问题前,用户必须使用定义希望解决的问题()。例如,加入用户希望使用来定义一个用户化的边界条件()。用户首先需要定义一系列数学方程来描述这个条件。接下来用户需要将这些数学方程(概念设计)用语言写成一个函数)。用户可用文本编辑器米完成这一步。以为后缀名米把这个文件保存在工作路径下。写完语言函数后,用户即可运行并且读入或设置文件()。对C语言源代码进行注释,编译,和调试),并在中激活用户函数()。最后,运行计算(),分析结果并与期望值比较。()。根据用户对结果的分析,可将上述整个过程重复几次。具体如下。定义用户模型生成和使用的第一步是定义用户的模型方程。如图所示的涡轮叶片。模拟叶片冑围的流玚使用了非结构化网格。计算域由底端的周期性边界()延伸到顶端的相同部分(),速度入口在左边,压力出口在右边。Irvine ua〔15512405危e893nde5)文中对入口速度为常数分布和抛物线分布的流场进行了比较。分段线性的分布可由边界场选项得到(),而多项式分布则只能使用用户自定义函数得到。进口速度为常数()的结果如图1.7.2和1.7.3所示。当流动沿着涡轮叶片进行时,初始速度场被改变了。了4101265105 tces. 89E.11电+01Turbine vane〔1551cl,2405他e,的93nde引假定现在要设涡轮叶片入∏速度不是常数值,其分布如下2un=20-2000745士变量在入口中心处为0.0,在入口上部和下部则分别为而入口中心处的速度为边界上为0。用户可用描述这一分布,并将它应运到模型中来解决这类问题。编制语言源代码。选定方程定义后,用户可用任意文本编辑器来书写C语言代码。以扩展名保存源代码文件保存到工作路径下。关于的书写请参考下面是一个怎样在中应用方程的例子。的功能由主要的宏()米定义。此处,宏用来表示下面的代码旨在给求解器捉供边界的轮廓信息。书中将在以后部分讨论其它的宏宏的第一个变量用来定义速度入口面板中的函数。名称可任意指定。在给定的边界区域上的所有单元面()上将会使用函数的这个方程。当用户在用户界面选定作为边界条件时,将会自动定义线()。下标由应用程序自动定义。中被用来形成对边界区域上所有单元面的循环()。对于每个面,面的质心()的坐标可由宏来获得。抛物线方程中用到了坐标,速度值通过宏来返回给面。宏和宏都是提供的宏。详情请见5读入,并设置文件建立后,用户开始设置在工作路径下启动读入(或设置)文件(如果文件以前设置过,请确认它是否被保存在了工作路径编详或注释()语言源代码这部分将例中的源代码作为来编译。注意,这个例子不可应用于的并行网络()。完整的编译和连接请见确认的文件(如果以前设置过)和语言源代码在工作路径卜。用面板编译例如, ud fexamp leInterpreted UDFSSource file rlameample+CCPP Command nameStack sizeH Display Assembly ListingH Use Contributed CPPCompilecospHelp在下键入语言源代码文件例如, udfexample.c。如果用户源代码不在目前工作路径下,则在编译,需在面板中间如文件完整的路径。在栏里,选择预处理器。省设置为如果用户函数的局部变量数目大于将会导致堆栈溢出。这种情況下,应将设置为比局部变量大的数
- 2020-11-04下载
- 积分:1
华中8型系统二次开发手册
华中数控8型系统二次开发文档,使用语言C++或C#,实测可用牛屮型数控系统二次开发手册报警简介接口列表升级备份简介接口列表事件简介接口列表代码程序管理简介接口列表网络简介接凵列表牛屮型数控系统二次开发手册修订说明新增报警、升级备份、网络接口牛屮型数控系统二次开发手册二次开发简介通过二次开发,用户可以仅关注需要的东西,通过接口定制软件功能,而不用了解底层功能到底如何实现,能够加快开发进度,提高开发效率。二次开发流程华中型数控系统二次开发软件提供接口,能够采集并设置下位机数据,从而实现对下位机的控制。用户只需要自己开发自己关注的功能界面,然后通过调用封装好的二次开发接口,来调用底层数据,调用成功后将值返回给用户。牛屮型数控系统二次开发手册网络版开发网络版开发,可以脱离下位机,比如开发的软件可以独立到用户的电脑,实现上位机和下位机的个相互独立的部分之间通信。电脑上运行的客户端二次开发软件可以采集或者设置到卜位机的数据如下所小运行在用户电脑上,用户可以自己选择要连接的下位机,连接成功后,可以实现对下位机的实时监控等架作。● Net Server楼回自动co连按2014-061214:35:37信息奇存器变量l参数升级备分轴信息机实买尔机床指令没置是示列信息X284340毫米4916毫米F11Y376080享米-37.6271米G200毫米∠17.8500毫米17.8500亳米7.8500毫米00Q度0.000加工程忘名图1 NetServer运行界面牛屮型数控系统二次开发手册软件包配置及使用日前针对的主流开发平台和,提供了不同的二次开发软件包软件包的介绍对于开发,根据开发环境是或者分别提供两种不冋的软件包。只体如下图所小表1软件包列表开发环境SDK包文件动态Lib库文件( HncNetDillib、 HncNetdildl)C++nclude头文件文件夹WindowsHncApi.CS接口文件HncNetdlldl!动态链接库文件Windows下软件包配置及使用在平台下进行的二次开发,需将的二次开发提供的相关软件包文什加入自己的工程文件夹中。下面就分别介绍中的使用环境下开发库、开发库的配置及使用。二次开发库配置配置开发环境步骤:启动新建一个应用程序工程在工程目录下新建一个目录,将二次开发包中的平台的库文件拷贝到新建的目录下将二次开发包中的头文件目录拷贝到工程目录下右键点击⊥程名称,在弹出菜单中选择属性,弹山属性页;选择酉置属性,,常规,在右边附加包含目录中加入头文件路径。牛屮型数控系统二次开发手册++Demo届性页BC.动D)平含活M2笆运蛋〔D通用属性# USInc到式仨三格式用于“端国实”的程序数兵宇(ZI公共语言运行时支持VC-+三录耿消显示疟动版权标志言等级esCw3优化多处理器编译预处理器为编望序列表用 Unicode代巧生成图2配置 include路径选择酉置属性,,预处理器,在右边预处理定义添加宏定义置C:动 Chur台P:活定in37)「配管理()通卫星性预处理定义WIN52-WINDoWHNC DLL IMP A pEBUG: 9%(Preprace!取所有预处理器宇义否忽暗标唯包含路位否页处西到文件页处理取消显示行号否保密注选择配置属性,链接器,输入,在右边附加依赖项中输入,库文件所在路径在忽略特定目录库中输入C+Deme性页(C)后动 Debue)≌(:活动ir32配置兰理稀p通用唐性加农酸项lib/HncNtDIl lib: %(Additional Dcps置属性忽暗所有默认库常规忽路持正默认库c凵 BCD. LIl调过vC++E录标模块忝序哉入托曾资源文件穿规强制符号引用加载的DLL穿规调式图3配置lib路径牛屮型数控系统二次开发手册在生成目标文件所在的文件夹中,加入文件在应用程序文件中加入凼数库头文件的声明,例如至此,用户就可以在中调用网络模块的函数,开始编写应用程序。具体代码可参见以及二次开发范例。二次开发库配置配置开发环境步骤启动新建一个应用程序工程在工程日录下新增文件将该文件添加至工程,并修改域名使与该程序致ec机!盘G),t计!mn年,tm分‖索dea文件编(E)打开新建女件beImu C#demo2014/522151g文件灾J Debug2014/52316:38文件灾o Debuy2014/5/2315:18文件灾U obj2014/5231510文件lAramanI Properties2014/52315:10文件夹CclbFur_LS2014/5/26 10: 27 VisUal C# SuLIL1 cema C++kc demo s2014/528 14: 32 Visual C+ Project5K8C++De吧 emo scf2014/512614:02 SQL Server Com42,530K82014/5/23 10: 38 Microsoft vis Ia-g Form Maincs2014/5/26 13: 47 Visual C#Sourc.2014(5/23 16: 36 Visi al Cf Soure.13 KR二++602014/5/23 16: 36 NE Managed5K82014/5 28 14: 39 Visual C# Sourc.142 KBD U cnum EXCITICN2014/5/26 9: 51 Visual C+ SourC.bs 9 exteuLliur4 PeNter. D2014/5/265: 52 Visual C+ Sourc.5K8图4添加cs文件将复制到目标文件夹北比,m,bm小Db4提 Debug文件(F编辑(E童看织包含到库平≡新∨出I demo_C*修改日期类丑214/5/2613:47立用程序86KB2J14/5/ 2613: 4/ Program Debug100 KBdemo vshost.ex2014/5/2814:29用程序12 KBdemo, shost. exe. manifest221031722:39 MANIFEST文件E KBPerenan2014/5/2811;34用程序扩晨397KB+-DemD3t3山AA⊥I牛屮型数控系统二次开发手册图5添加d文件至此,用户就可以在中调用网络模块的函数,开始编写应用程序。具体代码可参见以及二次开发范例。二次开发接口范例介绍二次开发范例为例,该次开发程序连接下位机后可实时显示:坐标值进给速度主轴速度;进给修条、主轴修条、快移修条:代码当前运行行号,当前运行代码路径及名称;主轴功率、主轴负荷;下位机当前状态;当前程序运行时间;历史报警个数:报警详细信息;从上位杋加载代码到下位机;获取宏变量值。具体功能实现,可参见代码。配置成功后,运行程序,生成界面。红栏状态主接坐标显示生标佰主轴久苛z丛柝坐标值运行时时间Stat进给速度坐标值警历史个数tatC主袖束度斗标值振警详细言息进给修条坐标值仅移诊录生标佰物修杀坐标值当前运行行号坐标直当前运行程序乞序名方克里值选督程尸乞图6运行界面点击连接后,界面显示当前设备运行状态。若连接成功,将显示网络已连接。点击获取宏变量值,显示当前坐标值。选择程序名,输入电脑上待加载的代码路径后,点击确认,将从电脑加载代码到设备。如下所示。
- 2020-12-07下载
- 积分:1