1 可移植可扩展科学计算工具箱PETSc 可移植可扩展科学计算工具箱PETSc (Portable, Ex tensible Toolkit for Scientific Compu tation)是美国能源部ODE2000 支持开发的20 多个ACTS(Adv anced Compu tational Testing and Simu lation)工具箱之一,由Argonne 国家实验室承担开发并获得成功,主要用于在分布式存储环境高效求解偏微分方程组及相关问题。PETSc 在软件实现上采用ANSI C和消息传递标准接口MPI,遵循面向对象设计的基本特征,同时也为使用者提供基于FORTRAN 语言的调用接口。 PETSc工具箱概况 PETSc 是系列数据结构和功能子程序的集合,三个基本组件KSP、SNES 和TS 本身基于BLAS、LAPACK、MPI 等库实现,同时为TAO、ADIC/ADIFOR、Matlab 等工具提供数据接口和互操作功能,并具有极好的可扩展性能。PETSc 为用户提供了丰富的Kry lov 子空间迭代方法和预条件子,并提供错误检测、性能统计和图形打印等功能。 目前 PETSc 不支持网格生成与精细技术、图形的划分与负载平衡方法、完整的科学计算可视化等,因为这些问题不是PETSc 考虑的重点。PETSc 对这类解题需求的主要应对办法是,针对不同的功能要求,找到其它若干合适、出色的数值软件,通过实现PETSc 对这些专门软件的访问操作接口,使得用户能够在PETSc 的解题环境下也能方便的调用相关软件的特定功能,从而避免无谓的重复性劳动。 作为一个不断发展更新的工具箱,PETSc 的最初的开发工作始于1991 年,期间随着对软件包设计理解的深入而经历了较大的发展,开发人员仍一直致力于软件包的局部内容改进与功能完善工作,保持着平均每年做两次版本更新的发展速度,迄今为止己有二十多个历史版本。目前最新的免费版本为2010 年 3 月发布的3.1 版,源代码公开(不包含用户自己加入的核心计算子程序)。如今 PETSc 己成为国际流行的成熟并行数值软件包,受到大量工程计算人员的青睐。 体系结构 不同于其它微分/代数方程解法器,PETSc 为用户提供了一个通用的高层应用程序开发平台。基于PETSc 提供的大量对象和解法库,用户可以灵活地开发自己的应用程序,还可随意添加和完善某些功能,如为线性方程求解提供预条件子、为非线性问题的牛顿迭代求解提供雅可比矩阵、为许多数值应用软件和数学库提供接口等。图 1 表示了 PETSc 在实现层次上的抽象,图 2 具体列举了 PETSc 的基本数值部件。这里做简要说明: 应用程序:用户在PETSc 环...