跳转至内容

HydroGeoSphere/时间步长控制

来自维基教科书,开放的书籍,用于开放的世界

在讨论控制瞬态解行为的可用指令之前,需要一些背景信息。预处理器grok生成一个目标时间数组,该数组来自以下来源

  • 用户指定的时间以满足时间步长约束。
  • 用户指定的时间以满足输出要求。
  • 瞬态边界条件值发生变化的时间。

此目标时间数组传递给HydroGeoSphere,它使用该数组生成时间步长值。

此外,如第 5.5.2.1 节所述,自适应时间步长可用于根据解推进过程中水头、饱和度和/或浓度的变化来调整时间步长值。

本页上的说明可用于修改瞬态解的时间步长行为。

初始时间

[编辑 | 编辑源代码]
  1. tinit 初始时间。

为初始时间分配一个新值,默认值为零。如果要重新启动模拟并将使用的时间索引到早期运行,则此功能非常有用。

• • •

初始时间步长

[编辑 | 编辑源代码]
  1. val 初始时间步长大小。

为初始时间步长分配一个新值,默认值为 0.01 个时间单位。

• • •

最大时间步长

[编辑 | 编辑源代码]
  1. val 最大时间步长大小。

为最大时间步长大小分配一个新值,默认值为 1025 个时间单位。

• • •

最小时间步长

[编辑 | 编辑源代码]
  1. val 最小时间步长大小。

为最小时间步长大小分配一个新值,默认值为 1 × 10−10 个时间单位。如果由于自适应时间步长过程,时间步长变得小于此值,HydroGeoSphere 将停止并发布诊断消息。

• • •

目标时间

[编辑 | 编辑源代码]
  1. target_time...end 目标时间。

列出的时间将添加到当前的目标时间集中。

• • •

生成目标时间

[编辑 | 编辑源代码]
  1. tstart 开始时间 [T]。
  2. delta 初始时间步长大小 [T]。
  3. tinc 时间步长乘数。
  4. dtmax 允许的最大时间步长大小 [T]。
  5. tend 结束时间 [T]。

从开始时间tstart到结束时间tend,通过重复添加时间步长delta(每次增加乘数tinc,直到达到最大大小dtmax)来生成新的目标时间。

• • •

输出时间

[编辑 | 编辑源代码]
  1. output_time...end 输出时间。

列出的时间将添加到当前的输出时间集中(即要获取详细输出的时间)。请注意,这些值将自动成为目标时间数组的一部分。

• • •

华夏公益教科书