关系谓词

这类谓词包括树层次结构功能(来自 v11.06 之前的 Simcenter STAR-CCM+ 版本)和当前引用运算符。

一般原则

假设零部件表面 Bottom_Interface_SandMold 具有边界属性铸造:Bottom_Interface_SandMold。该零部件表面引用边界 Bottom_Interface_SandMold

如果创建谓词[关系引用铸造:Bottom_Interface_SandMold],则结果包括引用该边界的所有对象。



同样,边界 Bottom_Interface_SandMold 被零部件表面 Bottom_Interface_SandMold 引用



既然零部件表面的边界属性已提供引用信息,为何要查询这些信息?以下示例阐明了原因以及关系谓词的其他方面。

示例:在一组报告中查找几何零部件

假设报告 Maximum1Report 中有一个名为铸造的零部件,报告 Maximum2Report 中有一个名为砂模的零部件。关系谓词可以按如下所示进行查询:

[关系被 Maximum1Report 引用]



此查询将返回被 Maximum1Report 引用的铸造节点以及其他几个对象(例如,单位节点和表示节点)。为了将搜索结果限定为几何零部件铸造,需添加类型谓词:

[关系被 Maximum1Report 引用] 与 [类型是几何零部件]



此查询表示特定报告 (Maximum1Report) 中的所有几何零部件;在此例中,它仅返回铸造

假设想查看利用场函数温度的所有报告,并想查找在该类报告中使用的所有几何零部件。可以选择每个报告节点,查看每个节点上的场函数属性,并记下使用温度场函数的节点。然后,使用包含所记的各项的静态列表创建谓词。

但更有效的方法是结合使用嵌套查询与关系/被引用谓词。首先,使用属性谓词创建内部过滤器。此步骤将显示利用温度场函数的所有报告。



接下来,需创建外部过滤器。通过将 Maximum1Report 替换为过滤器 Filter-Reports-TemperatureFieldFunction,修改初始过滤器。



此过滤器为动态过滤器。这意味着如果添加了任何其他包含温度场函数的报告,则结果会随这些报告而自动更新。

示例:查找分配给已标记边界的零部件表面

假设您使用标签 MyBoundaries 指定了一些需要关注的边界。要查找已分配给这些边界的所有零部件表面,使用与标签谓词结合的关系/引用嵌套查询。

对于此示例,在名为 Filter-MyBoundaries 的过滤器中,标签查询为 [标签包含 MyBoundaries]。如以下屏幕截图所示,树中选择了五个已标记边界,查询结果按预期显示在右侧。



其中每个边界均可拥有自己的一组引用对象。例如,以下是 Bottom_Interface_Cast 的结果。零部件表面 Bottom_Interface_Cast 最先出现。



可以将此查询广义化,查找引用使用 MyBoundaries 进行标记的边界的所有零部件表面。查询结果将包含引用这些边界的所有对象,其中包括除零部件表面以外的对象。可以采用两种方法将查询广义化:静态和动态。

静态方法是将关系/引用谓词修改为包括所有已标记边界,然后在对象选择器中逐一选择这些边界。这种方法既繁琐又容易出错。

动态方法是将关系/引用谓词修改为使用过滤器值 Filter-MyBoundaries。这种方法更灵活且可自动运行。此选项将返回引用 Filter-MyBoundaries 过滤器中所列各项的所有对象。



为了将查询结果的范围限定为零部件表面,请结合使用该谓词与 [类型是零部件表面] 谓词。



这样产生的复合谓词为 [关系引用 MyBoundariesFilter] 与 [类型是零部件表面]。其中 MyBoundariesFilter[标签包含 MyBoundaries]

如果使用 MyBoundaries 标签标记更多边界,则查询结果将会自动更新。因此,这种方法是动态化的。



示例:查找包含特定连续体的区域

在某些情况下,属性谓词不可用。例如,区域的物理连续体属性无法拖入查询编辑器中。

要查找与特定物理连续体关联的所有区域:

  1. 使用被引用运算符创建关系谓词。
  2. 对于查询的值,选择要关注的连续体(在以下示例中为铸造物理)。

    初始查询结果包括各种类型的对象,如区域和交界面。

  3. 为了将查询结果限定为区域,将区域节点拖入查询编辑器中,从而创建复合谓词:

    [关系被铸造物理引用] 与 [类型是区域]



示例:查找包含父类型棱柱层的自定义控制

属性谓词中,有一个示例会涉及到查找设为自定义的棱柱层。事实上,生成的查询将提供非命名的棱柱层节点,其类型与所属对象控制相同。但是,要关注的对象是实际的已命名自定义控制节点(在此示例中为 OnePrismLayerThreePrismLayers),它们是查询结果中所列节点的父节点。



要检索这些命名对象,结合使用嵌套查询与以下示例中的方法:

  1. 将现有查询命名为 Filter-Parent-Prism-Layers。注意,在层级结构中,相关自定义控制位于第一个过滤器找到的棱柱层节点的上方。
  2. 要重定向搜索结果并捕捉相关实际对象,使用以下各项创建查询:
    • 关系谓词
    • 目录树上方运算符
    • 用于选择过滤器 Filter-Parent-Prism-Layers 的值

    尽管查询结果包括所需的自定义控制,但还包括其他不需要的对象。



  3. 为了限定结果,将该谓词和谓词 [类型是面控制] 结合使用。

    此修改列出了包含自定义棱柱层的所有自定义控制。此类对象添加到树中后,查询将会自动更新。



示例:从网格操作中查找输出零部件

构建可重用的网格生成流程时,通常希望使用一个操作(如布尔减运算)的输出零部件作为另一个操作的输入。关系谓词内容可提供访问被另一对象的属性所引用的对象的途径。

在以下示例中,您想要获取由布尔减运算(从流体中减去)所生成的零部件,作为自动网格操作(多面体网格)的输入。创建过滤器(或在本例中为动态查询)时,可以从多个网格操作属性查询对象。在此处,可以选择输出零部件,该操作用于识别执行从流体减去操作所生成的零部件。