引用场函数、坐标系和参考坐标系
下面提供了用于引用场函数、坐标系和参考坐标系的语法。
引用场函数
引用场函数时,使用在函数名属性中指定的场函数名称。名称区分大小写,并且必须根据其在函数名中的显示在表达式中准确输入名称。
如果名称中包含除 '_' 以外的任何非字母数字字符,将场函数名称括在花括号 '{}' 中。如果名称以数字开头,或者要引用包含非西欧字母中字符的对象名称,也要使用花括号。引用此类名称的一些示例为:
- ${Five Things}
- ${Temp@X}
- ${3rdInletMassflow}
- ${test-Temperature}
- 标量场函数
- 要引用标量场函数,使用美元符号 $ 后跟函数名(如函数名属性中所定义)。例如:
- $Temperature
- 0.5*${Temp@X}
- 矢量场函数
- 要引用矢量、组分表或位置场函数,使用两个美元符号 $$ 后跟函数名(如函数名属性中所定义)。例如:
- $$Velocity
- $${User-defined Force}
- 矢量场函数的分量
- 要引用矢量、组分表或位置场函数的分量,引用场函数并将相关分量用方括号括起。例如,要将一个新的标量函数定义为笛卡尔速度分量的总和,可以根据速度矢量将其定义为:
$$Velocity[0] + $$Velocity[1] + $$Velocity[2]
- 对称张量场函数
- 要引用张量场函数,使用三个美元符号 $$$ 后跟函数名(如函数名属性中所定义)。例如:
- $$$StrainTensor
- $$$StressTensor
- 对称张量场函数的分量
- 要引用张量场函数的分量,引用场函数并将相关分量用方括号括起。例如,要引用对称张量 Tensor-1 的分量
,则使用:
$$${Tensor-1}[0,1]
引用局部坐标系
为了在坐标系之间转换,Simcenter STAR-CCM+ 对矢量和位置场函数加以区分。
例如,让 表示原点(位置)为 且方向矩阵为 的局部笛卡尔坐标系,根据基准坐标系,矩阵的列数为正交基矢量 。矢量 从基准坐标到 的转换由以下公式给出:
但是,将点 从基准坐标系转换为 需要从 中减去局部原点 ,然后计算局部坐标系内的 坐标:
矢量和位置从 到基准坐标系的转换为:
和
存在用于将位置型场和矢量型场转换为不同局部坐标系的语法。例如:
$$Position(@CoordinateSystem("Laboratory.Coordinate System
1"))
将位置
场从基准
坐标系转换为坐标系 1
坐标系。对于位置,矢量的分量采用所指定坐标系的单位:
- 如果坐标系为笛卡尔,则
$$Position(@CoordinateSystem("Laboratory.CartesianSystem"))
为[X,Y,Z]
。 - 如果坐标系为圆柱坐标系,则
$$Position(@CoordinateSystem("Laboratory.CylindricalSystem"))
为[半径, θ, z]
。 - 如果坐标系为球坐标系,则
$$Position(@CoordinateSystem("Laboratory.SphericalSystem"))
为[半径, θ, phi]
。
对于局部坐标系具有一个或多个嵌套级别的情况,使用限定符 @CoordinateSystem
,并且使用 .
字符将每个坐标系与其父进行分隔。例如,考虑在以下模拟树的 Spherical 1(球 1) 局部坐标系中给定位置的场函数:
表达式将写为:
$$Position(@CoordinateSystem("Laboratory.Initial ship
orientation.Spherical 1"))
Boat-CSys(船-CSys) 坐标系将引用为:
$$Position(@CoordinateSystem("Laboratory.Boat-CSys"))
注 | 位置 和形心 场之间的区别非常重要: |
位置
提供节点或网格单元中心的坐标,具体取决于平滑
标志。形心
专门提供模拟网格的网格单元的几何形心。
一般情况下,应该在用户场函数表达式内使用位置
,因为其无需任何插值便可提供适当的几何位置,甚至在衍生零部件上也是如此。在诸如报告和绘图等后处理操作中,位置
根据平滑
标志使用几何上的适当几何位置。如果已设置平滑
标志,将使用节点位置。如果未设置平滑
标志,则使用网格单元、面或线段中心。但是,形心
场专门引用模拟网格的网格单元或面的几何形心。如果在可视化或分析操作期间设置平滑
标志,则会像任何其他场一样将形心
插入模拟网格或衍生零部件的节点位置,这可能会产生小插值误差。
引用局部参考坐标系中的速度
使用场函数语法,可以将基准坐标系中的速度转换为局部参考坐标系中的等效速度。例如:
$$Velocity(@ReferenceFrame("Rotating"))
此函数将在名为旋转的局部参考坐标系中生成速度矢量。