当前位置: 首页 > news >正文

ANSYS Swan 条件激活与重置操作符教程

ANSYS Swan 提供 条件激活状态重置 高阶操作符,用于控制数据流中的动态行为。本教程将详细介绍 activate ... defaultactivate ... lastrestart 的语法、语义及使用场景。


一、条件激活操作符

1. activate ... default

语法

(activate op every c default e)

作用:

  • 当布尔条件 c 为 true 时,执行操作符 op。

  • 当 c 为 false 时,返回默认表达式 e 的值。

示例:

function activateDefault (c: bool; i1: int32; i2: int32)
returns (o: int32)
{
  let o = (activate add every c default 42) (i1, i2);
}

function add (i1: int32; i2: int32)
returns (o: int32)
{
  let o = i1 + i2;
}

执行逻辑:

  • c = trueo = i1 + i2

  • c = falseo = 42

2. activate ... last

语法:

(activate op every c last e)

作用:

  • 当 c 为 true 时,执行操作符 op。

  • 当 c 为 false 时:

    • 首周期:返回初始表达式 e 的值。

    • 后续周期:返回上一次激活操作整个高阶表达式的结果(保持历史值)。

示例:

node activateLast (c: bool; i1: int32; i2: int32)
returns (o: int32)
{
  var
    l1 : int32 default = 42;

  let
    l1 = 0 pre l1 + 1;   
    o = (activate add every c last l1) (i1, i2);
}

执行逻辑:

  • c = trueo = i1 + i2

  • c = false

    • 首周期:o = l1 = 42。

    • 后续周期:o 保留上一次整个 restart 表达式的结果。

二、状态重置操作符 restart

语法:

(restart op every c)

作用:

  • 当布尔条件 c 为 true 时,将操作符 op 重置到初始状态。

  • 适用于需要周期性重置内部状态的操作(如计数器)。

示例:

node restartTest (c: bool)
returns (o: int32)
{
  let o = (restart subOp4Restart every c) ();
}

node subOp4Restart ()
returns (o: int32)
{
  let o = (0 pre o) + 1;  // 初始值 0,每次执行自增 1
}

执行逻辑:

  • c = true:重置 subOp4Restart,o 重新从 1 开始计数。

  • c = false:subOp4Restart 正常执行,o 持续递增(如 1→2→3…)。

三、操作符对比

操作符核心行为典型场景
activate ... default条件不满足时返回固定默认值条件分支数据替换
activate ... last条件不满足时保留历史值状态保持(如传感器数据续用)
restart重置操作符到初始状态周期性计数器清零

四、使用场景建议

  1. 动态数据处理

使用 activate … default 实现条件选择输入源,如传感器故障时切换至默认值。

  1. 状态持久化

使用 activate … last 在条件中断时维持最后一次有效结果,避免数据丢失。

  1. 周期性重置

使用 restart 控制计数器的周期性重置,如每日零时重置累计流量。

相关文章:

  • 目标在哪里?——寻找人生的意义与方向
  • 【虚幻C++笔记】引擎源码下载及编译步骤
  • Kubernetes之ETCD
  • 即插即用模块--KANLinear
  • c++的static和java的有何不同和联系
  • pywinauto自动安装python和java
  • 小程序配置
  • 企业数据管理的成本与效率革命
  • 社区版Uos20.9从源码编译QT5.15.2
  • 阿里云企业邮箱出现故障怎么处理?
  • 算法日记40:最长上升子序列LIS(单调栈优化)n*log^n
  • 如何通过Odoo 18采购模块优化管理供应商价格表
  • [CISCN 2022 初赛]ezpop(没成功复现)
  • Java多线程与高并发专题——原子类和 volatile、synchronized 有什么异同?
  • Mac中nvm切换node版本失败,关闭终端再次打开还是之前的node
  • Protobuf 学习与实践
  • JVM--垃圾回收
  • 网络空间安全(32)Kali MSF基本介绍
  • 【DevOps】 基于数据驱动的Azure DevOps案例实现
  • VS2019下载链接
  • 43.2℃!河南林州打破全省5月最高温纪录,明后天高温将持续
  • 杨建全已任天津市委副秘书长、市委市政府信访办主任
  • 遭车祸罹难的村医遇“身份”难题:镇卫生院否认劳动关系,家属上诉后二审将开庭
  • 上海老字号卖黄金,与动漫IP联名两周销售额近亿元
  • 高新波任西安电子科技大学校长
  • 特朗普再提“接管”加沙,要将其变为“自由区”