机器学习在计算流体动力学中的应用


9

背景:
对于一门课程,我仅为2d Navier-Stokes建立了一个可行的数值解决方案。这是盖子驱动型腔流动的解决方案。但是,本课程讨论了用于空间离散化和时间离散化的许多模式。我还参加了更多关于NS的符号操作课程。

处理解析/符号方程从PDE到有限差分的一些数值方法包括:

  • 欧拉FTFS,FTCS,BTCS
  • 松懈
  • 中点跳蛙
  • Lax-Wendroff
  • 麦克科马克
  • 偏移网格(空间扩散允许信息传播)
  • TVD

在我看来,当时这些似乎是“插入名称找到了一个方案并且它确实起作用了”。其中许多来自“大量硅”时代之前。它们都是近似值。在极限中。从理论上讲,导致了PDE。

虽然直接数值模拟(DNS)很有趣,而且雷诺平均Navier-Stokes(RANS)也很有趣,但它们是计算上易于理解并完全表示现象之间连续体的两个“端点”。内部存在多种方法。

我曾让CFD教授在演讲中说,大多数CFD求解器会绘制漂亮的图片,但是在大多数情况下,这些图片并不代表现实,要获得能够解决问题的求解器解决方案可能会非常艰巨且需要大量工作确实代表了现实。

开发的顺序(据我所知,并不详尽)是:

  1. 从控制方程开始-> PDE的
  2. 确定您的空间和时间离散化->网格和FD规则
  3. 适用于包括初始条件和边界条件的领域
  4. 求解(矩阵求逆上有很多变化)
  5. 执行总体现实检查,以适合已知解决方案等。

  6. 根据分析结果建立一些更简单的物理模型

  7. 测试,分析和评估
  8. 迭代(跳回到步骤6、3或2)

想法:
我最近一直在使用CART模型,倾斜树,随机森林和渐变增强树。它们遵循更多的数学推导规则,而数学则驱动树的形状。他们努力使离散化的表格变得更好。

尽管这些人为创建的数值方法有些奏效,但仍需要大量的“伏都教”以将其结果与要建模的物理现象联系起来。通常,模拟并不能完全替代实际测试和验证。容易使用错误的参数,或者无法解决实际环境中几何形状或应用程序参数的变化。

问题:

  • 是否有任何方法可以让问题的性质定义
    适当的离散化,时空差分方案,初始条件或解决方案?
  • 高清晰度解决方案与机器学习技术相结合,是否可以用于形成步长更大但保持收敛性,准确性等的差分方案?
  • 所有这些方案都是可访问的“人类易处理的派生”-它们具有少量要素。是否有一个包含数千个元素的差异化方案能做得更好?它是如何衍生的?

注意:我将在一个单独的问题中继续进行经验初始化和经验推导(相对于分析而言)。

更新:

  1. 利用深度学习来加速格子玻尔兹曼流。使特定情况的速度提高约9倍

    O. Hennigh(新闻中)。Lat-Net:使用深度神经网络的压缩格子Boltzmann流动模拟。取自:https : //arxiv.org/pdf/1705.09036.pdf

    使用代码回购(我认为):https :
    //github.com/loliverhennigh/Phy-Net

  2. 与GPU和相同的硬件相比,它比GPU快大约2个数量级,比GPU快4个数量级,或快大约O(10,000x)。

    Guo,X.,Li,W.&Ioiro,F.用于稳定流逼近的卷积神经网络。取自:https : //autodeskresearch.com/publications/convolutional-neural-networks-steady-flow-approximation

  3. 大约20年前研究过该主题的其他人:

    Muller,S.,Milano,M.和Koumoutsakos P.机器学习算法在流建模和优化中的应用 湍流研究中心年度研究摘要1999摘自:https : //web.stanford.edu/group/ctr/ResBriefs99/petros.pdf

更新(2017):
表征了深度学习中非梯度方法的使用,这是一个完全基于梯度的领域。虽然活动的直接含义是在深度学习中,但它也表明GA可以等效地用于解决非常困难,非常深刻,非常复杂的问题,其水平与基于梯度下降的方法一致或优于梯度下降的方法。

在此问题的范围内,它可能表明较大规模的基于机器学习的攻击可能会允许时间和空间上的“模板”,从而大大加速梯度域方法的收敛。该文章甚至说有时沿梯度下降方向移动会脱离解决方案。尽管在局部最优值或病理轨迹的任何问题中(大多数高价值的现实问题都具有其中的某些问题),可以预期梯度不是全局性的,但仍然可以很好地对它进行凭经验的量化和验证在本文中,它具有“超越界限”的能力,而无需随着学习动力或放松放松而“减少学习量”。

更新(2019年):
看来Google现在在AI难题中做出了贡献“如何找到更好的求解器”。 链接这是使AI成为求解器的一部分。

**更新(2020):**现在他们正在这样做,并且做得很好...
https://arxiv.org/pdf/1911.08655.pdf

可以说,他们然后可以解构其NN以确定实际的离散化。我特别喜欢图4。


