petsc利用方法-cc.kyushu.docVIP

  • 4
  • 0
  • 约 25页
  • 2017-02-06 发布于湖南
  • 举报
petsc利用方法-cc.kyushu

PETSc利用方法 2000年 4月1日 目次: 【1】PETScとは 1 【2】基本操作 2 2-1  PETScの利用方法 2 2-1-1 プログラムの構成 4 2-1-2 コンパイル 8 2-1-3 実行 8 【3】基本機能 9 3-1 ベクトル 9 3-1-1 ベクトルの生成 9 3-1-2 ベクトル値の設定 10 3-2 行列 11 3-2-1 行列の生成 11 3-2-2 行列値の設定 12 【4】SLES(Linear Equations Solves) 14 4-1 SLES使用の流れ 14 4-2 反復解法及び前処理の指定 15 【5】PETScのルーチン一覧 17 5-1 KSP(Krylov Subspace)ルーチン 17 5-2 前処理ルーチン 17 5-3 ベクトルルーチン 18 5-4 行列ルーチン 20 【6】むすび 23 【1】PETScとは PETSc (The Portable Extensible Toolkit for Scientific Computation) は, アメリカのArgonne National Laboratory内に発足したMathematics and Computer Science Division projectのメンバーであるSatish Balay, William Gropp, Lois Curfman McInnes, Barry Smithの手によって開発されているプログラムライブラリであり現在アメリカでは航空力学や音響学等の数値解析に利用されている. 今回, 九州大学大型計算機センターにインストールしたバージョンはPETSc-2.0.24である. 現在出されている最新バージョンはPETSc-2.0.29であり, 2000年9月26日にリリースされている.  PETScの主な特徴は次の通りである. PETScはオープンソースでありソースコードは, 以下のURLから入手できる.      /PETSc/ C, C++, FORTRAN の3種類のプログラミング言語をサポートしている. (それぞれのPETSc関数モジュール自体はC言語でプログラミングされているが, その 関数モジュールをつなげて作成するプログラムは上記3種類の言語のいずれでもよい. ) 実数計算に加えて複素数計算も可能である. 様々な機種での利用が可能である. MPI(Message Passing Interface)を用いて, ベクトルの分散及び収集等といった並列化ベクトル計算や. 行列の組み合わせを簡単かつ効果的に行うことが可能である. 疎行列のデータの格納をいくつかのフォーマットで行うことが可能である. LU前処理やILU前処理, block Jacobi前処理などといった様々な前処理プログラムを含んでいる. (前処理技術とはある問題を特定の解法で解くとき, 予めより効果的に解けるような同値な問題に変形することであり, h)のKrylov部分空間法と併用することによって, 収束性が著しく向上することが多く, 超大規模な問題の有効な解法として注目を浴びている.) GMRES, CG法等といった様々な種類のKrylov部分空間法(反復法)プログラムを含んでいる. 線形方程式?非線形方程式両方のsolverを所有している. コマンドライン上でオプションによる様々な機能が充実している. g), h)の前処理や, Krylov部分空間法の指定などもプログラムの書き換えをせずにコマンドライン上でオプションで指定してやることで同等の機能が利用可能である.また収束判定や計算時間などもオプションで表示させることも可能である. k) エラーチェック機能が充実している. 【2】基本操作 2-1  PETScの利用方法  ここでは, Figure1に示すプログラムを使い, PETScを用いたプログラムの構成と, コンパイル, 実行の方法を紹介する.このプログラムは Ax = bという線形方程式を, 前処理としてヤコビ前処理を, 反復方法としてGMRES(m)【リスタート値m=30】を, SolverはSLESを用いて解く. 言語はC言語で書かれている. #include sles.h 1)  static char help[] = Solves a tridiagonal linear system with SLES.\n\n 2) int main(int argc, char **args)    

文档评论(0)

1亿VIP精品文档

相关文档