FrontISTR Commons 2024年7月20日目次1

1
FrontISTRインストールマニュアル
本ソフトウェアは文部科学省次世代IT基盤構築のための研究開発「イノベーション基盤シミュレーションソフトウェアの研究開発」プロジェクトによる成果をシーズとして，継続的に開発されている並列有限要素解析プログラムです。本ソフトウェアを無償または啓利目的でご使用になる場合、「MITライセンス」をご了承頂くことが前提となります。
マニュアルリスト1.1 •イントロダクション•インストールマニュアル•理論マニュアル●解析マニュアル•チュートリアル• FAQ本マニュアルでは、大規模並列FEM非線形構造解析プログラムFrontISTRのインストール方法を説明します。
1.2 本マニュアルの記載内容
• PDF •動作環境•アーカイプの解凍・展開•インストールの概要• cmakeでのインストール– CentOS7.6へのインストール手順例(cmake) – Ubuntu18.04へのインストール手順例(cmake) • Makefile.confでのインストール– Makefile.confでの設定項目– CentOS7.6へのインストール手順例(Makefile.conf) – Ubuntu18.04へのインストール手順例(Makefile.conf) – Windows10へのインストール手順例(Makefile.conf)
1.3動作環境
1.3.1　必要なソフトウェア本ソフトウェアのインストールに際して、インストールする環境に以下のソフトウェアがインストールされている必要があります。なお、これらのソフトウェアのインストールについては、各ソフトウェアのインストールマニュアルをご参照ください。 1.3.1.1    C、C++、Fortran90コンパイラー本ソフトウェアのインストールには、C、C++およびFortran90コンパイラーが必要です。
1.3.1.2 MPI
本ソフトウェアはMPIにより並列化されているため、MPI-1規格に準拠したMPIライプラリが必要となります。MPIを実装したフリーで利用できるライプラリの代表的なものには、MPICHやOpenMPIなどがあります。 OpenMPIは下記のWEBサイトからhttps://www.open-mpi.org/ MPICHは下記のWEBサイトからダウンロードすることができます。 http://www.mpich.org/
1.3.1.3 METIS
本ソフトウェアの領域分割ユーティリティは、METISのライプラリを使用することでpMETIS、kMETISによる領域分割が可能です。これらの領域分割機能を利用する場合にはMETISが必要となります。なお、METISのバージョンは、最新のVer.5系列とVer.4系列が利用可能です。また、METISがインストールされていない環境でも、RCBアルゴリズムによる領域分割は可能です。 METISは下記のWEBサイトからダウンロードすることができます。 http://glaros.dtc.umn.edu/gkhome/metis/metis/overview
1.3.1.4  ParMETIS
本ソフトウェアの並列領域分割ユーティリティは、ParMETISライブラリを使用する予定です。現時点ではParMETISは不要です。 ParMETISは下記のWEBサイトからダウンロードすることができます。 http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview
1.3.1.5 HEC-MW
本ソフトウェアは、「革新的シミュレーションソフトウェアの研究開発」プロジェクトおよび「イノベーション基盤シミュレーションソフトウェアの研究開発」プロジェクトで開発されたHEC-MWライプラリを利用しています。このHEC-MWはFrontISTRのアーカイプに同梱されており、本ソフトウェアのインストール時に自動的にコンパイルされるため、別途インストールする必要はありません。
1.3.1.6 REVOCAP_Refiner
本ソフトウェアは、「イノベーション基盤シミュレーションソフトウェアの研究開発」プロジェクトで開発されたメッシュ細分化ツールREVOCAP_Refinerに対応しています。メッシュ糊分化機能を利用する場合にはREVOCAP_Refinerが必要となります。REVOCAP_Refinerの最新版は下記のWEBサイトからダウンロードすることができます。 4
1.3.1.7 REVOCAP_Coupler
本ソフトウェアは、「イノベーション基盤シミュレーションソフトウェアの研究開発」プロジェクトで開発された連成解析ツールREVOCAP_Couplerに対応しています。連成解析機能を利用する場合にはREVOCAP_Couplerが必要となります。REVOCAP_Couplerは下記のWEBサイトからダウンロードすることができます。 http://www.ciss.iis.u-tokyo.ac.jp/dl/index.php
1.3.1.8 LAPACK/BLAS
本ソフトウェアは、CG法およびGMRES法を用いた前処理適用後行列の条件数推定機能が実装されています。本機能を利用する場合にはLAPACKが必要になります。また、LAPACKを利用するにはBLASが必要となります。 LAPACKのリファレンス実装は下記WEBサイトからダウンロードすることができます。 http://www.netlib.org/lapack/ BLASのリファレンス実装は下記WEBサイトからダウンロードすることができます。 http://www.netlib.org/blas/高速なオープンソースの実装としてはOpenBLASなどが利用できます。OpenBLASは下記WEBサイトからダウンロードすることができます。 http://www.openblas.net/なお、後述するIntel MKLがインストールされている場合、改めてインストールする必要はありません。
1.3.1.9 MUMPS
本ソフトウェアは、パプリックドメインの並列直接法ソルバー MUMPS (a MUltifrontal Massively Parallel sparse direct Solver）に対応しています。MUMPSは、Esprit IV European project PARASOL (1996-1999)で開発されたソフトウェアをベースとし、CERFACS, CNRS, ENS Lyon, INPT(ENSEEIHT)-IRIT, INRIAおよびUniversity of Bordeauxの各機関により研究開発されたものです。MUMPSは下記のWEBサイトからダウンロードすることができます。 http://mumps.enseeiht.fr/
1.3.1.10  ScaLAPACK
本ソフトウェアで直接利用していませんが、上述のMUMPSはScaLAPACKを利用します。ScaLAPACKは下記のWEBサイトからダウンロードすることができます。 http://www.netlib.org/scalapack/なお、後述するIntel MKLがインストールされScaLAPACKライプラリがインストールされている場合、改めてインストールする必要はありません。
1.3.1.11 ML
本ソフトウェアは、代数マルチグリッド法に基づく前処理ライプラリML（Multi-Level Preconditioner）に対応しています。MLは、Sandia National Laboratoriesで進められているTrilinosプロジェクトで開発されているパッケージのひとつです。MLは下記のWEBサイトからダウンロードすることができます。 https://trilinos.org/ 1.3.1.12   Intel MKL (Math Kernel Library)本ソフトウェアの接触解析モジュールでは、Intel MKLを利用しています。インストールする環境にIntel MKLがインストールされていない場合、接触解析の一部の機能が利用できません。
1.3.2動作確認環境
本ソフトウェアは、下記の環境において動作確認を行っています。ただし、これ以外の環境においても、前述のインストールに必要なソフトウェアが導入されている場合、正常に動作すると思われます。

1.4アーカイブファイルの解凍・展開
アーカイプファイルは、tarによりアーカイプ化され、gzipにより圧縮されています。このアーカイプファイルを、以下のコマンドで解凍・展開します。 $ tar xzf FrontISTR_V50.tar.gz本ソフトウェアをインストールする環境のtarコマンドがzオプションをサポートしていない場合は、以下のコマンドで解凍・展開します。 $ gzip  - dc FrontISTR_V50.tar.gz | tar xf  -アーカイブファイルを解凍・展開すると、アーカイプを展開したディレクトリにFrontISTRというディレクトリが作成されます。以下、このディレクトリを${FSTRBUILDDIR}と記します。
1.5インストール
1.5.1　サポートされているインストール方法本ソフトウェアでは、2つのインストール方法がサポートされています。
1.5.1.1 cmakeでのインストール
本ソフトウェアは、cmakeを用いたインストールをサポートしています。 cmakeを予めインストールしておく必要があります。cmakeは下記WEBサイトからダウンロードすることができます。 https://cmake.org/ $ cd ${FSTRBUILDDIR} $ mkdir build $ cd build $ cmake .. $ make −j2 $ make installインストールされているライプラリを自動で探索し、FrontISTRの機能を有効にします。また、複数コアを持ったコンピュータでは、並列コンパイルを有効にすることで、コンパイル時間の短縮が期待できます。 cmakeでのインストールつづき
1.5.1.1参考
•参考CentOS7.6へのインストール手順例(cmake) •参考Ubuntu18.04へのインストール手順例(cmake) 1.5.1.2  Makefile.confでのインストール本ソフトウェアでは、手動でライプラリやコンパイラ、有効にする機能を指定する方法がサポートされています。 $ cd ${FSTRBUILDDIR} $ cp Makefile .conf .org Makefile .conf $ vi Makefile.confファイルを編集しコンパイラやライブラリの場所を指定$ ./setup.sh [有効にしたい機能を指定] $ make $ make install cmakeでの自動設定が困難な環境では、こちらの方法での構築を推奨します。なお、こちらの方法は並列コンパイルがサポートされていません。 Makefile.confでのインストールつづき
1.5.1.2.1参考
•参考CentOS7.6へのインストール手順例(Makefile.conf) •参考Ubuntu18.04へのインストール手順例(Makefile.conf) •参考Windows10へのインストール手順例(Makefile.conf)
1.6 cmakeでのインストール
cmakeには、ライプラリの自動探索機能が備わっています。それらを手動で明示することもできます。 cmakeコマンドの詳細は、https://cmake.org/をご覧ください。 1.6.1準備本ソフトウェアの構築に必要なライプラリを予めインストールします。インストールするライブラリのディレクトリ構成は$HOME |— local — bin |— include |— libの様な構成を推奨します。その際、上記の場合$PATH環境変数に$HOME/local/binを追加してください。 cmakeがインストールされているかを確認します。cmakeはバージョン2.8.11以上が必要になります。 $ cmake — version cmake version 2.8.12.2 1.6.2 構築次にFrontISTRを構築します。 $ cd `${FSTRBUILDDIR}` $ mkdir build $ cd build $ cmake .. $ make —j2 makeのオプション—j2は、並列コンパイルの数を示しています。構築するコンピュータのコア数に併せて数を増やすことで、コンパイル時間の短縮が期待できます。 1.6.3 make installの実行makeの実行が正常に終了したあと、本ソフトウェアをインストールするため、以下のコマンドを実行します。 $ make install以上で/usr/local/binもしくは、—DCMAKE_INSTALL_PREFIXで指定したディレクトリに、本ソフトウェアがインストールされます。インストールする場所を変えるには、cmakeコマンドにオプションを追加します。 $ cmake —DCMAKE_INSTALL_PREFIX—$HOME/local ..などとオプションを追加してください。コンパイルされたFrontISTR( fistr1 )が、どの機能を有効になっているかは./ fistr1  —v FrontISTR version 5.0.0 (eb7fb1c1a3d210b0c1f70b41c92995bfcb050e82) MPI:  Enabled OpenMP: Enabled HECMW_METIS_VER:   5 Compile Option: -p —with—tools —with—metis —with—mumps —with—lapack —with—mlで確認することができます。 1.6.4  cmakeのオプションcmakeコマンドを実行する際、オプションを指定することで挙動を明示的に指定することができます。 9
cmakeで設定されている変数の一覧は$ cmake —Lで確認できます。その他、使用するコンパイラの指定やライプラリの指定をするオプションは以下の通りです。

1.7簡易テスト機能について
本ソフトウェアには、コンパイルしたオプジェクトが正しく動くことを確認するための簡易テストスクリプトが同梱されています。テストを行うにはrubyを予めインストールします。rubyがインストールされていれば、cmake時にテストが自動的に有効になります。 cmakeで本ソフトウェアをコンパイル後、以下のようにしてテストを実行します。 $ make testテストは以下のように実行されます。 /home/fistr/Work/FrontISTR/build$ make test Running tests ... Test project /home/fistr/Work/FrontISTR/build Start  1: Static_exA_Test 1/23 Test #1: Static_exA_Test ...................... Start 2: Static_exB_Test
2/23 Test #2: Static_exB_Test .................... 3: Static_exC_Test Start ...更に詳細なメッセージを出力する場合$ make test ARGS="-VV -O test_log.txt"とすると、test_log.txtファイルの中に結果が出力されます。オプションの詳細は$ ctest —helpを参照してください。
ソースコードのドキュメンテーションについて
1.8
本ソフトウェアのソースコードを学習に用いる際、各サプルーチンの相関やソースコードに埋め込まれているコメントを、プラウザで参照することができます。ソースコードのドキュメントをHTMLで構築するには、予めdoxygenとgraphvizをインストールします。以下の手順でHTMLを構築します。 $ cmake –DWIIH_DOC-ON .. $ make doc作成されたHTMLを以下のようにして参照します。 $ firefox doc/html/index.html図1
1.9デバッグを有効にする
デバッグを有効にするには、 $ cmake –DCMAKE_BUILD_TYPE="DEBUG" ..としてからmakeをします。更に高度なデバッグオプションを有効にするには$ cmake -DCMAKE_BUILD_TYPE="DEBUG" -DDEBUG_EXTRA-ON ..とすると、メモリリークなどの検出に役立ちます。
1.10  Makefile.confでのインストール
以下の手順で、本ソフトウェアをインストールします。
1.10.1  Makefile.confの編集
${FSTRBUILDDIR}にあるMakefile.conf.orgを、本ソフトウェアをインストールする計算機環境に合わせて編集し、 Makefile.confを作成します。定義できる変数は数多くありますが、ほとんどの変数については既定値をそのまま利用で12
すべての変数の詳細については、「付録1 Makefile.confの変数一覧」をご参照ください。また、「付録2 Makefile.confの設定例」にMakefile.confの一例を記載します。 1.10.2  setup.shの実行${FSTRBUILDDIR}にて、シェルスクリプトsetup.shを以下のように実行し、Makefileを作成します。 $ ./setup.sh並列計算用のライプラリを生成する場合などは、下記のオプションを指定してsetup.shを実行して下さい。
以下では、setup.sh実行の例を示します。
1.10.2.2 並列処理用にコンパイルする場合
MPIがインストールされている並列実行環境で本ソフトウェアを使用する場合、以下のように** -pまたは-parallel **オプションを付けてsetup.shを起動します。 $ ./setup.sh - p 1.10.2.3パーティショナーなどのツールを生成する場合パーティショナー (RCB)やビジュアライザーなどのプリ・ポスト処理用ツールが必要な場合、以下のように** –with-tools **オプションを付けてsetup.shを実行すると、各種ツールが生成されます。 $  ./setup.sh  -p —with—tools
1.10.2.4  METISを使用する場合
METISがインストールされている環境では、さらに以下のように** –with-metis **オプションを付けてsetup.shを実行すると、パーティショナーにおいてMETISの使用が可能となります。 $ ./setup.sh -p —with—tools —with—metis 1.10.3  makeの実行${FSTRBUILDDIR}にて、以下のようにmakeを実行します。 $ make 2 > & 1 | tee make.log makeの実行には、計算機環境によっては数十分かかる場合があります。実行中にエラーが生じた場合は、Makefile.confの設定の見直し等を行なって下さい。 1.10.4  make installの実行makeの実行が正常に終了した後、Makefile.confで指定したディレクトリに本ソフトウェアをインストールするために、以下のようにmake installを実行します。 $ make install 1.10.5  Windows環境へのインストールWindows環境では、以下のUNIXライク環境を用いることにより、上記の手順でインストールが可能です。 • 逐次処理版: MinGW, Cygwin •並列処理版：MinGW + Microsoft MPI, Cygwin + OpenMPI 14
1.11付録
1.11.1
Makefile.confの変数一覧
1.11.1.1　MPIに関する設定
MPI対応コンパイラーが自動参照している場合は、MPIに関する設定は不要である。

1.11.1.3  METISに関する設定

1.11.1.4  ParMETISに関する設定

1.11.1.7  MUMPSに関する設定

1.11.1.8  MLに関する設定

1.11.1.9    Cコンパイラーに関する設定

1.11.1.10　C++コンパイラーに関する設定

1.11.1.11 Fortran90コンパイラーに関する設定

1.11.1.12   UNIXコマンドに関する設定

1.11.2  Makefile.confの設定例# MPI MPIDIR MPIBINDIR = MPILIBDIR = MPIINCDIR = MPILIBS     = # for install option only PREFIX BINDIR = $(PREFIX)/bin LIBDIR INCLUDEDIR = $(PREFIX)/include # Metis METISDIR       =  $ (HOME) / Metis −4.0 METISLIBDIR = $(METISDIR) METISINCDIR = $(METISDIR)/Lib # ParMetis PARMETISDIR        =  $ (HOME) / ParMetis −3.1 PARMETISLIBDIR = $(PARMETISDIR) PARMETISINCDIR = $(PARMETISDIR)/ParMETISLib # Refiner REFINERDIR        = $(HOME)/REVOCAP_Refiner—1.1.0 REFINERINCDIR = $(REFINERDIR)/ Refiner REFINERLIBDIR = $(REFINERDIR)/lib/x86_64—linux # Coupler REVOCAPDIR    = $(HOME)/REVOCAP_Coupler—1.6.2 REVOCAPINCDIR = $(REVOCAPDIR)/librcap REVOCAPLIBDIR = $(REVOCAPDIR)/librcap # MUMPS MUMPSDIR        = $ (HOME) /MUMPS_4.10.0 MUMPSINCDIR = $(MUMPSDIR)/include MUMPSLIBDIR = $(MUMPSDIR)/ l i b # ML MLDIR     = $(HOME)/trilinos/11.8.1/ml MLINCDIR = $(MLDIR)/include MLLIBDIR = $(MLDIR)/lib # C compiler settings cc       = mpiicc CFLAGS     = LDFLAGS  = —lm
19
OPTFLAGS = −O3 CLINKER  = mpiicc # CH compiler settings CPP = mpiicpc CPPFLAGS      = –DMPICH_IGNORE_CXX_SEEK – I$ (HOME) / include CPPLDFLAGS   = CPPOPTFLAGS = −03 # Fortran compiler settings F90 = mpiifort F90FLAGS ll F90LDFLAGS  = -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 F90OPTFLAGS = −02 F90LINKER   = mpiifort 1.11.3　京コンピュータおよび富士通FX10における注意本パージョンでは、京コンピュータおよび富士通FX10向けのチューニングが行われていますが、これに伴い、利用する環境に応じてソースコードの一部を変更する必要があります。変更するファイル： hecmw1/src/solver/solver_33/hecmw_tuning_fx.f90変更内容：ファイル内で定義されているパラーメータ変数TotalSectorCacheSizeを•京コンピュータでは12 • FX10では24に設定する。なお、初期状態では京コンピュータ向けの設定となっています。
1.12付録
1.12.1  Makefile.confの変数一覧1.12.1.1　MPIに関する設定MPI対応コンパイラーが自動参照している場合は、MPIに関する設定は不要である。

1.12.1.3  METISに関する設定

1.12.1.4    ParMETISに関する設定

1.12.1.7  MUMPSに関する設定

1.12.1.8  MLに関する設定

1.12.1.9    Cコンパイラーに関する設定

1.12.1.10　C++コンパイラーに関する設定

1.12.1.11 Fortran90コンパイラーに関する設定

1.12.1.12   UNIXコマンドに関する設定

1.12.2  Makefile.confの設定例# MPI MPIDIR ll MPIBINDIR = MPILIBDIR = MPIINCDIR = MPILIBS =
# Metis METISDIR = $(HOME)/ Metis −4.0 METISLIBDIR = $(METISDIR) METISINCDIR = $(METISDIR)/Lib # ParMetis PARMETISDIR        =  $ (HOME) / ParMetis −3.1 PARMETISLIBDIR = $(PARMETISDIR) PARMETISINCDIR = $(PARMETISDIR)/ParMETISLib # Refiner REFINERDIR        = $(HOME)/REVOCAP_Refiner—1.1.0 REFINERINCDIR = $(REFINERDIR)/ Refiner REFINERLIBDIR = $(REFINERDIR)/lib/x86_64—linux # Coupler REVOCAPDIR    = $(HOME)/REVOCAP_Coupler—1.6.2 REVOCAPINCDIR = $(REVOCAPDIR)/librcap REVOCAPLIBDIR = $(REVOCAPDIR)/librcap # MUMPS MUMPSDIR        = $ (HOME) /MUMPS_4.10.0 MUMPSINCDIR = $(MUMPSDIR)/include MUMPSLIBDIR = $(MUMPSDIR)/lib # ML MLDIR     = $(HOME)/trilinos/11.8.1/ml MLINCDIR = $(MLDIR)/include MLLIBDIR = $(MLDIR)/lib # C compiler settings cc       = mpiicc CFLAGS     = LDFLAGS  = —lm OPTFLAGS = −O3 CLINKER  =  mpiicc # CH compiler settings CPP CPPFLAGS       = –DMPICH_IGNORE_CXX_SEEK – I$ (HOME) / include CPPLDFLAGS   = CPPOPTFLAGS = −03 # Fortran compiler settings F90         = mpiifort F90FLAGS
25
F90LDFLAGS  = -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 F90OPTFLAGS = −02 F90LINKER   = mpiifort 1.12.3　京コンピュータおよび富士通FX10における注意本パージョンでは、京コンピュータおよび富士通FX10向けのチューニングが行われていますが、これに伴い、利用する環境に応じてソースコードの一部を変更する必要があります。変更するファイル： hecmw1/src/solver/solver_33/hecmw_tuning_fx.f90変更内容：ファイル内で定義されているパラーメータ変数TotalSectorCacheSizeを•京コンピュータでは12 • FX10では24に設定する。なお、初期状態では京コンピュータ向けの設定となっています。
1.13参考CentOS7.6へのインストール手順例(cmake)
CentOS7.6上へ本ソフトウェアと、それに必要な外部ライプラリの構築手順の例を示します。他の環境へのインストールの参考にしてください。また、各ライプラリの詳細な構築方法は、それぞれのドキュメントを参考にしてください。
1.13.1準備
最初に本ソフトウェアをコンパイルするのに必要なツールやパッケージをインストールしてください。 $ su # yum group mark install "Development Tools" # yum update # yum install openmpi—devel cmake # exit次にMPIの環境設定を行います。コマンドライン上で$ module purge $ module load mpi/openmpi-x86_64 $HOME/.bash_profileに記述しておけば、次回ログイン時も設定が反映されます。 gcc/g++/gfortranおよびMPIのラッパーが正しくインストールされているか確認してください。 $ which gcc g++ gfortran mpicc mpic++ mpifort / usr / bin / gcc / usr / bin / g++ /usr/bin/gfortran / usr/lib64/openmpi/bin/mpicc / usr/lib64/openmpi/bin/mpic++ / usr/lib64/openmpi/bin/mpifort
1.13.2ライブラリのインストール
本ソフトウェアに必要なライプラリをインストールします。作業ディレクトリは$HOME/work 、インストール先のディレクトリは$HOME/localとします。各ディレクトリを作成し、$HOME/local/binをPATH環境変数に追加します。 $ cd $HOME $ mkdir work $ mkdir —p local/bin local/lib local/include $ export PATH $HOME/local/bin :$PATH
1.13.2.1ダウンロード
以下のソフトウェアをダウンロードし、作業ディレクトリ$HOME/workへ保存します。
1.13.2.2  REVOCAP_Refinerのコンパイル$ cd $HOME/work $ tar xvf REVOCAP_Refiner—1.1.04.tar.gz $ cd REVOCAP_Refiner—1.1.04 $ make $ cp lib/x86_64—linux/libRcapRefiner.a ~/local/lib $ cp Refiner/rcapRefiner.h ~/local/include 1.13.2.3    OpenBLASのコンパイル$ cd $HOME/work $ tar xvf OpenBLAS—0.2.20.tar.gz $ make BINARY=64 NO_SHARED=1 USE_OPENMP=1 $ make PREFIX=~/local install
1.13.2.4  METISのコンパイル
$ cd $HOME/work $ tar xvf metis — 5.1.0.tar.gz $ cd metis – 5.1.0 $ make config prefix=~/local cc=gcc openmp=1 $ make $ make install
1.13.2.5 ScaLAPACKのコンパイル
$ cd $HOME/work $ tar xvf scalapack - 2.0.2.tgz $ cd  scalapack – 2.0.2 $ mkdir build $ cmake —DCMAKE_INSTALL_PREFIX=$HOME/local \ _DCMAKE_EXE_LINKER_FLAGS="—fopenmp" \ –DCMAKE_BUILD_TYPE="Release" \ –DBLAS_LIBRARIES_$HOME/local/lib/libopenblas.a \ –DLAPACK_LIBRARIES_$HOME/local/lib/libopenblas.a \ : $ make $ make install
1.13.2.6  MUMPSのコンパイル
$ cd $HOME/work $ tar xvf MUMPS_5.1.2.tar.gz $ cd MUMPS_5.1.2 $ cp Make.inc/Makefile.inc.generic Makefile.incコピーしたMakefile.incの以下の部分を書き換えます。 28 $ cp Make.inc/Makefile.inc.generic Makefile.inc $ vi Makefile.inc LMETISDIR = $(HOME)/local = − I$ (LMETISDIR) / include IMETIS LMETIS    = —L$(LMETISDIR)/lib —lmetis ORDERINGSF  = —Dmetis —Dpord CC = mpicc FC = mpifort = mpifort FL LAPACK = −L$(HOME)/local/lib −lopenblas SCALAP  = —L$(HOME)/local/lib —lscalapack INCPAR = −I/usr/include/openmpi−x86_64 LIBPAR  = $(SCALAP) —L/usr/lib64/openmpi/lib —lmpi LIBBLAS = —L$(HOME)/local/lib —lopenblas OPTF = −0 −DBLR_MT −fopenmp = −O −I .  −fopenmp = −0 −fopenmp OPTC OPTL書き換えが完了したら保存しmakeします。 $ make $ cp lib/*.a $HOME/local/lib $ cp include/*.h $HOME/local/include 1.13.2.7  Trilinos MLのコンパイル$ cd $HOME/work $ tar xvf trilinos —12.14.1—Source.tar.gz $ cd  trilinos –12.14.1–Source $ mkdir build $ cmake —DCMAKE_INSTALL_PREFIX=$HOME/local \ –DCMAKE_C_COMPILER=mpicc \ _DCMAKE_CXX_COMPILER=mpic++ \ –DCMAKE_Fortran_COMPILER=mpifort \ _DTPL_ENABLE_MPHON \ 29 _DTPL_ENABLE_LAPACK=ON_\ _DTPL_ENABLE_SCALAPACK=ON \ _DTPL_ENABLE_METIS_ON \ _DTPL_ENABLE_MUMPS-ON \ –DTPL_MUMPS_INCLUDE_DIRS_SHOME/local/include \ –DTrilinos_ENABLE_ML=ON \ —DTrilinos_ENABLE_Zoltan=ON \ —DTrilinos_ENABLE_OpenMP=ON \ –DTrilinos_ENABLE_Amesos=ON \ —DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES_OFF \ –DBLAS_LIBRARY_DIRS=$HOME/local/lib \ –DLAPACK_LIBRARY_DIRS_$HOME/local/lib " \ _DSCALAPACK_LIBRARY_DIRS=$HOME/local/lib " \ –DBLAS_LIBRARY_NAMES="openblas" \ –DLAPACK_LIBRARY_NAMES="openblas" \ –DSCALAPACK_LIBRARY_NAMES="scalapack" \ : $ make $ make install 1.13.3 FrontISTRのコンパイル上記ライブラリのコンパイルが済んだらFrontISTRをコンパイルします。 $ cd $HOME/work $ tar xvf FrontISTR_V50.tar.gz $ cd FrontISTR $ mkdir build $ cd build $ cmake –DCMAKE_INSTALL_PREFIX=$HOME/FrontISTR \ –DWIIH_ML=ON \ –DBLAS_LIBRARIES_$HOME/local/lib/libopenblas.a \ –DLAPACK_LIBRARIES_$HOME/local/lib/libopenblas.a \ 1.13.3.1 makeの実行makeを実行します。 $ make 4並列コンパイルをする場合、 $ make —j4 :
1.13.3.2   make installの実行
makeが完了したら、make installを実行し指定したディレクトリヘインストールします。この例では$(HOME)/FrontISTR/binになります。 $ make install
1.13.3動作確認
本ソフトウェアに同梱されているチュートリアルを実行して、動作を確認します。 $ cd $HOME/work/FrontISTR/tutorial $ cd 01_elastic_hinge $ $HOME/FrontISTR/bin/fistr1 Step control not defined! Using default step=1 fstr_setup: OK Start visualize PSF 1 at timestep 0 loading step=   1 sub_step= 1,   current_time=  0.0000E+00, time_inc=  0.1000E+01 1.000000 loading_factor=    0.000000 ### 3x3 BLOCK CG, SSOR, 1 1 1.903375E+00 2 1.974378E+00 3 2.534627E+00 3.004045E+00 4 5 3.202633E+00 6 3.203864E+00 : :解析が終了すると以下の様に画面上に表示されます。 ... ...
### Relative residual = 9.39169E-09 ### summary of linear solver
Start visualize PSF 1 at timestep 1 ### FSTR_SOLVE_NLGEOM FINISHED!
FrontISTR Completed !!
1.14 参考CentOS7.6へのインストール手順例(Makefile.conf)
CentOS7.6上へ本ソフトウェアと、それに必要な外部ライプラリの構築手順の例を示します。他の環境へのインストールの参考にしてください。また、各ライプラリの詳細な構築方法は、それぞれのドキュメントを参考にしてください。 1.14.1準備最初に本ソフトウェアをコンパイルするのに必要なツールやパッケージをインストールしてください。 $ su # yum group mark install "Development Tools" # yum update # yum install openmpi—devel cmake # exit次にMPIの環境設定を行います。コマンドライン上で$ module purge $ module local mpi/openmpi-x86_64 $HOME/.bash_profileに記述しておけば、次回ログイン時も設定が反映されます。 gcc/g++/gfortranおよびMPIのラッパーが正しくインストールされているか確認してください。 $ which gcc g++ gfortran mpicc mpic++ mpifort / usr / bin / gcc / usr / bin / g++ /usr/bin/gfortran / usr/lib64/openmpi/bin/mpicc / usr/lib64/openmpi/bin/mpic++ / usr/lib64/openmpi/bin/mpifort 1.14.2 ライプラリのインストール本ソフトウェアに必要なライプラリをインストールします。作業ディレクトリは$HOME/work 、インストール先のディレクトリは$HOME/localとします。各ディレクトリを作成し、$HOME/local/binをPATH環境変数に追加します。 $ cd $HOME $ mkdir work $ mkdir —p local/bin local/lib local/include $ export PATH $HOME/local/bin :$PATH
1.14.2.1ダウンロード
以下のソフトウェアをダウンロードし、作業ディレクトリ$HOME/workへ保存します。
1.14.2.2  REVOCAP_Refinerのコンパイル$ cd $HOME/work $ tar xvf REVOCAP_Refiner—1.1.04.tar.gz $ cd REVOCAP_Refiner—1.1.04 $ make $ cp lib/x86_64—linux/libRcapRefiner.a ~/local/lib $ cp Refiner/rcapRefiner.h ~/local/include
1.14.2.3    OpenBLASのコンパイル
$ cd $HOME/work $ tar xvf OpenBLAS—0.2.20.tar.gz $ make BINARY=64 NO_SHARED=1 USE_OPENMP=1 $ make PREFIX=~/local install
1.14.2.4  METISのコンパイル
$ cd $HOME/work $ tar xvf metis — 5.1.0.tar.gz $ cd metis – 5.1.0 $ make config prefix=~/local cc=gcc openmp=1 $ make $ make install
1.14.2.5 ScaLAPACKのコンパイル
$ cd $HOME/work $ tar xvf scalapack —2.0.2.tgz $ cd  scalapack – 2.0.2 $ mkdir build $ cmake —DCMAKE_INSTALL_PREFIX=$HOME/local \ –DCMAKE_EXE_LINKER_FLAGS="—fopenmp" \ –DBLAS_LIBRARIES_$HOME/local/lib/libopenblas.a \ –DLAPACK_LIBRARIES–$HOME/local/lib/libopenblas.a \ .. $ make $ make install
1.14.2.6  MUMPSのコンパイル
$ cd $HOME/work $ tar xvf MUMPS_5.1.2.tar.gz $ cd MUMPS_5.1.2 $ cp Make.inc/Makefile.inc.generic Makefile.incコピーしたMakefile.incの以下の部分を書き換えます。 $ vi Makefile.inc $ cp Make.inc/Makefile.inc.generic Makefile.inc $ vi Makefile.inc LMETISDIR = $(HOME)/local IMETIS = —I$(LMETISDIR)/include LMETIS = —L$(LMETISDIR)/lib —lmetis ORDERINGSF  = —Dmetis —Dpord CC = mpicc FC
FL = mpifort LAPACK = −L$(HOME)/local/lib −lopenblas SCALAP  = —L$(HOME)/local/lib —lscalapack INCPAR = −I/usr/include/openmpi−x86_64 LIBPAR  = $(SCALAP) —L/usr/lib64/openmpi/lib —lmpi LIBBLAS = —L$(HOME)/local/lib —lopenblas = −0 −DBLR_MT −fopenmp = −O −I.  −fopenmp = −O −fopenmp OPTF OPTC OPTL書き換えが完了したら保存しmakeします。 $ make $ cp lib/*.a $HOME/local/lib $ cp include/*.h $HOME/local/include 1.14.2.7  Trilinos MLのコンパイル$ cd $HOME/work $ tar xvf trilinos —12.14.1—Source.tar.gz $ cd  trilinos —12.14.1—Source $ mkdir build $ cmake —DCMAKE_INSTALL_PREFIX=$HOME/local \ _DCMAKE_C_COMPILER=mpicc \ _DCMAKE_CXX_COMPILER=mpic++ \ –DCMAKE_Fortran_COMPILER=mpifort \ 35 _DTPL_ENABLE_MPHON \ _DTPL_ENABLE_LAPACK=ON \ _DTPL_ENABLE_SCALAPACK=ON_\ _DTPL_ENABLE_METIS=ON \ _DTPL_ENABLE_MUMPS-ON \ –DTrilinos_ENABLE_ML=ON \ —DTrilinos_ENABLE_Zoltan=ON \ —DTrilinos_ENABLE_OpenMP=ON \ –DTrilinos_ENABLE_Amesos=ON \ —DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES_OFF \ –DBLAS_LIBRARY_DIRS=$HOME/local/lib \ –DLAPACK_LIBRARY_DIRS_$HOME/local/lib " \ –DSCALAPACK_LIBRARY_DIRS=$HOME/local/lib " \ –DBLAS_LIBRARY_NAMES="openblas" \ –DLAPACK_LIBRARY_NAMES="openblas" \ –DSCALAPACK_LIBRARY_NAMES="scalapack" \ : $ make $ make install 1.14.3  FrontISTRのコンパイル上記ライブラリのコンパイルが済んだらFrontISTRをコンパイルします。 $ cd $HOME/work $ tar xvf FrontISTR_V50.tar.gz $ cd FrontISTR 1.14.3.1  Makefile.confの編集雛形をコピーして、環境に合わせた内容に編集します。この例では、以下の様に編集します。 $ cp Makefile.conf.org Makefile.conf $ vi Makefile.conf ### # # Setup Configulation File for FrontISTR # # # # ### # MPI
MPIINCDIR MPILIBS = /usr/include/openmpi—x86_64 = —lmpi —lmpi_cxx —lmpi_mpifh # for install option only PREFIX BINDIR LIBDIR INCLUDEDIR = $(HOME)/FrontISTR = $(PREFIX)/bin = $(PREFIX)/lib = $(PREFIX)/include # Metis METISDIR = $(HOME)/local METISLIBDIR = $(METISDIR)/lib METISINCDIR = $(METISDIR)/include HECMW_METIS_VER=  5 # ParMetis PARMETISDIR    = $(HOME)/local PARMETISLIBDIR = $(PARMETISDIR)/ lib PARMETISINCDIR = $(PARMETISDIR)/include # Refiner REFINERDIR = $(HOME)/local REFINERINCDIR  = $(REFINERDIR)/include REFINERLIBDIR  = $(REFINERDIR)/ lib # Coupler REVOCAPDIR = $(HOME)/local REVOCAPINCDIR  = $(REVOCAPDIR)/include REVOCAPLIBDIR  = $(REVOCAPDIR)/ li b # MUMPS MUMPSDIR MUMPSINCDIR MUMPSLIBDIR MUMPSLIBS = $(HOME)/local = $(MUMPSDIR)/include = $(MUMPSDIR)/lib = —ldmumps —lmumps_common —lpord —L$(HOME)/local/lib —lscalapack # MKL PARDISO MKLDIR = $ (HOME) / MKLINCDIR  = $(MKLDIR)/include MKLLIBDIR  = $(MKLDIR)/lib # ML MLDIR = $(HOME)/local
= $(MLDIR)/include = $(MLDIR)/lib MLLIBS = —lml —lamesos —ltrilinosss —lzoltan —lepetra —lteuchosremainder —lteuchosnu # C compiler settings CC = mpicc —fopenmp = CFLAGS LDFLAGS OPTFLAGS = −lstdc++ −lm = −03 # CH compiler settings CPP CPPFLAGS = CPPLDFLAGS = = −03 CPPOPTFLAGS = mpic++ —fopenmp # Fortran compiler settings = mpif90 —fopenmp F90 F90FLAGS F90LDFLAGS F90OPTFLAGS F90FPP = = —lstdc++ —L$(HOME)/local/lib —lopenblas = −O2 F90LINKER = —cpp = mpif90 —fopenmp
1.14.3.2  setup.shの実行編集が完了したら、setup.shを実行します。 $ ./setup.sh —p —with—tools —with—refiner \ —with—metis —with—mumps —with—lapack —with—ml 1.14.3.3  makeの実行makeを実行します。
1.14.3.4   make installの実行
makeが完了したら、make installを実行しMakefile.confで指定したディレクトリヘインストールします。この例では$(HOME)/FrontISTR/binにインストールされます。 $ make install
1.14.3.5動作確認
本ソフトウェアに同梱されているチュートリアルを実行して、動作を確認します。 $ cd $HOME/work/FrontISTR/tutorial $ cd 01_elastic_hinge $ $HOME/FrontISTR/bin/fistr1 Step control not defined! Using default step=1 fstr_setup: OK Start visualize PSF 1 at timestep 0 loading step=   1 sub_step= 1,   current_time=  0.0000E+00, time_inc=  0.1000E+01 loading_factor=    0.000000   1.000000 ### 3x3 BLOCK CG, SSOR, 1 1 1.903375E+00 2 1.974378E+00 3 2.534627E+00 4 3.004045E+00 5 3.202633E+00 6 3.203864E+00 : …解析が終了すると以下の様に画面上に表示されます。 : ... 1.143085E-08
2969 9.372882E-09 ### Relative residual = 9.39169E-09 ### summary of linear solver
Start visualize PSF 1 at timestep 1 ### FSTR_SOLVE_NLGEOM FINISHED!
FrontISTR Completed !!
1.15参考Ubuntu18.04へのインストール手順例(cmake)
Ubuntu18.04上へ本ソフトウェアと、それに必要な外部ライプラリの構築手順の例を示します。他の環境へのインストールの参考にしてください。また、各ライプラリの詳細な構築方法は、それぞれのドキュメントを参考にしてください。
1.15.1準備
最初に本ソフトウェアをコンパイルするのに必要なツールやパッケージをインストールしてください。 $ sudo apt install build—essential gfortran cmake openmpi—bin libopenmpi—dev gcc/g++/gfortranおよびMPIのラッパーが正しくインストールされているか確認してください。 $ which gcc g++ gfortran mpicc mpic++ mpifort / usr / bin / gcc / usr / bin / g++ /usr/bin/gfortran / usr / bin / mpicc / usr / bin / mpic ++ /usr/bin/mpifort 1.15.2ライブラリのインストール本ソフトウェアに必要なライプラリをインストールします。作業ディレクトリは$HOME/work 、インストール先のディレクトリは$HOME/localとします。各ディレクトリを作成し、$HOME/local/binをPATH環境変数に追加します。 $ cd $HOME $ mkdir work $ mkdir —p local/bin local/lib local/include $ export PATH $HOME/local/bin :$PATH
1.15.2.1ダウンロード
以下のソフトウェアをダウンロードし、作業ディレクトリ$HOME/workへ保存します。

1.15.2.2  REVOCAP_Refinerのコンパイル
$ cd $HOME/work $ tar xvf REVOCAP_Refiner—1.1.04.tar.gz $ cd REVOCAP_Refiner—1.1.04 $ make $ cp lib/x86_64—linux/libRcapRefiner.a $HOME/local/lib $ cp Refiner/rcapRefiner.h $HOME/local/include 1.15.2.3    OpenBLASのコンパイル$ cd $HOME/work $ tar xvf OpenBLAS—0.2.20.tar.gz $ make BINARY=64 NO_SHARED=1 USE_OPENMP=1 $ make PREFIX=$HOME/local install
1.15.2.4  METISのコンパイル
$ cd $HOME/work $ tar xvf metis — 5.1.0.tar.gz $ cd metis – 5.1.0 $ make config prefix=$HOME/local cc=gcc openmp=1 $ make $ make install
1.15.2.5 ScaLAPACKのコンパイル
$ cd $HOME/work $ tar xvf scalapack —2.0.2.tgz $ cd  scalapack – 2.0.2 $ mkdir build $ cmake —DCMAKE_INSTALL_PREFIX=$HOME/local \ –DCMAKE_EXE_LINKER_FLAGS="—fopenmp" \ –DBLAS_LIBRARIES_$HOME/local/lib/libopenblas.a \ –DLAPACK_LIBRARIES_$HOME/local/lib/libopenblas.a \ .. $ make $ make install 1.15.2.6  MUMPSのコンパイル$ cd $HOME/work $ tar xvf MUMPS_5.1.2.tar.gz $ cd MUMPS_5.1.2 $ cp Make.inc/Makefile.inc.generic Makefile.incコピーしたMakefile.incの以下の部分を書き換えます。 $ vi Makefile.inc $ cp Make.inc/Makefile.inc.generic Makefile.inc $ vi Makefile.inc LMETISDIR = $(HOME)/local IMETIS       = − I$ (LMETISDIR) / include LMETIS    = —L$(LMETISDIR)/lib —lmetis ORDERINGSF  = —Dmetis —Dpord CC = mpicc FC = mpifort FL = mpifort LAPACK = −L$(HOME)/local/lib −lopenblas SCALAP  = —L$(HOME)/local/lib —lscalapack INCPAR = LIBPAR  = $(SCALAP) LIBBLAS = —L$(HOME)/local/lib —lopenblas OPTF OPTC = −0 −DBLR_MT −fopenmp = −O −I .  −fopenmp = −0 −fopenmp OPTL書き換えが完了したら保存しmakeします。 $ make $ cp lib/*.a $HOME/local/lib $ cp include/*.h $HOME/local/include 1.15.2.7  Trilinos MLのコンパイル$ cd $HOME/work $ tar xvf trilinos —12.14.1—Source.tar.gz $ cd  trilinos —12.14.1—Source $ mkdir build $ cmake —DCMAKE_INSTALL_PREFIX=$HOME/local \ –DCMAKE_C_COMPILER=mpicc \ _DCMAKE_CXX_COMPILER=mpic++ \ —DCMAKE_Fortran_COMPILER=mpifort \ –DTPL_ENABLE_MPHON \ _DTPL_ENABLE_LAPACK=ON \ _DTPL_ENABLE_SCALAPACK=ON \ _DTPL_ENABLE_METIS_ON \ _DTPL_ENABLE_MUMPS_ON \ –DTrilinos_ENABLE_ML=ON \ –DTrilinos_ENABLE_Zoltan=ON \ –DTrilinos_ENABLE_OpenMP=ON \ —DTrilinos_ENABLE_Amesos=ON \ —DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES_OFF \ –DBLAS_LIBRARY_DIRS=$HOME/local/lib \ –DLAPACK_LIBRARY_DIRS_$HOME/local/lib " \ –DSCALAPACK_LIBRARY_DIRS_$HOME/local/lib" \ –DBLAS_LIBRARY_NAMES="openblas" \ –DLAPACK_LIBRARY_NAMES="openblas" \ –DSCALAPACK_LIBRARY_NAMES="scalapack" \ .. $ make $ make install 1.15.3  FrontISTRのコンパイル上記ライブラリのコンパイルが済んだらFrontISTRをコンパイルします。 $ cd $HOME/work/FrontISTR $ mkdir build $ cd build $ cmake –DCMAKE_INSTALL_PREFIX=$HOME/FrontISTR \ –DWIIH_ML=ON \ –DBLAS_LIBRARIES_$HOME/local/lib/libopenblas.a \ –DLAPACK_LIBRARIES $HOME/local/lib/libopenblas.a \ .. 1.15.3.1 makeの実行makeを実行します。 $ make 4並列コンパイルをする場合、 $ make —j4とします。並列コンパイルにより、コンパイル時間が短縮されます。 1.15.3.2   make installの実行makeが完了したら、make installを実行しMakefile.confで指定したディレクトリヘインストールします。この例では$(HOME)/FrontISTR/binになります。 $ make install
1.15.3.3動作確認
本ソフトウェアに同梱されているチュートリアルを実行して、動作を確認します。 $ cd $HOME/work/FrontISTR/tutorial $ cd 01_elastic_hinge $ $HOME/FrontISTR/bin/fistr1 Step control not defined! Using default step=1 fstr_setup: OK Start visualize PSF 1 at timestep 0 loading step=   1 sub_step= 1,   current_time=  0.0000E+00, time_inc=  0.1000E+01 loading_factor=    0.000000   1.000000 ### 3x3 BLOCK CG, SSOR, 1 1 1.903375E+00 2 1.974378E+00
2.534627E+00 4 3.004045E+00 5
3.203864E+00 … :解析が終了すると以下の様に画面上に表示されます。 : ...
### Relative residual = 9.39169E-09 ### summary of linear solver
Start visualize PSF 1 at timestep 1 ### FSTR_SOLVE_NLGEOM FINISHED!
FrontISTR Completed !!
参考Ubuntu18.04へのインストール手順例(Makefile.conf)
1.16
Ubuntu18.04上へ本ソフトウェアと、それに必要な外部ライプラリの構築手順の例を示します。他の環境へのインストールの参考にしてください。また、各ライプラリの詳細な構築方法は、それぞれのドキュメントを参考にしてください。
1.16.1準備
最初に本ソフトウェアをコンパイルするのに必要なツールやパッケージをインストールしてください。 $ sudo apt install build—essential gfortran cmake openmpi—bin libopenmpi—dev gcc/g++/gfortranおよびMPIのラッパーが正しくインストールされているか確認してください。 $ which gcc g++ gfortran mpicc mpic++ mpifort / usr / bin / gcc / usr / bin / g++ /usr/bin/gfortran / usr / bin / mpicc / usr / bin / mpic ++ /usr/bin/mpifort 1.16.2ライブラリのインストール本ソフトウェアに必要なライプラリをインストールします。作業ディレクトリは$HOME/work 、インストール先のディレクトリは$HOME/localとします。各ディレクトリを作成し、$HOME/local/binをPATH環境変数に追加します。 $ cd $HOME $ mkdir work $ mkdir —p local/bin local/lib local/include $ export PATH $HOME/local/bin :$PATH
1.16.2.1ダウンロード
以下のソフトウェアをダウンロードし、作業ディレクトリ$HOME/workへ保存します。
1.16.2.2  REVOCAP_Refinerのコンパイル$ cd $HOME/work $ tar xvf REVOCAP_Refiner—1.1.04.tar.gz $ cd REVOCAP_Refiner—1.1.04 $ make $ cp lib/x86_64—linux/libRcapRefiner.a $HOME/local/lib $ cp Refiner/rcapRefiner.h $HOME/local/include
1.16.2.3    OpenBLASのコンパイル
$ cd $HOME/work $ tar xvf OpenBLAS—0.2.20.tar.gz $ make BINARY=64 NO_SHARED=1 USE_OPENMP=1 $ make PREFIX=$HOME/local install
1.16.2.4  METISのコンパイル
$ cd $HOME/work $ tar xvf metis — 5.1.0.tar.gz $ cd metis – 5.1.0 $ make config prefix=$HOME/local cc=gcc openmp=1 $ make $ make install 1.16.2.5 ScaLAPACKのコンパイル$ cd $HOME/work $ tar xvf scalapack —2.0.2.tgz $ cd  scalapack – 2.0.2 $ mkdir build $ cmake —DCMAKE_INSTALL_PREFIX=$HOME/local \ –DCMAKE_EXE_LINKER_FLAGS="—fopenmp" \ –DBLAS_LIBRARIES_$HOME/local/lib/libopenblas.a \ –DLAPACK_LIBRARIES_$HOME/local/lib/libopenblas.a \ $ make $ make install 1.16.2.6  MUMPSのコンパイル$ cd $HOME/work $ tar xvf MUMPS_5.1.2.tar.gz $ cd MUMPS_5.1.2 $ cp Make.inc/Makefile.inc.generic Makefile.incコピーしたMakefile.incの以下の部分を書き換えます。 $ vi Makefile.inc $ cp Make.inc/Makefile.inc.generic Makefile.inc $ vi Makefile.inc LMETISDIR = $(HOME)/local IMETIS = − I$ (LMETISDIR) / include = —L$(LMETISDIR)/lib —lmetis LMETIS ORDERINGSF  = —Dmetis —Dpord CC = mpicc FC = mpifort = mpifort FL LAPACK = −L$(HOME)/local/lib −lopenblas SCALAP  = —L$(HOME)/local/lib —lscalapack INCPAR = : LIBPAR  = $(SCALAP) LIBBLAS = −L$(HOME)/local/lib −lopenblas OPTF OPTC OPTL = −0 −DBLR_ML −fopenmp = −O −I.  −fopenmp = −O −fopenmp書き換えが完了したら保存しmakeします。 $ make $ cp lib/*.a $HOME/local/lib $ cp include/*.h $HOME/local/include 1.16.2.7  Trilinos MLのコンパイル$ cd $HOME/work $ tar xvf trilinos —12.14.1—Source.tar.gz $ cd  trilinos —12.14.1—Source $ mkdir build $ cmake —DCMAKE_INSTALL_PREFIX=$HOME/local \ –DCMAKE_C_COMPILER=mpicc \ _DCMAKE_CXX_COMPILER=mpic++ \ –DCMAKE_Fortran_COMPILER=mpifort \ _DTPL_ENABLE_MPHON \ _DTPL_ENABLE_LAPACK=ON \ _DTPL_ENABLE_SCALAPACK=ON \ _DTPL_ENABLE_METIS_ON \ _DTPL_ENABLE_MUMPS_ON \ —DTrilinos_ENABLE_ML=ON \ –DTrilinos_ENABLE_Zoltan=ON \ –DTrilinos_ENABLE_OpenMP=ON \ —DTrilinos_ENABLE_Amesos=ON \ —DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES_OFF \ –DBLAS_LIBRARY_DIRS=$HOME/local/lib \ –DLAPACK_LIBRARY_DIRS_$HOME/local/lib " \ –DSCALAPACK_LIBRARY_DIRS_$HOME/local/lib " \ –DBLAS_LIBRARY_NAMES="openblas" \ –DLAPACK_LIBRARY_NAMES="openblas" \ –DSCALAPACK_LIBRARY_NAMES="scalapack" \ .. 1.16.3  FrontISTRのコンパイル上記ライブラリのコンパイルが済んだらFrontISTRをコンパイルします。 $ cd $HOME/work $ tar xvf FrontISTR_V50.tar.gz $ cd FrontISTR 1.16.3.1  Makefile.confの編集雛形をコピーして、環境に合わせた内容に編集します。この例では、以下の様に編集します。 $ cp Makefile .conf .org Makefile .conf $ vi Makefile.conf ### # # Setup Configulation File for FrontISTR # # # # ### # MPI = / usr/lib/x86_64—linux—gnu/openmpi = /usr/bin = $(MPIDIR)/lib MPIBINDIR MPILIBDIR = $(MPIDIR)/include = —lmpi —lmpi_cxx —lmpi_mpifh MPILIBS # for install option only = $(HOME)/FrontISTR = $(PREFIX)/bin = $(PREFIX)/lib = $(PREFIX)/include PREFIX BINDIR LIBDIR # Metis METISDIR = $(HOME)/local METISLIBDIR = $(METISDIR)/lib = $(METISDIR)/include METISINCDIR HECMW_METIS_VER= 5 # ParMetis = $(HOME)/local PARMETISDIR PARMETISLIBDIR = $(PARMETISDIR)/ l i b MPIDIR MPIINCDIR INCLUDEDIR PARMETISINCDIR = $(PARMETISDIR)/include # Refiner REFINERDIR = $(HOME)/local REFINERINCDIR  = $(REFINERDIR)/include REFINERLIBDIR  = $(REFINERDIR)/ lib # Coupler = $(HOME)/local REVOCAPDIR REVOCAPINCDIR  = $(REVOCAPDIR)/include REVOCAPLIBDIR  = $(REVOCAPDIR)/ lib # MUMPS MUMPSDIR MUMPSINCDIR MUMPSLIBDIR = $(HOME)/local = $(MUMPSDIR)/include = $(MUMPSDIR)/lib = —ldmumps —lmumps_common —lpord —L$(HOME)/local/lib —lscalapack MUMPSLIBS # MKL PARDISO MKLDIR = $ (HOME) / MKLINCDIR  = $(MKLDIR)/include MKLLIBDIR  = $(MKLDIR)/lib # ML = $(HOME)/local = $(MLDIR)/include = $(MLDIR)/lib = —lml —lamesos —ltrilinosss —lzoltan —lepetra —lteuchosremainder —lteuchosnu MLDIR MLINCDIR MLLIBDIR MLLIBS # C compiler settings = mpicc —fopenmp CC CFLAGS LDFLAGS OPTFLAGS = —lstdc++ —lm = −03 # CH compiler settings = mpic++ —fopenmp = = = −03 CPP CPPFLAGS CPPLDFLAGS CPPOPTFLAGS # Fortran compiler settings F90 = mpif90 —fopenmp ll =
= —lstdc++ —L$(HOME)/local/lib —lopenblas = −02 = —cpp F90LINKER = mpif90 —fopenmp
1.16.3.2  setup.shの実行編集が完了したら、setup.shを実行します。 $ ./setup.sh —p —with—tools —with—refiner \ —with—metis —with—mumps —with—lapack —with—ml 1.16.3.3  makeの実行makeを実行します。 $ make 1.16.3.4   make installの実行makeが完了したら、make installを実行しMakefile.confで指定したディレクトリヘインストールします。この例では$(HOME)/FrontISTR/binになります。 $ make install
1.16.3.5動作確認
本ソフトウェアに同梱されているチュートリアルを実行して、動作を確認します。 $ cd $HOME/work/FrontISTR/tutorial $ cd 01_elastic_hinge $ $HOME/FrontISTR/bin/fistr1 Step control not defined! Using default step=1 fstr_setup: OK Start visualize PSF 1 at timestep 0 loading step=   1 sub_step= 1,   current_time=  0.0000E+00, time_inc=  0.1000E+01 loading_factor=    0.000000   1.000000 ### 3x3 BLOCK CG, SSOR, 1 1 1.903375E+00 2 1.974378E+00
3.203864E+00 : :解析が終了すると以下の様に画面上に表示されます。 : …
### Relative residual = 9.39169E—09 ### summary of linear solver
Start visualize PSF 1 at timestep 1 ### FSTR_SOLVE_NLGEOM FINISHED!

1.17参考Windows10へのインストール手順例(Makefile.conf)
Windows10上へ、本ソフトウェアとそれに必要な外部ライプラリの構築手順の例を示します。他の環境へのインストールの参考にしてください。また、各ライプラリの詳細な構築方法は、それぞれのドキュメントを参考にしてください。 1.17.1準備最初に本ソフトウェアをコンパイルするのに必要なツールやパッケージをインストールしてください。
1.17.1.1開発環境の準備
はじめに開発環境をインストールします。使用する開発環境はMSYS2です。 https://www.msys2.org/下記URLから64ビット版のインストーラmsys2—x86_64—xxxxxx.exe(xxxxxxはバージョン番号)をダウンロードしインストールします。 1.17.1.2 パッケージのインストールインストールが完了したらMSYS2 MinGW 64–bitと書かれたコマンドプロンプトを立ち上げ、コンパイルに必要なパッケージをインストールします。 (MINGW64) pacman —S base—devel mingw—w64—x86_64—toolchain \ mingw—w64—x86_64—cmake \ mingw—w64—x86_64—binutils \ mingw—w64—x86_64—perl \ git gcc/g++/gfortranが正しくインストールされているか確認してください。 (MINGW64) which gcc g++ gfortran /mingw64/bin/gcc /mingw64/bin/g++ /mingw64/bin/gfortran 1.17.2ライブラリのインストール本ソフトウェアに必要なライプラリをインストールします。作業ディレクトリは$HOME/work 、インストール先のディレクトリは$HOME/localとします。各ディレクトリを作成し、$HOME/local/binをPATH環境変数に追加します。 (MINGW64) cd $HOME (MINGW64) mkdir work (MINGW64) mkdir -p local/bin local/lib local/include (MINGW64) export PATH $HOME/local/bin :$PATH 1.17.2.1　MPIのインストールこの例では、MPIとしてMicrosoft社のMPIを利用します。下記URLからランタイム(msmpisetup.exe)とSDK(msmpisdk.msi)がダウンロードできます。 Download Microsoft MPI v10.0 1.17.2.1.1  .aライブラリの作成インストールしたライブラリをMinGW-w64のgccやgfortranでリンクできるように変更を加えます。インストールした.dllから.aを生成します。 (MINGW64) cd $HOME/local/lib (MINGW64) gendef /c/Windows/System32/msmpi.dll (MINGW64) d11tool —d msmpi.def —l libmsmpi.a —D /c/Windows/System32/msmpi.d11 (MINGW64) ls libmsmpi.a msmpi.def 1.17.2.1.2ヘッダファイルの修正次にヘッダファイルをコピーします。 (MINGW64) cd $HOME/local/include (MINGW64) cp /c/Program\ Files\ \(x86\)/Microsoft\ SDKs/MPI/Include/*.h . (MINGW64) cp /c/Program\ Files\ \(x86\)/Microsoft\ SDKs/MPI/Include/x64/*.h . (MINGW64) ls mpi . h mpif.h  mpifptr.h  mpio.h  mspms.h  pmidbg.h
1.17.2.2ダウンロード
その他のソフトウェアをダウンロードし、作業ディレクトリ$HOME/workへ保存します。

1.17.2.3  REVOCAP_Refinerのコンパイル
(MINGW64) cd $HOME/work (MINGW64) tar xvf REVOCAP_Refiner—1.1.04.tar.gz (MINGW64) cd REVOCAP_Refiner—1.1.04 (MINGW64) make (MINGW64) cp lib/x86_64-linux/libRcapRefiner.a $HOME/local/lib (MINGW64) cp Refiner/rcapRefiner.h $HOME/local/include
1.17.2.4    OpenBLASのインストール
OpenBLASはMSYS2から提供されるバイナリパッケージを利用します。 (MINGW64) pacman —S mingw—w64—x86_64—openblas 1.17.2.5  METISのコンパイル(MINGW64) cd $HOME/work (MINGW64) tar xvf metis —5.1.0.tar.gz (MINGW64) cd metis – 5.1.0 MinGW-w64に合わせるため、以下のファイルを一部修正します。 • Makefile • GKlib/gk_arch.h • GKlib/getopt.c % vim Makefile 60行目のcd $(BUILDDIR) && cmake $(CURDIR) $(CONFIG_FLAGS)をcd $(BUILDDIR) && cmake –G "MSYS Makefiles" $(CURDIR) $(CONFIG_FLAGS)に変更(MINGW64) vim GKlib/gk_arch.h 44行目の#include <sys/resource.h>を削除(MINGW64) vim GKlib/gk_getopt.h 54行目からの/* Function prototypes */ extern int gk_getopt(int __argc, char **__argv, char *__shortopts); extern int gk_getopt_long(int __argc, char **__argv, char *__shortopts, struct gk_option *__longopts, int *__longind); extern int gk_getopt_long_only (int __argc, char **__argv, char *__shortopts, struct gk_option *__longopts, int *__longind);を削除。 (MINGW64) make config prefix=$HOME/local cc=gcc openmp=1 (MINGW64) make (MINGW64) make install 1.17.2.6    ScaLAPACKのコンパイル(MINGW64) cd $HOME/work (MINGW64) tar xvf scalapack - 2.0.2.tgz (MINGW64) cd  scalapack – 2.0.2サンプルのSLmake.inc.exampleをSLmake.incとしてコピーし、環境に合わせて編集します。 (MINGW64) cp SLmake.inc.example SLmake.inc (MINGW64) vi SLmake.inc # The fortran and C compilers, loaders, and their flags # # FC CC NOOPL FCFLAGS CCFLAGS FCLOADER CCLOADER FCLOADFLAGS = gfortran —fno—range—check = gcc = −00 = −O3 −I$ (HOME) / local / include = −O3 −I$ (HOME) / local / include = $(FC) = $(CC) = $(FCFLAGS) —L$(HOME)/local/lib —lmsmpi = $(CCFLAGS) —L$(HOME)/local/lib —lmsmpi CCLOADFLAGS # # BLAS, LAPACK (and possibly other) libraries needed for linking test programs #
LIBS = $(LAPACKLIB) $(BLASLIB)編集が完了したらmakeし、完成したライプラリをコピーします。 (MINGW64) make (MINGW64) cp libscalapack.a $HOME/local/libコンパイル終了時にエラーが表示されますが無視して構いません。 1.17.2.7  MUMPSのコンパイル(MINGW64) cd $HOME/work (MINGW64) tar xvf MUMPS_5.1.2.tar.gz (MINGW64) cd MUMPS_5.1.2 (MINGW64) cp Make.inc/Makefile.inc.generic Makefile.incコピーしたMakefile.incの以下の部分を書き換えます。 (MINGW64) vi Makefile.inc (MINGW64) cp Make.inc/Makefile.inc.generic Makefile.inc (MINGW64) vi Makefile.inc LMETISDIR = $(HOME)/local = −1$(LMETISDIR)/include IMETIS LMETIS = —L$(LMETISDIR)/lib —lmetis ORDERINGSF  = —Dmetis —Dpord CC = gcc = gfortran —fno—range—check FC FL LAPACK = −lopenblas SCALAP  = —L$(HOME)/local/lib —lscalapack INCPAR = −1$(HOME)/local/include LIBPAR  = $(SCALAP) $(LAPACK) —L$(HOME)/local/lib —lmsmpi = gfortran 58 LIBBLAS = −lopenblas LIBOTHERS = —lpthread OPTF = −O −fopenmp = −O −I .  −fopenmp = −O −fopenmp OPTC OPTL書き換えが完了したら保存しmakeします。 (MINGW64) make (MINGW64) cp lib/*.a $HOME/local/lib (MINGW64) cp include /*.h $HOME/local/include 1.17.2.8 Trilinos MLのコンパイル(MINGW64) cd $HOME/work (MINGW64) tar xvf trilinos -12.14.1-Source.tar.gz (MINGW64) cd  trilinos —12.14.1—Source (MINGW64) mkdir build (MINGW64) cmake –G "MSYS Makefiles" \ –DCMAKE_INSTALL_PREFIX="$HOME/local" \ –DCMAKE_CXX_FLAGS="—ISHOME/local/include" \ –DCMAKE_C_FLAGS="—ISHOME/local/include" \ –DBLAS_LIBRARY_NAMES="openblas" \ _DLAPACK_LIBRARY_NAMES="openblas" \ _DMPI_USE_COMPILER_WRAPPERS_OFF \ –DMPI_C_HEADER_DIR="$HOME/local/include" \ –DMPI_CXX_HEADER_DIR="$HOME/local/include" \ –DTPL_ENABLE_MPHON \ –DTrilinos_ENABLE_OpenMP=ON \ –DTrilinos_ENABLE_ML=ON \ –DTrilinos_ENABLE_Zoltan=ON \ —DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF_\ .. (MINGW64) make (MINGW64) make install 1.17.3 FrontISTRのコンパイル上記ライブラリのコンパイルが済んだらFrontISTRをコンパイルします。 (MINGW64) cd $HOME/work (MINGW64) tar xvf FrontISTR_V50.tar.gz 59 1.17.3.1  Makefile.confの編集羅形をコピーして、環境に合わせた内容に編集します。この例では、以下の様に編集します。 (MINGW64) cp Makefile.conf.org Makefile.conf (MINGW64) vi Makefile.conf ### # # # Setup Configulation File for FrontISTR # # # ### # MPI MPIDIR = $(HOME)/local = "/c/Program\ Files/Microsoft\ MPI/Bin/"
= $(MPIDIR)/lib = $(MPIDIR)/include =  —lmsmpi # for install option only PREFIX = $(HOME)/FrontISTR BINDIR = $(PREFIX)/bin LIBDIR = $(PREFIX)/lib = $(PREFIX)/include INCLUDEDIR # Metis METISDIR = $(HOME)/local METISLIBDIR = $(METISDIR)/lib = $(METISDIR)/include METISINCDIR HECMW_METIS_VER= 5 # ParMetis PARMETISDIR = $(HOME)/local PARMETISLIBDIR = $(PARMETISDIR)/ l i b PARMETISINCDIR = $(PARMETISDIR)/include # Refiner REFINERDIR = $(HOME)/local REFINERINCDIR  = $(REFINERDIR)/include REFINERLIBDIR  = $(REFINERDIR)/ lib # Coupler REVOCAPDIR = $(HOME)/local REVOCAPINCDIR  = $(REVOCAPDIR)/include REVOCAPLIBDIR  = $(REVOCAPDIR)/ lib # MUMPS MUMPSDIR MUMPSINCDIR MUMPSLIBDIR MUMPSLIBS = $(HOME)/local = $(MUMPSDIR)/include = $(MUMPSDIR)/lib = —ldmumps —lmumps_common —lpord —LSHOME/local/lib —lscalapack # MKL PARDISO MKLDIR = $ (HOME) / MKLINCDIR  = $(MKLDIR)/include MKLLIBDIR  = $(MKLDIR)/lib # ML MLDIR MLINCDIR MLLIBDIR MLLIBS = $(HOME)/local = $(MLDIR)/include = $(MLDIR)/lib = —lml —lzoltan —lws2_32 # C compiler settings CC = gcc —fopenmp = -D_WINDOWS = —lstdc++ —lm = −03 CFLAGS LDFLAGS OPTFLAGS # CH compiler settings CPP = g++ —fopenmp = _D_WINDOWS CPPFLAGS CPPLDFLAGS = CPPOPTFLAGS = −03 # Fortran compiler settings F90 F90FLAGS = F90LDFLAGS = −lstdc++ −lopenblas F90OPTFLAGS = −O2 F90FPP = —cpp = gfortran —fopenmp —fno—range—check F90LINKER = gfortran —fopenmp MAKE = make
1.17.3.2  setup.shの実行編集が完了したら、setup.shを実行します。 (MINGW64) ./setup.sh —p —with—tools —with—refiner \ —with—metis —with—mumps —with—lapack —with—ml 1.17.3.3  makeの実行makeを実行します。 (MINGW64) make 1.17.3.4   make installの実行makeが完了したら、make installを実行しMakefile.confで指定したディレクトリヘインストールします。この例では$(HOME)/FrontISTR/binです。 (MINGW64) make install
1.17.3.5動作確認
本ソフトウェアに同梱されているチュートリアルを実行して、動作を確認します。 (MINGW64) cd $HOME/work/FrontISTR/tutorial (MINGW64) cd 01_elastic_hinge (MINGW64$) $HOME/FrontISTR/bin/fistr1 Step control not defined! Using default step=1 fstr_setup: OK Start visualize PSF 1 at timestep 0 loading step=   1 sub_step= 1,   current_time=  0.0000E+00, time_inc=  0.1000E+01 loading_factor=    0.000000   1.000000 ### 3x3 BLOCK CG, SSOR, 1 62 1 2 3 4 5 1.903375E+00 1.974378E+00 2.534627E+00 3.004045E+00 3.202633E+00 6 3.203864E+00 : :解析が終了すると以下の様に画面上に表示されます。 ... :
### Relative residual = 9.39169E—09 ### summary of linear solver
Start visualize PSF 1 at timestep 1 ### FSTR_SOLVE_NLGEOM_FINISHED!
FrontISTR Completed !!
1.17.3.6補足
MinGWのインストールされていない環境で実行するには、FrontISTR fistr1 .exeと同じディレクトリに以下のファイルをコピーします。 • libwinpthread-1.dll ● libgfortran-3.dll ● libgcc_s_seh-1.dll ● libgomp-1.dll ● libstdc++-6.dll ● libquadmath-0.dll通常は、 C:\msys64\mingw64\binの下にありますので、バイナリを実行するコンピュータにコピーします。また、Microsoft MPIのランタイムMSMpiSetup.exeも実行するコンピュータにインストールします。