5
欢迎来到Scicomp.SE!您的问题比该站点的常规方法更具哲理性,但是我无法抗拒给我两分钱。不过,我认为其中存在一个值得解决的“难题”:什么时候值得采用非常高阶的有限差分方法,以及如何在实践中推导和实现它们?我建议重写您的问题以使其专注于此方面(在这种情况下,我将很乐意删除不再相关的答案),或者将其作为新问题提出(使用位于黄色框中的“询问您自己的问题”页面底部)。
克里斯蒂安·克拉森2015年

8
我认为核心的误解源于您的序列太短的事实-开始时至少缺少(至少!)一个步骤:如何确定控制方程式。如果模拟结果与物理现象不一致(并且您的数值方法正确-这部分是纯数学,没有伏都教,那么对还是错),那么您就必须跳回去。没有任何数学技巧可以弥补不适当的建模假设。
克里斯蒂安·克拉森2015年

4
那不是真的(取决于您“答案”的确切含义)。您可以建立模型(通过遵循第一原理或修改现有原理),将其求解为所需的精度,然后将输出结果与实验观察结果进行比较。如果他们同意,可以写一篇论文。如果不是,请返回并优化模型。冲洗,重复。这就是(任何)科学的工作方式(数值解完全是附带的)。
克里斯蒂安·克拉森2015年

3
这正是我在说的-如果您发现无法重现测量结果,除非您也将模型中的节律(或其他)包括在内,那么您就是这样做的。您如何看待列出的五项原则?只是现代科学变得如此复杂,以至于不再只有一个人来进行测量,寻找预测模型,研究其数学特性,推导其求解的数值方法以及使它们以合理的效率运行。
克里斯蒂安·克拉森2015年

1
@EngrStudent不能直接回答您的第二个问题,但是我们一直在努力改进RANS模型(您可以使用较粗的网格和较大的时间步长),这些模型在复杂流中非常不准确,但比DNS便宜得多。我们结合使用反问题和神经网络来使用实验数据来改进这些模型。看看arxiv.org/abs/1608.03990并在那里找到参考。我认为不可能完全忽略控制方程式并保持类似水平的准确性(至少在目前是这样)。
特立独行

Answers:


20

CFD代表“多彩的流体动力学”是一个长期的笑话。尽管如此,它仍被广泛使用。我相信您的不满来自于没有充分区分两个相互关联但又不同的步骤:创建物理过程的数学模型并用数值方法求解。让我对此发表一点评论:

  1. 物理现实的数学模型(或什至任何模型)都不是正确的。充其量对于在非常精确地划分(但希望很大)的情况下预测测量结果很有用。这包括以下事实:在给定特定配置的情况下,必须有可能获得这种预测;这就是为什么我们拥有从量子场论到牛顿力学的整个模型层次结构的原因。特别是,Navier-Stokes方程不描述流体流动,它们提供了在某些条件下某些流体行为的特定方面的预测。

  2. 对于更复杂的数学模型(例如Navier-Stokes方程),您永远无法获得精确的解(因此无法预测),而只能获得数值近似值。听起来这并不是一件坏事,因为您想要与之进行比较的测量值本身从来都不是精确的。就像在选择模型时一样,在准确性和易处理性之间要进行取舍-花时间或金钱来获得比所需的更精确的解决方案是没有意义的。在这一点上,纯粹是一个问题,即如何在数值上近似(在这种情况下)偏微分方程的解,这是整个数学领域的主题:数值分析。这个领域与证明有关某些数值方法的误差估计(同样在某些明确指定的条件下)。您的陈述“插入名称找到了一个方案并且它确实起作用了”,这是完全不公平的-应该是“插入名称找到一个方案并证明它有效”。而且,这些方案并非浮出水面-它们是从易于理解的数学原理中得出的。

    (例如,可以使用给定阶数的泰勒逼近来推导有限差分方案。当然-有些人确实可以-获得非常高阶的差分方案并实现它们,但是存在递减法则:这只能部分自动化,因此需要付出很多努力,并且必须满足某些日益严格的条件才能真正获得更高的精度,而且,在某些时候最好使用其他方案,例如光谱方法。)

这里的共同主题是模型和数值方案都具有一定的适用性,因此,为特定目的选择正确的组合很重要。这就是为什么计算科学家需要同时了解领域科学(要知道哪种模型在哪种情况下有效)和数学(要知道哪种方法适用于哪种模型以及哪种精度)!忽略这些“仅按指示使用”标签会导致产生您的CFD教授所指的“计算废话”(从哈里·法兰克福的技术意义上来说)。

关于为何在拥有物理模型(例如风洞)时使用计算模型的原因:原因之一是运行的软件比创建模型并将其放入风洞要便宜几个数量级。而且,它通常不是“或非”:例如,在设计汽车或飞机时,您将运行数百或数千个模拟来缩小范围,然后仅将最终候选者置于风中隧道。


更新:

