译自:Ansys_Fluent_UDF_Manual_2021R2 Part2
第1章:Fluent用户界面概念介绍
本章概述了在ANSYS Fluent中创建与用户定义函数相对应的用户界面的过程。
1.1.介绍
面向接口的用户定义函数是指对应于自定义图形用户界面的用户定义函数。它们提供了一个优势,即可以随时更改数据值,而无需重新编译。此外,构建一个与UDF相对应的抛光用户界面将在ANSYS Fluent和您的UDF之间创建一致的外观和感觉。本手册的这一部分将指导您使用Fluent创建自定义界面的过程,该界面允许您编辑和存储数据以供您的UDF日后使用。在您的界面上可用的可能数据类型包括整数、实数、布尔值(切换按钮)、字符串和列表。在本指南的这一部分中,将指导您创建具有这些功能的界面,并学习如何以您的UDF可以访问的方式保存它们的值。
创建自定义界面的基本方法是使用Fluent宏。宏是由ANSYS创建的方案构造,用于开发Fluent界面。宏在Fluent中有多种用途,包括使用PR变量(第691页)、创建接口元素(第699页)和从网格中收集信息。当您通读本指南的这一部分时,您将学习如何使用各种Fluent宏来构建定制的图形用户界面。
1.2.限制
这一部分是关于在Fluent中创建自己的界面所涉及的限制。
1.2.1.不能删除或覆盖读入Fluent的菜单项
需要注意的是,在Fluent功能区选项卡右侧添加了新菜单或菜单项的任何Scheme文件,一旦读入Fluent,就无法将其删除。此问题会导致对于不包含打开GUI的菜单项的方案文件不存在Scheme文件。如果您的Scheme文件没有将菜单项添加到您已经创建的菜单中,则您始终可以对Scheme文件进行更改并在再次读取之前将其保存。在这种情况下,您可以使用cx-show-panel(p.696)打开您在Fluent中读取的最新版本的GUI。如果您的Scheme文件确实包含一个菜单项来随意打开您的界面,则该菜单项一旦读入,就不能从Fluent中删除。
此外,不能通过两次读入同一文件来覆盖菜单项。如果您尝试对Scheme文件进行更改,然后再次读取它,您只会看到两个同名的菜单项,这两个菜单项引用了您已加载到Fluent中的两个版本的界面。由于具有相同名称的不同界面可能会很快造成混淆,因此建议您在尝试更改包括菜单项的Scheme文件以打开您的界面时,只需关闭并重新启动Fluent,即可从程序中删除您的界面的所有早期版本。有关将菜单或菜单项添加到Fluent功能区选项卡右侧的详细信息,请参见将菜单添加到功能区右侧(第717页)。
1.2.2.帮助按钮不可用
对话框中有一个内置的ANSYS帮助按钮,该按钮显示在界面底部。由于您正在创建的界面不是由Fluent注册的,因此帮助按钮将不起作用。如果单击“帮助”(Help),则会打开ANSYS帮助,并生成错误消息“找不到请求的页面”。
1.3.Scheme基础
Fluent中的GUI元素是在Scheme编程语言的实现中编写的。要将Scheme文件加载到FLUENT中,单击“File”,选择“Read子菜单”,然后选择Scheme.... Scheme语句在括号中编写,并且常见陈述在其他陈述中。Scheme中的注释行以半冒号开头,变量名称和Scheme命令不区分大小写。在本节中,您将了解一些基本方案陈述以及如何使用它们,因为您为您的UDF创建GUI。有关方案语言的更完整指南,请访问http:// www.scheme.com/tspl4/。
1.3.1.数据类型
Scheme允许使用许多重要的数据类型。本节提供的是Fluent允许您传递给您定义的函数的类型。
1.3.1.1. Boolean
1.3.1.2.整数
1.3.1.3.实数
1.3.1.4.字符
注意:尽管上面的例子证明了变量可以设置为字符值,但您通常只会处理字符本身,因为为只有1个字符的数据类型分配变量没有什么意义。
1.3.1.5.字符串
注意:虽然string-ref命令断言字符串从位置0开始,但string-length命令始终将字符串视为从位置1开始。这是有意义的,因为string-length为1的字符串在位置0有一个字符。
1.3.1.6.符号
1.3.1.7.配对和列表
1.3.2.重要的概念
在创建您自己的Fluent界面时,有许多Scheme概念是非常重要的。本节讨论您最有可能在本指南中的示例中看到并在构建您自己的界面时使用的那些概念。
1.3.2.1. Define
define语句用于在Scheme中创建新变量。
Scheme中的变量没有类型,而是返回值。返回值本身也有类型,但是使用变量名本身就像调用一个可以返回任何类型的值的函数。例如,上例中的变量isInt返回整数1。
Scheme变量在创建时不必使用值进行初始化。在上面的示例中,变量whoKnows为空,可以赋给任何类型的值。
1.3.2.2. Set!
1.3.2.3. Let
1.3.2.4. Lambda
1.3.2.5. If
1.3.2.6. Map
1.4. RP 变量
RP 变量是为在 Fluent 中使用而创建的变量,它提供了一种将数据从 GUI(在 Scheme 中)传递到已编译或解释的 UDF(在 C 中)的方法。 RP 变量可以从 GUI 和 UDF 访问。因此,要将数据从 GUI 传递到 UDF,您只需在 GUI 代码中为 RP 变量创建和赋值,然后在 UDF 代码中访问这些相同的变量。
1.4.1.创建 RP 变量
要在 Scheme 中创建新的 RP 变量,您必须使用宏 (rp-var-define)。例如,以下命令创建一个名为 myInt 的整数 RP 变量,默认值为 1。
注意:符号通常用作 Scheme 函数中的参数而不是字符串
在创建 RP 变量之前,最好先检查该名称的 RP 变量是否尚未定义。一种简单的方法是创建一个名为 make-new-rpvar 的函数,它会在创建之前通过该名称检查 RP 变量是否存在。下面的 make-new-rpvar 函数可以复制到您的 Scheme 文件中并用于确保您选择的名称的 RP 变量在创建之前不存在。
1.4.2.更改 RP 变量
为了从您的 Scheme GUI 更改 RP 变量,您必须使用 (rpsetvar) 宏。例如,如果要将在创建 RP 变量 (p. 725) 中创建的 myInt 变量更改为 3 而不是 1,则可以使用以下语句:
注意:您分配给现有 RP 变量的新值必须是最初声明的类型,否则您将收到错误消息。
(rpsetvar) 语句常用于 apply-cb 函数中,单击 OK 按钮时会调用该函数。这样,当您单击“OK”时,就会为 RP 变量设置新值,然后 UDF 可以在需要运行时访问新值.
1.4.3.在 GUI 中访问 RP 变量的值
通常需要访问GUI和UDF中的RP变量值。这对于在每次打开 GUI 时显示每个变量的现有值非常有用。通过这样做,您就可以在每次更改RP变量时知道它的现有值。要访问Scheme中的RP变量,必须使用(%rpgetvar)宏。此宏通常用于将局部变量的值设置为RP变量的当前值。例如,如果您有一个名为localInt的整数输入框和一个名为rpInt的整数RP变量,则可以使用以下语句将localInt的值设置为rpInt的值。
由于此语句旨在在您打开 GUI 时更新每个字段中的值,因此此类语句通常出现在 update-cb 函数中,每次打开 GUI 对话框或任务页面时都会调用该函数。
1.4.4.在 UDF 中访问 RP 变量的值
要访问要在 UDF 中使用的 RP 变量的值,请参阅Accessing a Scheme Variable in a UDF (p. 384)。
1.4.5.保存和加载 RP 变量
一旦创建了新的 RP 变量,它们的当前值将在每次保存案例文件时存储在案例文件中。在尝试从案例文件中加载 RP 变量值时,加载案例文件和Scheme文件的顺序无关紧要.如果在读取案例文件之前读取Scheme文件,将使用Scheme文件中指定的默认值创建 RP 变量。然后当读取案例文件时,这些值将被案例文件中的值覆盖。如果在 Scheme 文件之前读入案例文件,则会创建 RP 变量并将其设置为案例文件中指定的值。
当Scheme文件被读入时,当它识别到案例文件已经创建了这些RP变量时,它将忽略RP变量创建语句。
注意:为了确保您的 Scheme 文件能够识别案例文件何时创建了 RP 变量,请确保在创建 RP 变量时使用创建 RP 变量 (p. 725) 中定义的 Scheme 函数。
1.5. .fluent 文件
当 Fluent 首次启动时,它会在您的主文件夹(home folder)中查找名为 .fluent 的文件。如果它在您的主文件夹中找到 .fluent 文件,它会将其作为 Scheme 文件加载。就像在读取包含 UDF 的 case 文件时 UDF 会自动加载到 Fluent 中一样,Scheme 文件可以在每次程序启动时使用 .fluent 文件自动加载到 Fluent 中。 以下步骤将引导您完成创建和使用.fluent 文件。本示例中创建的特定 .fluent 文件加载到三个单独的示例 Scheme 文件中:Schemefile1.scm、Schemefile2.scm 和 Schemefile3.scm。
注意:Scheme 文件是按照它们在 .fluent 文件中请求的顺序读入 Fluent 的。因此,如果一个 Scheme 文件为在不同 Scheme 文档中定义的对话框创建了一个菜单项,您应该在读入为其创建菜单项的 Scheme 文件之前,请务必先读入定义对话框的 Scheme 文件。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...