表达式
在 Simcenter STAR-CCM+ 中,可以使用表达式定义属性值,表达式可通过函数语言(C 编程语言的子集)编写。表达式可以定义数学表达式或执行其他操作,例如,在模拟中从 XY 表对表格数据进行插值。
- 标识运算符和函数(例如,+、*、<、sin()、grad()、interpolateTable())
- 允许使用现有模拟对象(例如,场函数和报告)作为变量
有关详细信息,请参见表达式语法。
- 表达式的语法正确
- 表达式计算为由使用表达式的上下文确定的数据类型。
例如,如果使用表达式定义不是空间函数的标量,则表达式必须计算为单个标量值。如果计算为矢量或值的标量场,则表达式无效。
Simcenter STAR-CCM+ 提供了一个表达式编辑器,可以简化编写有效表达式的过程。有关详细信息和说明,请参见使用表达式编辑器。
立即检查属性中的表达式值
在属性中,如果值属性是表达式,编辑器将提供 i 按钮,单击此按钮可以查看相应表达式的计算值。为值函数输入表达式时(编辑此属性时),i 按钮也可用于对文本字段中的输入进行动态计算。计算结果显示在工具提示中。
此功能的运行方式如下:
- 如果当前属性的值是常数且未编辑,则 i 按钮不会显示。
- 如果表达式无效,则错误消息将替换工具提示中的计算值。
- 必须手动单击 i 按钮才能触发计算并在工具提示中显示结果。
此功能仅适用于值函数,如标量和矢量物理量以及坐标。它不适用于随空间变化的函数。
上下文和数据类型
根据表达式定义的对象,表达式必须计算为相应的数据类型。使用现有模拟对象作为变量时,考虑表达式定义何种类型的对象。由于只有场函数可以是空间函数,因此仅当表达式定义取决于空间的用户场函数时,才使用空间变量场函数作为变量。在所有其他情况下,使用空间不变量物理量作为变量。
上下文 | 数据类型 | ||
---|---|---|---|
常数输入 |
使用常数方法定义标量和矢量(例如,边界值、材料属性和运动设置)时(请参见标量和矢量分布),可以使用计算为空间不变量物理量的表达式。在此上下文中,“常数”表示在每个时间步(或迭代)保持恒定,因此表达式可能与时间相关。 根据值的类型,表达式必须计算为单个标量或矢量(而非标量或矢量场)。定义常数分布的表达式可以使用以下对象作为变量:
有关更多信息,请参见常数分布。 |
||
用户场函数 |
根据场函数的类型,表达式必须计算为标量、矢量或张量。定义场函数的表达式可以是空间函数或为空间不变量。可以使用以下对象作为变量:
有关更多信息,请参见创建用户自定义场函数。 |
||
表达式报告 |
在每个时间步,表达式必须计算为单个标量值。定义报告的表达式可以使用以下变量:
有关更多信息,请参见表达式报告。 |
||
参数 |
根据参数的类型,表达式必须计算为单个标量或矢量值(而非标量或矢量场)。定义参数的表达式只能使用其他参数作为变量。参数不能与时间相关。 |
||
坐标 |
坐标是由三个标量类型组成的复杂数据结构(表示为单个矢量值),每个标量类型都有自己的单位。坐标表达式必须计算为矢量值,并且可以使用由标量或矢量全局参数构建的表达式定义。 坐标值及其各自单位的含义在不同坐标系下显著不同。因此,更改坐标系时,表达式将在旧坐标系下进行计算,转换为新的坐标系后,该坐标的表达式将被替换为新的计算值。
|
||
更新频率触发器 |
检查和编辑三个更新频率触发器时,可以将频率、开始和停止值组合为表达式。这些表达式只能使用参数,以使其在整个模拟运行过程中保持恒定。这些属性的维度必须与字段的预期维度相对应。 有关更多信息,请参见全局参数。 |
示例
表达式可以计算为标量、矢量或张量,这些物理量可能取决于空间和时间。下表中提供了每种数据类型的示例,并列出了可以使用每个表达式定义的对象。
这些示例不解释每个表达式的语法。有关详细信息,请参见表达式语法。
计算为: | 示例: | 可用于定义: |
---|---|---|
不随空间变化、与时间无关的标量 |
|
|
其中,angle 为不随空间变化的场函数、报告或标量参数。 |
|
|
不随空间变化、与时间相关的标量 |
其中,Time 为时间场函数。 |
|
在空间上发生变化的标量值(可以与时间相关) |
其中,Pressure 为在空间上发生变化的标量场函数。 |
标量场函数 |
其中,Velocity 为在空间上发生变化的矢量场函数。 |
标量场函数(矢量的发散计算为标量) | |
不随空间变化、与时间无关的矢量 |
(相对于坐标系定义) |
|
其中,angularVelocity 为不随空间变化的矢量场函数或矢量参数。 |
|
|
不随空间变化、与时间相关的矢量 (不随空间变化) |
其中,Time 为时间场函数。 |
|
在空间上发生变化的矢量值(可以与时间相关) |
其中,Velocity 为在空间上发生变化的矢量场函数。 |
矢量场函数 |
张量 |
其中,Stress 为张量场函数。 |
张量场函数 |