仅需57天,污染半个太平洋 | 流体模拟实验

德国某海洋科学研究机构通过计算机模拟,计算出当日本把核污水排放到太平洋后,污染半个太平洋需要多少时间?
——只需要57天
嗯?不太相信???
没关系,我们想办法自己实现一个。
我们需要学习一些简单的流体实现方式,
有时间的话可以好好看看Daniel Shiffman的教程。
作为一个计算机程序,需要有一些基本的假设(第一性原理):
- 我们可以将流体视为盒子的集合。每个盒子都有各种特性,例如速度和密度。这些盒子与它们的邻居互动,影响它们的速度和密度。
- 计算机不能每秒处理不计其数的交互,也不能处理不计其数的小盒子,因此我们必须简化问题。我们把流体分成合理数量的盒子,并尝试每秒进行几次交互。
- 进一步简化问题,我们仅考虑不可压缩的流体。水是不可压缩流体的一个例子,挤压它,它就会向后推,并且不会变小。而空气是可压缩流体,把它压扁,它会变小。不可压缩流体的密度和压力始终恒定,因此更易于模拟
工作原理详见(看这个东西需要花点时间):
https://mikeash.com/pyblog/fluid-simulation-for-dummies.html
事实上,上面的教程是简化版,真正想要深入研究需要了解计算流体仿真力学,英文全称Computational Fluid Dynamics,缩写为CFD。
它是数值数学和计算机结合的产物,通过空间离散和数值求解,对流体力学的各类问题进行数值实验、模拟和分析研究,以解决学习、科研或者工程设计中的问题。广泛应用于科学研究、影视特效、电脑游戏、灾难营救、科普教育、体育竞技、军事仿真等应用领域。
在查找资料过程中,发现一个好玩的流体模拟,可以体验下:
https://physics.weber.edu/schroeder/fluids
另外 ,流体用来做海报背景似乎也是不错的选择:
最后,还发现谷歌最近公布的一项研究:利用机器学习和硬件加速能够改进流体模拟,且不损害准确率。
AI真的是可以应用到各行各业,只有我们想不到的,没有做不到的。
有时间的话,我还是要好好系统地学习下~

欢迎与我交流~
扫码加入
实验室社群
(0)

相关推荐