也许,这是一个转储问题。但无论如何。
我为发电机理论中的一类问题开发了一个有限差分代码。我使用了非常适合测试的 GNU Octave (MATLAB)。问题规模成二次方。因此,未知数变得相对较大。
我正在考虑用不同的编程语言重写我的程序。在我的印象中,科学计算中最常用的语言是 FORTRAN、C++ 或 Python。我想说的是,我不想重新发明轮子。
得到这个想法的一些方面:
- 我想将现有的库/包(例如 LAPACK、ARPACK、UMFPACK、PETSc 等)用于线性代数应用程序。我不想再写高斯消元法了。
- 我不想在 for 循环中对每个矩阵乘法进行编程。
- 我想将非结构化数据导出为
vtk文件格式。我想使用 GNU Octave 中的二维绘图工具。 - 我想使用 MATLAB 之类的方法,例如
sparseorblkdiag。 - 在多个处理器上运行的可能性将受到赞赏,即 openMPI。
我既不是在寻找像Numerical Recipes这样的书,一本关于 PDE 数值的书,也不是一本关于编程的介绍性教科书。我正在寻找一本描述一般方法的书。如何构建程序?如何使我们现有的包?一个例子,例如标准的二维泊松方程会很好。