定义自动时间步控制

对屈曲或跃越等非线性现象建模时,模拟时间步必须足够小,才能捕捉相关物理。但是,对整个模拟使用较小的时间步会明显增加计算时间。要在减少计算时间的同时保持精度,可以激活自适应时间步和时间步恢复模型。

  • 自适应时间步模型 - 在模拟过程中,根据计算的位移变化或用户自定义监视器自动调整时间步长。
  • 时间步恢复模型 - 只要满足在时间步恢复求解器下定义的触发条件,就将使用较小的时间步长重启当前的时间步。如果模拟仍无法收敛,则时间步长将进一步减小,直到临时分辨率足以让模拟收敛。

可以单独使用每个模型,也可以在同一模拟中组合使用。当能够预测非线性事件的发生时,使用自适应时间步模型。当非线性事件的发生难以预测时,使用时间步恢复模型或组合使用自适应时间步和时间步恢复模型。

要激活模型:
  1. 右键单击连续体 > [物理连续体] > 模型节点,然后选择选择模型…。
  2. 在模型选择窗口中,选择自适应时间步和时间步恢复模型,然后单击关闭。
    由于只能调整整个模拟的时间分辨率,因此必须在所有可用连续体中选择自适应时间步和时间步恢复模型。
对于自适应时间步模型,Simcenter STAR-CCM+ 可用于设置固体应力时间步提供程序,以根据计算的位移变化或选择的监测值修改时间步。要执行此操作:
  1. 右键单击模型 > 自适应时间步 > 时间步提供程序节点,然后选择新建 > 固体应力时间步提供程序。
  2. 选择[固体应力时间步提供程序] > 条件 > 监测字段节点,然后选择以下选项之一:
    • 要根据计算的位移变化设置时间步:
      1. 将监测字段设为位移变化。
      2. 选择监测字段 > 位移变化,然后选择范数类型。

        有关范数类型的更多信息,参见残差和可变增量范数。

    • 要根据计算的变量监视器值设置时间步:
      1. 将监测字段设为监控器。
      2. 选择监测字段 > 监控器节点,然后指定相关属性。

        有关更多信息,参见固体应力时间步提供程序参考。

    默认情况下,固体应力时间步提供程序基于单个控制方式设定时间步,该控制方式适用于监测字段更改的整个范围[-∞,+∞]。可以将预期更改的范围细分为多个区间,并针对每个区间提供不同的控制方式。
要细分更改范围:
  1. 选择固体应力时间步提供程序 > 条件 > 范围输入节点,然后设置间隔点列表。
  2. 选择固体应力时间步提供程序 > 区间 > [区间[-∞,+∞]]节点,然后设置相关属性。
    例如,如果要在间隔点列表设为 [0.002,0.005,0.0075,0.01]m 时监测位移变化,可以执行以下操作:
    间隔 控制方式 自适应时间步
    [-∞, 0.002] 恒定缩放比例为 2.0 如果位移变化在该间隔范围内,新设定的时间步是当前时间步的两倍。
    [0.002,0.005] 最大时间步 新设定的时间步是在隐式非稳态求解器中定义的时间步长。
    [0.005,0.0075] 目标控制 - 线性,目标值为 0.007 m 将上一个时间步与线性比例因子(目标值与监测到的位移变化之比)相乘,计算得出新设定的时间步。
    [0.0075, 0.01] 指定的时间步 使用指定属性可直接指定设定的时间步。
    [0.01,inf] 最小时间步 新设定的时间步是由自适应时间步求解器定义的最小时间步长。
    有关更多信息,参见固体应力时间步提供程序参考。
定义初始和最小时间步以及应用于时间步的比例因子极限:
  1. 选择求解器 > 自适应时间步节点,并设置相关属性。
    有关更多信息,参见自适应时间步模型参考。
  2. 使用时间步恢复模型时,可以定义控制时间步重启的触发条件。如果求解在特定的最大内部迭代次数内未收敛,或者在定义了以下更新事件后,可以指示 Simcenter STAR-CCM+ 重新启动时间步:
    1. 选择求解器 > 时间步恢复节点,然后激活在最大内部迭代次数时触发或在更新事件后触发。
    2. 如果已激活在最大内部迭代次数时触发,则设置最大内部迭代次数。
    3. 要定义恢复过程中应用于时间步的乘数,定义时间步缩减因子。
    4. 要限制连续恢复数,定义最大连续恢复数。
      有关更多信息,请参见时间步恢复模型参考。

      仅恢复当前时间步。触发时间步恢复求解器时,Simcenter STAR-CCM+ 会恢复当前时间步,并以缩减的时间步重新执行求解。将时间步缩减因子应用于当前时间步,计算得出缩减的时间步。

      如果模拟在缩减的时间步内收敛到求解,Simcenter STAR-CCM+ 不会立即使时间步返回到原始值。相反,Simcenter STAR-CCM+ 会检查当前求解时间是否位于之前失败的时间步间隔内。如果当前求解时间位于之前失败的时间步内,则维持较小的(缩减的)时间步。如果当前求解时间位于之前失败的时间步之外,则应用下一个最小时间步,直至达到原始时间步。

      模拟开始后,无法对模拟设置进行任何更改。如果检测到任何更改,则不执行时间步恢复求解器。此外,如果在时间步中间保存并重载模拟,则无法进行时间步恢复。