線形代数プロセス¶
GetFEM で使用される線形代数ライブラリは Gmm++ で,今は別のライブラリとして独立しています. GMM++ユーザドキュメント を参照してください.
GetFEM 内にはバージョン3.0の SuperLU ( SuperLU のウェブサイト を確認してください)が含まれているので(リリース1.7以降),直接的な疎ソルバーがそのまま利用可能です.ただし, ./configure
ファイルのオプションでは,インストールされているバージョンを使用するために SuperLU のインクルードバージョンを無効にすることができます.
MUMPS に対する小さなインターフェースも提供されています( MUMPSのウェブサイト1 もしくは MUMPSのウェブサイト2 を確認してください).ファイル gmm/gmm_MUMPS_interface.h
を参照してください. MUMPS を使用するには,configureシェルにいくつかのオプションを指定する必要があります
--with-mumps-include-dir=" -I /path/to/MUMPS/include "
--with-mumps=" F90 libraries and libs of MUMPS to be linked "
あるいは,オプション --enable-mumps
を指定することで,インストールされているMUMPSライブラリを検索します.あなたのシステム(特にDebianとUbuntu)に直列版と並列版の両方がインストールされている場合,デフォルトのバージョンは並列版になります.直列版を選択するには,オプション --with-mumps="-lsmumps_seq -ldmumps_seq -lcmumps_seq -lzmumps_seq"
を追加する必要があります.
例えば, MUMPS の直列版を倍精度と倍精度複素数で使用したい場合以下のようにします.
--with-mumps-include-dir=" -I /path/to/MUMPS/include "
--with-mumps=" ...F90libs... -L /path/to/MUMPS/lib -ldmumps -lzmumps -lpord
-L /path/to/MUMPS/libseq -lmpiseq "
ここで, ...F90libs...
は, MUMPS をコンパイルするために使用されるFortranコンパイラのライブラリです(この部分は使用されているFortran 90コンパイラに大きく依存しますが, ./configure
スクリプトではマシン上のデフォルトのFortran 90コンパイラに関連するオプションを捜し出して指定する必要があります.例えば, ifort
コンパイラでは, -L/opt/icc8.0/lib -lifport -lifcoremt -limf -lm -lcxa -lunwind -lpthread
です.).