在实践中,可视化二维流体流动的最有用的方法是什么,以了解模拟中发生的情况?ESP用于验证和调试

计算科学 流体动力学 可视化 确认
2021-12-02 23:50:57

我的模拟以每秒 60 帧的速度创建了一个 2d 向量和标量网格(编辑速度、深度等)。这是正确的吗?看起来不错……但谁知道呢?我怎么知道发生了什么——尤其是在调试时?

思念至今:

  • 速度场的箭头很难看到小区域/精细细节中发生了什么。如果使用长度表示大小,则必须正确调整比例,否则箭头会消失(太小)或变成线条(太大)。

    • 或者,可以使用颜色表示大小(标准彩虹键,将颜色映射到数字)。仍然存在缩放问题。
  • 粒子(点),由速度场均匀放置和移动。点的密度意味着发散;圆周运动意味着涡度。

  • 绿色/红色表示卷曲(涡度),顺时针/逆时针

  • 发散灰度(压缩)

  • 高度场作为 3d 等距表面,带有标记的轴和刻度

将所有数据转储到一个文件/s,然后使用单独的工具将其可视化是否更好?然后,您可以像电影一样在时间上前后移动,并在要可视化的数量和可视化方法之间切换。也许,在实践中,仅仅修改代码来显示不同的东西是取得进步的最好方法?

我必须自己创建可视化代码,它本身似乎有点像一个项目,所以我很犹豫。在深入研究之前,我想从那些更有经验的人那里得到一些指导,关于什么是最有用的。

  1. 什么数量对可视化最有用?
  2. 如何显示它们?
  3. 如何(以及何时)选择显示哪一个(UI 问题)?

编辑我应该补充一下,我正在 android 上开发(在设备本身上,而不是在 PC 上),所以很多流行的工具/应用程序不可用。而且,由于我的主要项目是显示实时模拟,因此可视化一些数据也不是什么不同的任务。

2个回答

验证代码的 CFD 部分的一个好方法是继续使用制造解决方案 (MMS) 的方法。你可以看看Oberkampf & Roy的书,甚至的这篇文章。

MMS 的关键原理是确定您的问题的解析解(在本例中为速度和/或压力曲线),并使用符号计算器计算与插入 Navier 中的此流量曲线相对应的源项-斯托克斯方程。

有许多商业(Matlab、Mathematica、Maple)或开源(Python + SymPy、Sage)方法来计算这个源术语。我发现 SymPy 非常易于使用并且非常高效。源项可能很长,但如果您在流量剖面中采用三角函数,它们通常会简化为简单的表达式。您可以以我文章中的流量剖面为例。

创建自己的可视化代码,很难证明是合理的,除非你有一些强有力的论据为什么现有的代码不够好。这是几个很棒的开放代码。

您可以在进行分析时即时进行可视化,http://www.paraview.org/in-situ/很棒的工具,或者作为后期处理的结果,请参阅 Paraview、openDX、访问大量可能性。

帕拉维耶夫催化剂特别有趣;您可以链接您的应用程序。运行分析时并行执行所有操作。