优化表面 FFT 计算
如果使用核内存储,可以更快地创建表面时间历程。此外,使用静态网格后就可以节省计算资源。
- 要使用核内存储,选择核内表面 FFT 属性。 节点,然后激活
数据存储限制
此处所述的技术激活了表面时间历程和表面 FFT 的核内存储。它可以在批处理类型工作流程期间提供优化。同时,对于这些物理量(应用于表面网格时),中间结果不会存储在文件中,而是保留在内存中。该方法有两大影响:
- 执行 FFT 所需的时间大幅减少(每次观察至少有 10 个时间是这样)。
- 结果在已保存的模拟件中不保持一致,必须重新计算。
在批量运行中,由于生成的结果未序列化,必须在模拟运行期间导出它们,例如导出为硬拷贝 (.png
) 或表 (.csv
)。保存并关闭模拟后,所有 FFT 结果都将丢失,必须重新计算。对于事先决定待导出内容的工作流程,这是可以接受的。
核内工作流程的独立 FFT 更新
生成 FFT 数据的更常见方法是:
- 设置表面时间历程。
- 设置与时间历程相关的表面 FFT。
- 更新表面时间历程以生成数据。
- 更新表面 FFT 以生成数据。
由于所有数据都存储在核内,对于具有 N 步的时间历程及其相关的 FFT,需要用 B 分析块存储以下内容:
- 时间历程的数据,其大小与 ~ N 成比例。
- FFT 的数据,其大小与 ~ N/B 成比例。
通过这种存储,可以可视化时间历程和 FFT 中的所有状态。
但是,当 N 较大(1000s 或 10000s 中的值)时,此方法可能会占用所有内存,即使在更大的工作站上也是如此。对于这些情况,存在替代方法,即独立地更新表面 FFT 节点:
- 设置表面时间历程。
- 设置与时间历程相关的表面 FFT。
- 更新表面 FFT 以生成数据。
由于所有数据都存储在核内,对于具有 N 步的时间历程及其相关的 FFT,需要用 B 分析块存储 FFT 的数据,其大小与 ~ N/B 成比例。
通过此方法,可以仅可视化 FFT 中的所有状态。那些更常见工作流程的内存需求大幅减少。此外,由于内存使用量与 ~ N/B 成比例,可以通过增大 B 来进一步减小它。
用静态网格进行优化
创建这些时间历程的更常用方法涉及数据映射器,因为需要顾及网格的变异。但是,有了静态网格,只需复制数据即可,从而节省大量计算资源。
-
选择核内表面 FFT 属性。
节点,然后激活此步骤使静态网格复制选项可用。
- 选择表面时间历程节点,例如 h(s) 1,然后将插值方法属性设为静态网格复制。
表面时间历程的输入限制
当静态网格复制选项处于活动状态时,必须:
- 选择用于映射的单个
源
和单个目标
。 - 设置
源 == 目标
,即从单个源映射到自身。
否则 Simcenter STAR-CCM+ 将生成故障消息,如:
Invalid input: static copy requires the a single source/target, where source == target
正确配置输入源和目标后,可以构造时间历程。此过程中的输出有助于加快模拟运行,类似于以下情况:
Representation : multipart_1b1ps, Import State : State 1.
Static copy of field Pressure for time 0.001000
Representation : multipart_1b1ps, Import State : State 2.
Static copy of field Pressure for time 0.002000
...
相比之下,使用映射器的较常见技法通常包含以下输出:
Map and export data at time: 0.001
Map and export data at time: 0.002
...
正在复制的表面不应经受几何的任何更改(例如,由于重新划分网格或重新打印)。如果存在此类更改,则会出现一条出错消息,如:
Invalid cache for static copy, cannot be performed.
如果不存在网格运动,则静态网格不会发生此类错误。