什么是物理建模的最佳语言?

FCB*_*iat 10 simulation language-features modeling physics

我已经离开了造型业,可以说,现在已经有一段时间了.当我在大学时,我使用的大多数模型都是用FORTRAN编写的,我从来不喜欢它.我正在寻求回归科学,所以我想知道是否有适合这种应用的功能集的现代语言.你认为什么是模拟复杂物理系统的最佳语言?

Dan*_*uez 8

虽然Fortran绝对是这方面的统治者,但Python正越来越多地用于此目的.虽然很难说哪个是最好的程序,但我发现python对于物理模拟和物理教育非常有用.


nie*_*sle 7

这取决于任务

  • C++擅长复杂的数据结构,但它在切片和乘法矩阵方面很糟糕.(这个任务要求你花很多时间写循环.)
  • FORTRAN有一个很好的表示切片和乘法矩阵的符号,但它对于创建复杂的数据结构(如图形和链表)很笨拙.
  • Python/scipy对所有内容都有一个很好的表示法,但是python是一种兼容的语言,因此在某些任务中它很慢.
  • 有些人对像CUDA这样的语言很感兴趣,可以让你使用GPU来加速你的模拟.

在分子动力学界,c ++似乎很受欢迎,因为你需要一些复杂的数据结构来表示分子的形状.


duf*_*ymo 4

我认为,只要我们谈论的是串行计算,在解决大规模物理问题时,FORTRAN 仍然占据主导地位是有争议的。

我知道并行化正在改变游戏规则。我不太确定 LINPACK 和其他线性代数包的并行版本是否仍然用 FORTRAN 编写。

如今,许多工程师都在使用 MATLAB 和 Mathematica,因为它们结合了数值和图形功能。

我还想指出,计算引擎和显示引擎之间存在差异。前者可能仍然用 FORTRAN 编写,但后者可能使用更现代的语言和 OpenGL。

我也不确定建模在生物学中的应用程度。物理化学可能是一种完全不同的动物。

如果您用 Scala 或 F# 或 Haskell 编写了一个出色的并行线性代数包并且性能良好,那么全世界都会向您敞开大门。

  • 真的吗?所有商业有限元软件包都被重写了吗?现在人们用 C# 做 CFD 吗?您正在编写软件来模拟物理问题吗?如果是的话,是不是可以卖钱呢? (3认同)