可移植可扩展科学计算工具箱PETSc简介[16].pdf

可移植可扩展科学计算工具箱PETSc简介[16].pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

可移植可扩展科学计算工具箱PETSc简介

可移植可扩展科学计算工具箱PETSc

可移植可扩展科学计算工具箱PETSc(Portable,ExtensibleToolkitfor

ScientificComputation)是美国能源部ODE2000支持开发的20多个ACTS(Advanced

ComputationalTestingandSimulation)工具箱之一,由Argonne国家实验室承担开发

并获得成功,主要用于在分布式存储环境高效求解偏微分方程组及相关问题。PETSc在软

件实现上采用ANSIC和消息传递标准接口MPI,遵循面向对象设计的基本特征,同时也为

使用者提供基于FORTRAN语言的调用接口。

PETSc工具箱概况

PETSc是系列数据结构和功能子程序的集合,三个基本组件KSP、SNES和TS本身基于

BLAS、LAPACK、MPI等库实现,同时为TAO、ADIC/ADIFOR、Matlab等工具提供数据接口

和互操作功能,并具有极好的可扩展性能。PETSc为用户提供了丰富的Krylov子空间迭代

方法和预条件子,并提供错误检测、性能统计和图形打印等功能。

目前PETSc不支持网格生成与精细技术、图形的划分与负载平衡方法、完整的科学计

算可视化等,因为这些问题不是PETSc考虑的重点。PETSc对这类解题需求的主要应对办

法是,针对不同的功能要求,找到其它若干合适、出色的数值软件,通过实现PETSc对这

些专门软件的访问操作接口,使得用户能够在PETSc的解题环境下也能方便的调用相关软

件的特定功能,从而避免无谓的重复性劳动。

作为一个不断发展更新的工具箱,PETSc的最初的开发工作始于1991年,期间随着对

软件包设计理解的深入而经历了较大的发展,开发人员仍一直致力于软件包的局部内容改

进与功能完善工作,保持着平均每年做两次版本更新的发展速度,迄今为止己有二十多个

历史版本。目前最新的免费版本为2021年3月发布的3.1版,源代码公开(不包含用户自

己加入的核心计算子程序)。如今PETSc己成为国际流行的成熟并行数值软件包,受到大

量工程计算人员的青睐。

体系结构

不同于其它微分/代数方程解法器,PETSc为用户提供了一个通用的高层应用程序开发

平台。基于PETSc提供的大量对象和解法库,用户可以灵活地开发自己的应用程序,还可

随意添加和完善某些功能,如为线性方程求解提供预条件子、为非线性问题的牛顿迭代求

解提供雅可比矩阵、为许多数值应用软件和数学库提供接口等。图1表示了PETSc在实现

层次上的抽象,图2具体列举了PETSc的基本数值部件。这里做简要说明:

应用程序:用户在PETSc环境下基于PETSc对象和算法库编写的串行或并行应用程序,

PETSc程序具有固定的框架结构,即有初始化、空间释放和运行结束等环境运行语句。

PDE解法器:用户基于PETSc的三个基本算法库(TS、SNES和KSP)构建的偏微方程

求解器。

TS:时间步进积分器,用于求解依赖时间或时间演化的ODE方程,或依赖时间的离散

化后的PDE方程。TS积分器最终依赖线性解法器SLES和非线性解法器SNES来实现。

PETSc还为PVODE库提供了接口。

SNES:非线性解法器,为大规模的非线性问题提供高效的非精确或拟牛顿迭代解法。

1

SNES依赖于线性解法器,Newton型方法是软件包的核心,并采用线性搜索和信赖域

方法实现。

KSP:线性解法器,它是PETSc的核心部分。PETSc几乎提供了各种高效求解线性方程

的解法器,包括直接解法和各种迭代解法。对于大规模的线性方程,PETSc提供了大量基

于Krylov子空间方法和预条件子的各种成熟而有效的迭代方法,以及其它通用程序和用

户程序的接口。线性解法器由Krylov子空间方法对象KSP和预条件对象PC组成,统一由

KSP库实现。

层次应用程序SNES(非线性方程解法器)TS(时间步进积分器)KSP(Krylov子空间方

法)PC(预条件子)Mat(矩阵)Vec(向量)IS(索

您可能关注的文档

文档评论(0)

kxg3030 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档