用机器学习代替数值模拟就像说“没有模型比拥有近似模型更好”,我怀疑流体动力学(或任何其他领域)中的任何人都会同意。话虽这么说,基于与测量数据的一致性,使用机器学习来选择未知的“几何或应用程序参数”当然是可能的(并且实际上是完成的)。但是,这里还有基于模型的方法(例如不确定性量化或(贝叶斯)逆问题)通常表现得更好(并且基于严格的数学原理)。选择数值 原则上也可以使用诸如机器学习方法的步长或顺序之类的参数,但是我看不到好处,因为存在一种数学理论,可以准确地告诉您如何根据您的(数学)模型选择这些参数。

更新2:

您链接到的论文是关于计算机图形学的,而不是计算机科学的:其目标不是对物理过程进行准确的模拟(即数学模型的数值解),而是用肉眼看似的东西。 (“彩色流体动力学”的极端情况...)-这是完全不同的问题。尤其是,与Navier-Stokes方程的相应解决方案相比,训练网络的输出没有错误限制,这是任何数值方法必不可少的部分。


(第一个问题从一个错误的前提开始:在每种方法中,问题都确定模型,模型确定离散化,离散化确定求解器。)


在解决方案的空间中有一个投影,但不一定是“该”解决方案。我现在很生锈。这个想法是使用经验训练的系统来限制可接受的解决方案范围内的区域,在该区域中,投影从其原始边界出现到更接近于物理解决方案。
EngrStudent 2015年

2
您再一次将地图和地区弄糊涂了-(适当放置的)数学模型具有唯一的解决方案(对于任何给定的数据)。您可以使用(适当的)数值方法来计算此解决方案,以达到任意精度(需要更多努力)。另一方面,没有 “物理解决方案”,只有测量。如果这些在测量和数值的精度范围内与模拟不一致,那么您就在解决错误的模型,那么您的问题就不是计算科学之一,而是基本物理学。
Christian

4
另外,还有一条评论:科学(尤其是数学)的基础部分是一种非常精确的技术语言,具有固定且明确的含义-这是唯一可以确保每个人在谈论同一件事时实际上都在谈论同一件事的方法。解释上的微小差异会产生巨大的影响。不遵循常用的术语,而是使用诸如“可接受的解决方案范围内的区域”之类的术语,这使得很难知道您的意思。(我只能猜测您可能正在谈论诸如模型校准,逆问题或数据同化之类的东西。)
Christian Clason

实验的另一个困难是它们不可避免地会偏向所使用的设备。在一个设备上进行的一系列实验并不一定是结论性的,即人们可以预期不同的风洞有时会得出明显不同的结果。国际牵引箱会议通过在全球超过50个牵引箱上进行了一系列广泛的测试来解决这一问题。请参阅:“ ITTC全球系列,确定设备偏向-技术程序”。nmri.go.jp/turbulence/group/...
吕西斯特剌忒

作者的良好经验法则:in every approach, the problem determines the model, the model determines the discretization, the discretization determines the solver.
Sascha Gottfried

7

我认为您正在混同一些导致混乱的想法。是的,有多种方法可以离散特定问题。当您在课堂上学习这些东西时,选择一种合适的方式看起来像“巫毒教”,但是当研究人员选择它们时,他们会借鉴该领域的综合经验,如文献中所述。因此,他们做出的选择比学生多得多。

问题1: 如果您正在解决问题,并且从一种方案切换到另一种方案,则运行时间将发生变化,收敛标准可能会发生变化,或者您的渐近行为,但是非常重要的一点是,最终的收敛解决方案不应更改。如果是这样,您要么需要优化网格,要么数值方案存在问题。也许您可以使用某种优化算法来创建数值方案并改善特定类别问题的性能,但是很多时候,对于涉及的项数或所用网格类型,使用数学上可证明的最佳收敛/渐近行为来创建手动方案。

现在,以上段落不考虑诸如不同湍流模型之类的事物,它们是物理学的不同数学公式/近似,因此期望具有不同的解决方案。这些在文献中再次得到了高度的研究,我不认为程序可以看到物理现象并产生能够正确预测相似物理系统响应的数学模型。

问题2: 是的,您可以派生一个使用整个计算机网格的方案,并使用一些计算机代码来完成。我什至可以放心地说,对于某些网格,存在这样的代码,并且可以在几个小时内为您提供方案(一旦找到了这样的代码)。问题在于您将永远不会击败奈奎斯特。根据系统响应的最大频率,您要采取的时间步长有一个限制,而根据解决方案的空间频率,可以拥有多少个网格单元/元素是有限制的。

这甚至没有考虑到这样一个事实,即使用更复杂的方案时所涉及的计算工作通常是非线性的,且复杂性高。大多数学生学习RK4方法进行时间积分的原因是,当您开始使用更高阶的方法时,对导数的更多评估要比获得方法的阶数更快。在空间领域中,高阶方法极大地增加了矩阵填充,因此您需要的网格点更少,但是反转稀疏矩阵的工作却大大增加,至少部分抵消了增益。

我不确定您在问题三中指的是什么。您是在谈论将问题的紧密解决方案变成更好的解决方案吗?如果是这样,我建议您在多网格上阅读一些内容。如果您想将体面的数值方案转化为惊人的数值方案,我想我剩下的答案至少与之相关。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.