Julia 可以用来创建像 OpenFOAM 这样的大型 CFD 软件吗?

计算科学 流体动力学 高性能计算 开放式泡沫 朱莉娅
2021-11-27 11:41:35

我有一些编程语言的经验,如 C/C++、Fortran、Python 等,但最近,我对 Julia 产生了兴趣。

但是,我想知道 Julia 是否可用于创建一些大型 CFD 软件,例如 OpenFOAM(用 C++ 编写):网格实用程序、求解器、并行计算等。

所以我的问题是,对于这样的规模,朱莉娅真的能胜任这项任务吗?

1个回答

我认为这个问题太主观了,无法回答。最后,几乎所有与 PDE 解决方案有关的 C++ 库都提供了出色的 C++ 库,而 Julia 环境中则基本上没有这些库。

想到的例子是用于线性代数的 PETSc/Trilinos,用于离散化的 deal.II/libmesh/FEniCS 等。如果你想在 Julia 中完成所有这些工作,你将不得不重复很多很多年的工作。可能吗?当然是。值得吗——不,一点也不。

为了让您了解所需的工作水平:我最好的猜测是,每个完成研究生的基于 deal.II 的软件项目可能会在 deal.II 中运行 200,000 行 C++ 代码,如果它使用任何有趣的线性求解器,求解器包中的另外 100,000 行代码。但是经验丰富的全职程序员每年只编写 20,000 行代码——换句话说,如果没有现有的软件库,这些学生的程序将需要 15 年的时间来编写。