Computing the numerical solution of partial differential equations (PDEs) is a hallmark of scientific computing. The Portable Extensible Toolkit For Scientific Computing(PETSc) is a robust and scalable library that provides a suite of classes for developing large-scale scientific applications centered around the solution to PDEs and other numerical problems. The class structure of PETSc is designed in a hierarchical fashion, with classes building on each other in increasing levels of abstraction. At the lowest level, PETSc provides a set of classes for creating data structures, specifically vectors and matrices. At the highest level, the classes are designed to solve time-dependent nonlinear problems. Each class implemented in PETSc is designed around an abstract interface that defines how the class should be interacted with but not how it is actually implemented. This design keeps the interaction with the classes simple and consistent while allowing for a variety of underlying implementations, including user-defined ones. Through the use of an abstract interface, PETSc relies on run-time polymorphism to allow easier modification of both data storage formats and algorithms without having to re-compile or re-design the application. This chapter introduces PETSc and demonstrates how to leverage its capabilities in scientific applications.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

PETSc

  • Raymond J. Spiteri,
  • Kyle Klenk

摘要

Computing the numerical solution of partial differential equations (PDEs) is a hallmark of scientific computing. The Portable Extensible Toolkit For Scientific Computing(PETSc) is a robust and scalable library that provides a suite of classes for developing large-scale scientific applications centered around the solution to PDEs and other numerical problems. The class structure of PETSc is designed in a hierarchical fashion, with classes building on each other in increasing levels of abstraction. At the lowest level, PETSc provides a set of classes for creating data structures, specifically vectors and matrices. At the highest level, the classes are designed to solve time-dependent nonlinear problems. Each class implemented in PETSc is designed around an abstract interface that defines how the class should be interacted with but not how it is actually implemented. This design keeps the interaction with the classes simple and consistent while allowing for a variety of underlying implementations, including user-defined ones. Through the use of an abstract interface, PETSc relies on run-time polymorphism to allow easier modification of both data storage formats and algorithms without having to re-compile or re-design the application. This chapter introduces PETSc and demonstrates how to leverage its capabilities in scientific applications.