Peridigmをソースからインストールする

目次

Peridigmとは

Peridigmは,Peridynamicsのオープンソースコードです.もともとは,アメリカのSandia国立研究所で開発され2011年にオープンソース化されました.Trilinosの基本的なコンポーネント使用したC++のコードであり,Sandia国立研究所で開発されたこともありCubitやParaViewと互換性があります.

公式リポジトリは下記リンクになります.定期的にコミットはありますが,実質的にサポートは終了しているというのが現状です(2022現在).

GitHub
GitHub - peridigm/peridigm: Peridigm peridynamics code. Peridigm peridynamics code. Contribute to peridigm/peridigm development by creating an account on GitHub.

>> Peridynamic Theory and Its Applications

インストール方法

Peridigmのインストールは多くの方が苦労しています.公式のインストール方法を参照したとしても,うまくインストールできない場合が多々あります.

基本的にOSやライブラリの依存関係やバージョンが問題である可能性が高く,それらの解決には,高度なLinux知識やライブラリそのものの知識が必要になります.

この記事では,依存ライブラリを可能な限りパッケージ管理システムを使用せずに,管理者権限なしでインストールしますパッケージ管理システムを使用しないことにより,任意のライブラリバージョンを指定できることや依存関係を複雑化を防ぐメリットがあります.

PythonとGFortranのインストールを除き,管理者権限なしでインストールができるため,Peridigmをスパコン上で使用したい場合でも,この記事の方法を使用すればインストール可能です.

Third-party(依存ライブラリ)のインストール方法

Peridigmのインストールに必要なライブラリは以下の通りです.まず,Peridigmをインストールするに下記ライブラリをインストールする必要があります.

Third-party libraries
  • Python
  • OpenMPI
  • zlib
  • HDF5
  • OpenSSL
  • Curl
  • NetCDF
  • LAPACK
  • yaml-cpp
  • Boost
  • Trilinos

Python

Pythonを管理者権限でインストールします.apt ...はDebian系のパッケージ管理システムを使用したインストール方法です.CentOSなどを使用する場合,適宜yumなどに読みかえてください.


apt install python python-dev

GFortran

GFortranもPython同様に,管理者権限でインストールします.


apt install gfortran

Open MPI

OpenMPIは,ソースからビルドし,インストールするため,管理者権限を使用しません.

/path/to/install/はインストール先を意味します.適宜,インストールしたいディレクトリに書き換えてコマンドを実行します.その際に,インストール先に書込み権限があることを確認してください.


wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.1.tar.bz2
tar xvf openmpi-4.1.1.tar.bz2
mkdir openmpi-4.1.1/build
cd openmpi-4.1.1/build
../configure --prefix=/path/to/install/openmpi/4.1.1 CC=gcc CXX=g++ FC=gfortran --enable-mpi-cxx
make -j
make install

次に,OpenMPIのパスを通します.ログアウトすると下記設定がリセットされるため注意してください.


export PATH=/path/to/install/openmpi/4.1.1/bin:$PATH
export LD_LIBRARY_PATH=/path/to/install/openmpi/4.1.1/lib:$LD_LIBRARY_PATH
export MANPATH=/path/to/install/openmpi/4.1.1/share/man:$MANPAT

後ほど,ログイン時に環境が自動で読み込めるように.bashrcを編集します.

zlib

OpenMPI同様に,zlibを一般ユーザでインストールします.


wget https://www.zlib.net/zlib-1.2.11.tar.gz
tar xvf zlib-1.2.11.tar.gz
mkdir zlib-1.2.11/build
cd zlib-1.2.11/build
../configure --prefix=/path/to/install/zlib/1.2.11
make
make install

HDF5

HDF5を一般ユーザでインストールします.


wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.1/src/hdf5-1.12.1.tar.gz
tar xvf hdf5-1.12.1.tar.gz
mkdir hdf5-1.12.1/build
cd hdf5-1.12.1/build/
../configure --prefix=/path/to/install/hdf5/1.12.1 --enable-parallel --enable-shared --with-default-api-version=v110  --with-zlib=/path/to/install/zlib/1.2.11/
make
make install

OpenSSL

OpenSSLを一般ユーザでインストールします.


wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz
tar xvf openssl-1.1.1l.tar.gz
mkdir openssl-1.1.1l/build
cd openssl-1.1.1l/build/
../config --prefix=/path/to/install/openssl/1.1.1l --openssldir=/path/to/install/openssl/1.1.1l --with-zlib-include=/path/to/install/zlib/1.2.11/include --with-zlib-lib=/path/to/install/zlib/1.2.11/lib shared zlib
make
make install

Curl

Curlを一般ユーザでインストールします.


wget https://curl.se/download/curl-7.79.1.tar.bz2
tar xvf curl-7.79.1.tar.bz2
mkdir curl-7.79.1/build
cd curl-7.79.1/build/
../configure --prefix=/path/to/install/curl/7.79.1 --with-ssl=/path/to/install/openssl/1.1.1l
make
make install

NetCDF

NetCDFを一般ユーザでインストールします.


wget https://github.com/Unidata/netcdf-c/archive/refs/tags/v4.8.1.tar.gz
tar xvf v4.8.1.tar.gz
cd netcdf-c-4.8.1/
sed -i \
  -e 's@#define NC_MAX_DIMS     1024@#define NC_MAX_DIMS     65536@g' \
  -e 's@#define NC_MAX_VARS     8192@#define NC_MAX_VARS     524288@g' \
  -e 's@#define NC_MAX_VAR_DIMS 1024@#define NC_MAX_VAR_DIMS 8@g' \
  ./include/netcdf.h
mkdir build
cd build
../configure --prefix=/path/to/install/netcdf/4.8.1 CC=mpicc LDFLAGS="-L/path/to/install/hdf5/1.12.1/lib -L/path/to/install/zlib/1.2.11/lib -L/path/to/install/curl/7.79.1/lib" CFLAGS="-I/path/to/install/hdf5/1.12.1/include -I/path/to/install/zlib/1.2.11/include -I/path/to/install/curl/7.79.1/include/"
make
make install 

スを通します.


export LD_LIBRARY_PATH=/path/to/install/netcdf/4.8.1/lib:$LD_LIBRARY_PATH

LAPACK

LAPACKを一般ユーザでインストールします.


wget https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v3.10.0.tar.gz
tar xvf v3.10.0.tar.gz
mkdir lapack-3.10.0/build
cd lapack-3.10.0/build
cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/lapack/3.10.0 -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=ON ../
make -j
make test
make install

以下は,make testの結果です.テストが100%通っていることを確認してください.


        Start   1: BLAS-xblat1s
  1/103 Test   #1: BLAS-xblat1s .....................   Passed    0.03 sec
        Start   2: BLAS-xblat2s
  2/103 Test   #2: BLAS-xblat2s .....................   Passed    0.05 sec
        Start   3: BLAS-xblat3s
  3/103 Test   #3: BLAS-xblat3s .....................   Passed    0.05 sec
        Start   4: BLAS-xblat1d
  4/103 Test   #4: BLAS-xblat1d .....................   Passed    0.03 sec
        Start   5: BLAS-xblat2d
  5/103 Test   #5: BLAS-xblat2d .....................   Passed    0.05 sec
        Start   6: BLAS-xblat3d
  6/103 Test   #6: BLAS-xblat3d .....................   Passed    0.05 sec
        Start   7: BLAS-xblat1c
  7/103 Test   #7: BLAS-xblat1c .....................   Passed    0.03 sec
        Start   8: BLAS-xblat2c
  8/103 Test   #8: BLAS-xblat2c .....................   Passed    0.06 sec
        Start   9: BLAS-xblat3c
  9/103 Test   #9: BLAS-xblat3c .....................   Passed    0.07 sec
        Start  10: BLAS-xblat1z
 10/103 Test  #10: BLAS-xblat1z .....................   Passed    0.03 sec
        Start  11: BLAS-xblat2z
 11/103 Test  #11: BLAS-xblat2z .....................   Passed    0.06 sec
        Start  12: BLAS-xblat3z
 12/103 Test  #12: BLAS-xblat3z .....................   Passed    0.07 sec
        Start  13: LAPACK_Test_Summary
 13/103 Test  #13: LAPACK_Test_Summary ..............   Passed    0.08 sec
        Start  14: LAPACK-xlintsts_stest_in
 14/103 Test  #14: LAPACK-xlintsts_stest_in .........   Passed    3.48 sec
        Start  15: LAPACK-xlintstrfs_stest_rfp_in
 15/103 Test  #15: LAPACK-xlintstrfs_stest_rfp_in ...   Passed    0.27 sec
        Start  16: LAPACK-xeigtsts_nep_in
 16/103 Test  #16: LAPACK-xeigtsts_nep_in ...........   Passed    0.11 sec
        Start  17: LAPACK-xeigtsts_sep_in
 17/103 Test  #17: LAPACK-xeigtsts_sep_in ...........   Passed    0.40 sec
        Start  18: LAPACK-xeigtsts_se2_in
 18/103 Test  #18: LAPACK-xeigtsts_se2_in ...........   Passed    0.42 sec
        Start  19: LAPACK-xeigtsts_svd_in
 19/103 Test  #19: LAPACK-xeigtsts_svd_in ...........   Passed    4.22 sec
        Start  20: LAPACK-xeigtsts_sec_in
 20/103 Test  #20: LAPACK-xeigtsts_sec_in ...........   Passed    0.29 sec
        Start  21: LAPACK-xeigtsts_sed_in
 21/103 Test  #21: LAPACK-xeigtsts_sed_in ...........   Passed    0.16 sec
        Start  22: LAPACK-xeigtsts_sgg_in
 22/103 Test  #22: LAPACK-xeigtsts_sgg_in ...........   Passed    0.08 sec
        Start  23: LAPACK-xeigtsts_sgd_in
 23/103 Test  #23: LAPACK-xeigtsts_sgd_in ...........   Passed    0.24 sec
        Start  24: LAPACK-xeigtsts_ssb_in
 24/103 Test  #24: LAPACK-xeigtsts_ssb_in ...........   Passed    0.05 sec
        Start  25: LAPACK-xeigtsts_ssg_in
 25/103 Test  #25: LAPACK-xeigtsts_ssg_in ...........   Passed    0.43 sec
        Start  26: LAPACK-xeigtsts_sbal_in
 26/103 Test  #26: LAPACK-xeigtsts_sbal_in ..........   Passed    0.05 sec
        Start  27: LAPACK-xeigtsts_sbak_in
 27/103 Test  #27: LAPACK-xeigtsts_sbak_in ..........   Passed    0.04 sec
        Start  28: LAPACK-xeigtsts_sgbal_in
 28/103 Test  #28: LAPACK-xeigtsts_sgbal_in .........   Passed    0.03 sec
        Start  29: LAPACK-xeigtsts_sgbak_in
 29/103 Test  #29: LAPACK-xeigtsts_sgbak_in .........   Passed    0.04 sec
        Start  30: LAPACK-xeigtsts_sbb_in
 30/103 Test  #30: LAPACK-xeigtsts_sbb_in ...........   Passed    0.05 sec
        Start  31: LAPACK-xeigtsts_glm_in
 31/103 Test  #31: LAPACK-xeigtsts_glm_in ...........   Passed    0.04 sec
        Start  32: LAPACK-xeigtsts_gqr_in
 32/103 Test  #32: LAPACK-xeigtsts_gqr_in ...........   Passed    0.06 sec
        Start  33: LAPACK-xeigtsts_gsv_in
 33/103 Test  #33: LAPACK-xeigtsts_gsv_in ...........   Passed    0.05 sec
        Start  34: LAPACK-xeigtsts_csd_in
 34/103 Test  #34: LAPACK-xeigtsts_csd_in ...........   Passed    0.04 sec
        Start  35: LAPACK-xeigtsts_lse_in
 35/103 Test  #35: LAPACK-xeigtsts_lse_in ...........   Passed    0.04 sec
        Start  36: LAPACK-xlintstd_dtest_in
 36/103 Test  #36: LAPACK-xlintstd_dtest_in .........   Passed    3.60 sec
        Start  37: LAPACK-xlintstrfd_dtest_rfp_in
 37/103 Test  #37: LAPACK-xlintstrfd_dtest_rfp_in ...   Passed    0.28 sec
        Start  38: LAPACK-xeigtstd_nep_in
 38/103 Test  #38: LAPACK-xeigtstd_nep_in ...........   Passed    0.13 sec
        Start  39: LAPACK-xeigtstd_sep_in
 39/103 Test  #39: LAPACK-xeigtstd_sep_in ...........   Passed    0.43 sec
        Start  40: LAPACK-xeigtstd_se2_in
 40/103 Test  #40: LAPACK-xeigtstd_se2_in ...........   Passed    0.59 sec
        Start  41: LAPACK-xeigtstd_svd_in
 41/103 Test  #41: LAPACK-xeigtstd_svd_in ...........   Passed    5.54 sec
        Start  42: LAPACK-xeigtstd_dec_in
 42/103 Test  #42: LAPACK-xeigtstd_dec_in ...........   Passed    0.30 sec
        Start  43: LAPACK-xeigtstd_ded_in
 43/103 Test  #43: LAPACK-xeigtstd_ded_in ...........   Passed    0.17 sec
        Start  44: LAPACK-xeigtstd_dgg_in
 44/103 Test  #44: LAPACK-xeigtstd_dgg_in ...........   Passed    0.09 sec
        Start  45: LAPACK-xeigtstd_dgd_in
 45/103 Test  #45: LAPACK-xeigtstd_dgd_in ...........   Passed    0.29 sec
        Start  46: LAPACK-xeigtstd_dsb_in
 46/103 Test  #46: LAPACK-xeigtstd_dsb_in ...........   Passed    0.05 sec
        Start  47: LAPACK-xeigtstd_dsg_in
 47/103 Test  #47: LAPACK-xeigtstd_dsg_in ...........   Passed    0.55 sec
        Start  48: LAPACK-xeigtstd_dbal_in
 48/103 Test  #48: LAPACK-xeigtstd_dbal_in ..........   Passed    0.04 sec
        Start  49: LAPACK-xeigtstd_dbak_in
 49/103 Test  #49: LAPACK-xeigtstd_dbak_in ..........   Passed    0.04 sec
        Start  50: LAPACK-xeigtstd_dgbal_in
 50/103 Test  #50: LAPACK-xeigtstd_dgbal_in .........   Passed    0.04 sec
        Start  51: LAPACK-xeigtstd_dgbak_in
 51/103 Test  #51: LAPACK-xeigtstd_dgbak_in .........   Passed    0.04 sec
        Start  52: LAPACK-xeigtstd_dbb_in
 52/103 Test  #52: LAPACK-xeigtstd_dbb_in ...........   Passed    0.05 sec
        Start  53: LAPACK-xeigtstd_glm_in
 53/103 Test  #53: LAPACK-xeigtstd_glm_in ...........   Passed    0.05 sec
        Start  54: LAPACK-xeigtstd_gqr_in
 54/103 Test  #54: LAPACK-xeigtstd_gqr_in ...........   Passed    0.06 sec
        Start  55: LAPACK-xeigtstd_gsv_in
 55/103 Test  #55: LAPACK-xeigtstd_gsv_in ...........   Passed    0.05 sec
        Start  56: LAPACK-xeigtstd_csd_in
 56/103 Test  #56: LAPACK-xeigtstd_csd_in ...........   Passed    0.04 sec
        Start  57: LAPACK-xeigtstd_lse_in
 57/103 Test  #57: LAPACK-xeigtstd_lse_in ...........   Passed    0.04 sec
        Start  58: LAPACK-xlintstc_ctest_in
 58/103 Test  #58: LAPACK-xlintstc_ctest_in .........   Passed    6.99 sec
        Start  59: LAPACK-xlintstrfc_ctest_rfp_in
 59/103 Test  #59: LAPACK-xlintstrfc_ctest_rfp_in ...   Passed    0.85 sec
        Start  60: LAPACK-xeigtstc_nep_in
 60/103 Test  #60: LAPACK-xeigtstc_nep_in ...........   Passed    0.18 sec
        Start  61: LAPACK-xeigtstc_sep_in
 61/103 Test  #61: LAPACK-xeigtstc_sep_in ...........   Passed    0.55 sec
        Start  62: LAPACK-xeigtstc_se2_in
 62/103 Test  #62: LAPACK-xeigtstc_se2_in ...........   Passed    0.60 sec
        Start  63: LAPACK-xeigtstc_svd_in
 63/103 Test  #63: LAPACK-xeigtstc_svd_in ...........   Passed    6.57 sec
        Start  64: LAPACK-xeigtstc_cec_in
 64/103 Test  #64: LAPACK-xeigtstc_cec_in ...........   Passed    0.08 sec
        Start  65: LAPACK-xeigtstc_ced_in
 65/103 Test  #65: LAPACK-xeigtstc_ced_in ...........   Passed    0.23 sec
        Start  66: LAPACK-xeigtstc_cgg_in
 66/103 Test  #66: LAPACK-xeigtstc_cgg_in ...........   Passed    0.13 sec
        Start  67: LAPACK-xeigtstc_cgd_in
 67/103 Test  #67: LAPACK-xeigtstc_cgd_in ...........   Passed    0.33 sec
        Start  68: LAPACK-xeigtstc_csb_in
 68/103 Test  #68: LAPACK-xeigtstc_csb_in ...........   Passed    0.05 sec
        Start  69: LAPACK-xeigtstc_csg_in
 69/103 Test  #69: LAPACK-xeigtstc_csg_in ...........   Passed    0.63 sec
        Start  70: LAPACK-xeigtstc_cbal_in
 70/103 Test  #70: LAPACK-xeigtstc_cbal_in ..........   Passed    0.04 sec
        Start  71: LAPACK-xeigtstc_cbak_in
 71/103 Test  #71: LAPACK-xeigtstc_cbak_in ..........   Passed    0.04 sec
        Start  72: LAPACK-xeigtstc_cgbal_in
 72/103 Test  #72: LAPACK-xeigtstc_cgbal_in .........   Passed    0.04 sec
        Start  73: LAPACK-xeigtstc_cgbak_in
 73/103 Test  #73: LAPACK-xeigtstc_cgbak_in .........   Passed    0.04 sec
        Start  74: LAPACK-xeigtstc_cbb_in
 74/103 Test  #74: LAPACK-xeigtstc_cbb_in ...........   Passed    0.07 sec
        Start  75: LAPACK-xeigtstc_glm_in
 75/103 Test  #75: LAPACK-xeigtstc_glm_in ...........   Passed    0.05 sec
        Start  76: LAPACK-xeigtstc_gqr_in
 76/103 Test  #76: LAPACK-xeigtstc_gqr_in ...........   Passed    0.06 sec
        Start  77: LAPACK-xeigtstc_gsv_in
 77/103 Test  #77: LAPACK-xeigtstc_gsv_in ...........   Passed    0.06 sec
        Start  78: LAPACK-xeigtstc_csd_in
 78/103 Test  #78: LAPACK-xeigtstc_csd_in ...........   Passed    0.05 sec
        Start  79: LAPACK-xeigtstc_lse_in
 79/103 Test  #79: LAPACK-xeigtstc_lse_in ...........   Passed    0.04 sec
        Start  80: LAPACK-xlintstz_ztest_in
 80/103 Test  #80: LAPACK-xlintstz_ztest_in .........   Passed    8.35 sec
        Start  81: LAPACK-xlintstrfz_ztest_rfp_in
 81/103 Test  #81: LAPACK-xlintstrfz_ztest_rfp_in ...   Passed    0.90 sec
        Start  82: LAPACK-xeigtstz_nep_in
 82/103 Test  #82: LAPACK-xeigtstz_nep_in ...........   Passed    0.22 sec
        Start  83: LAPACK-xeigtstz_sep_in
 83/103 Test  #83: LAPACK-xeigtstz_sep_in ...........   Passed    0.75 sec
        Start  84: LAPACK-xeigtstz_se2_in
 84/103 Test  #84: LAPACK-xeigtstz_se2_in ...........   Passed    0.79 sec
        Start  85: LAPACK-xeigtstz_svd_in
 85/103 Test  #85: LAPACK-xeigtstz_svd_in ...........   Passed    8.06 sec
        Start  86: LAPACK-xeigtstz_zec_in
 86/103 Test  #86: LAPACK-xeigtstz_zec_in ...........   Passed    0.08 sec
        Start  87: LAPACK-xeigtstz_zed_in
 87/103 Test  #87: LAPACK-xeigtstz_zed_in ...........   Passed    0.27 sec
        Start  88: LAPACK-xeigtstz_zgg_in
 88/103 Test  #88: LAPACK-xeigtstz_zgg_in ...........   Passed    0.14 sec
        Start  89: LAPACK-xeigtstz_zgd_in
 89/103 Test  #89: LAPACK-xeigtstz_zgd_in ...........   Passed    0.42 sec
        Start  90: LAPACK-xeigtstz_zsb_in
 90/103 Test  #90: LAPACK-xeigtstz_zsb_in ...........   Passed    0.06 sec
        Start  91: LAPACK-xeigtstz_zsg_in
 91/103 Test  #91: LAPACK-xeigtstz_zsg_in ...........   Passed    0.77 sec
        Start  92: LAPACK-xeigtstz_zbal_in
 92/103 Test  #92: LAPACK-xeigtstz_zbal_in ..........   Passed    0.04 sec
        Start  93: LAPACK-xeigtstz_zbak_in
 93/103 Test  #93: LAPACK-xeigtstz_zbak_in ..........   Passed    0.04 sec
        Start  94: LAPACK-xeigtstz_zgbal_in
 94/103 Test  #94: LAPACK-xeigtstz_zgbal_in .........   Passed    0.04 sec
        Start  95: LAPACK-xeigtstz_zgbak_in
 95/103 Test  #95: LAPACK-xeigtstz_zgbak_in .........   Passed    0.04 sec
        Start  96: LAPACK-xeigtstz_zbb_in
 96/103 Test  #96: LAPACK-xeigtstz_zbb_in ...........   Passed    0.09 sec
        Start  97: LAPACK-xeigtstz_glm_in
 97/103 Test  #97: LAPACK-xeigtstz_glm_in ...........   Passed    0.05 sec
        Start  98: LAPACK-xeigtstz_gqr_in
 98/103 Test  #98: LAPACK-xeigtstz_gqr_in ...........   Passed    0.07 sec
        Start  99: LAPACK-xeigtstz_gsv_in
 99/103 Test  #99: LAPACK-xeigtstz_gsv_in ...........   Passed    0.06 sec
        Start 100: LAPACK-xeigtstz_csd_in
100/103 Test #100: LAPACK-xeigtstz_csd_in ...........   Passed    0.05 sec
        Start 101: LAPACK-xeigtstz_lse_in
101/103 Test #101: LAPACK-xeigtstz_lse_in ...........   Passed    0.05 sec
        Start 102: LAPACK-xlintstds_dstest_in
102/103 Test #102: LAPACK-xlintstds_dstest_in .......   Passed    0.76 sec
        Start 103: LAPACK-xlintstzc_zctest_in
103/103 Test #103: LAPACK-xlintstzc_zctest_in .......   Passed    1.38 sec
100% tests passed, 0 tests failed out of 103
Total Test time (real) =  65.11 sec

yaml-cpp

yaml-cppを一般ユーザでインストールします.


wget https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.7.0.tar.gz
tar xvf yaml-cpp-0.7.0.tar.gz
mkdir yaml-cpp-yaml-cpp-0.7.0/build
cd yaml-cpp-yaml-cpp-0.7.0/build
cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/yaml/0.7.0 -DYAML_BUILD_SHARED_LIBS=ON ..
make
make install

Boost

Boostを一般ユーザでインストールします.


wget https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2
tar xvf boost_1_77_0.tar.bz2
cd boost_1_77_0
./bootstrap.sh --prefix=/path/to/install/boost/1.77.0
./b2
./b2 install

Trilinos

Trilinosを一般ユーザでインストールします.


wget https://github.com/trilinos/Trilinos/archive/refs/tags/trilinos-release-13-0-1.tar.gz
tar xvf trilinos-release-13-0-1.tar.gz
mkdir Trilinos-trilinos-release-13-0-1/build
cd Trilinos-trilinos-release-13-0-1/build
cmake \
  -DCMAKE_INSTALL_PREFIX:PATH=/path/to/install/trilinos/13.0.1 \
  -DMPI_BASE_DIR:PATH=/path/to/install/openmpi/4.1.1 \
  -DCMAKE_BUILD_TYPE:STRING=Release \
  -DBUILD_SHARED_LIBS:BOOL=OFF \
  -DTrilinos_WARNINGS_AS_ERRORS_FLAGS:STRING="" \
  -DTrilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \
  -DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=OFF \
  -DTrilinos_ENABLE_ALL_FORWARD_DEP_PACKAGES:BOOL=OFF \
  -DTrilinos_ENABLE_Teuchos:BOOL=ON \
  -DTrilinos_ENABLE_Shards:BOOL=ON \
  -DTrilinos_ENABLE_Sacado:BOOL=ON \
  -DTrilinos_ENABLE_Epetra:BOOL=ON \
  -DTrilinos_ENABLE_EpetraExt:BOOL=ON \
  -DTrilinos_ENABLE_Ifpack:BOOL=ON \
  -DTrilinos_ENABLE_AztecOO:BOOL=ON \
  -DTrilinos_ENABLE_Belos:BOOL=ON \
  -DTrilinos_ENABLE_Phalanx:BOOL=ON \
  -DPhalanx_EXPLICIT_TEMPLATE_INSTANTIATION:BOOL=ON \
  -DTrilinos_ENABLE_Zoltan:BOOL=ON \
  -DTrilinos_ENABLE_SEACAS:BOOL=ON \
  -DTrilinos_ENABLE_NOX:BOOL=ON \
  -DTrilinos_ENABLE_Pamgen:BOOL=ON \
  -DTrilinos_ENABLE_Kokkos:BOOL=ON \
  -DTrilinos_ENABLE_SEACASPLT=OFF \
  -DTrilinos_ENABLE_SEACASBlot=OFF \
  -DTrilinos_ENABLE_SEACASFastq=OFF \
  -DTrilinos_ENABLE_EXAMPLES:BOOL=OFF \
  -DTrilinos_ENABLE_TESTS:BOOL=OFF \
  -DTPL_ENABLE_MATLAB:BOOL=OFF \
  -DTPL_ENABLE_Matio:BOOL=OFF \
  -DTPL_ENABLE_Netcdf:BOOL=ON \
  -DNetcdf_INCLUDE_DIRS:PATH=/path/to/install/netcdf/4.8.1/include \
  -DNetcdf_LIBRARY_DIRS:PATH=/path/to/install/netcdf/4.8.1/lib \
  -DTPL_ENABLE_HDF5:BOOL=ON \
  -DHDF5_INCLUDE_DIRS:PATH=/path/to/install/hdf5/1.12.1/include \
  -DHDF5_LIBRARY_DIRS:PATH=/path/to/install/hdf5/1.12.1/lib \
  -DTPL_ENABLE_MPI:BOOL=ON \
  -DTPL_ENABLE_BLAS:BOOL=ON \
  -DTPL_BLAS_LIBRARIES:FILEPATH=/path/to/install/lapack/3.10.0/lib/libblas.so \
  -DTPL_ENABLE_LAPACK:BOOL=ON \
  -DTPL_LAPACK_LIBRARIES:FILEPATH=/path/to/install/lapack/3.10.0/lib/liblapack.so \
  -DTPL_ENABLE_Boost:BOOL=ON \
  -DTPL_Boost_INCLUDE_DIRS:PATH=/path/to/install/boost/1.77.0/include \
  -DTPL_ENABLE_QT:BOOL=OFF \
  -DTPL_ENABLE_X11:BOOL=OFF \
  -DTPL_ENABLE_yaml-cpp:BOOL=ON \
  -DTPL_yaml-cpp_LIBRARIES:FILEPATH=/path/to/install/yaml/0.7.0/lib/libyaml-cpp.so \
  -DTPL_yaml-cpp_INCLUDE_DIRS:PATH=/path/to/install/yaml/0.7.0/include/yaml-cpp \
  -DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF \
  -DTrilinos_VERBOSE_CONFIGURE:BOOL=OFF \
  ..
make
make install

パスを通します


export PATH=/path/to/trilinos/13.0.1/bin:$PATH
export LD_LIBRARY_PATH=/path/to/trilinos/13.0.1/lib:$LD_LIBRARY_PATH

Peridigmのインストール方法

上記の方法で,依存ライブラリがインストールされたので,いよいよPeridigmのインストールをします.

一般ユーザで,下記コマンドでインストールします.


git clone https://github.com/peridigm/peridigm.git
cd peridigm
mkdir build
cmake \
  -D CMAKE_BUILD_TYPE:STRING=Release \
  -D CMAKE_INSTALL_PREFIX:PATH=/path/to/install/peridigm \
  -D TRILINOS_DIR:PATH=/path/to/install/trilinos/13.0.1 \
  -D CMAKE_CXX_COMPILER:STRING="mpicxx" \
  ..
make
make install

make installでは,便利なスクリプトファイルがインストールされません,よって,下記コマンドでPeridigmのインストール先にスクリプトもインストールします.


cp -r ../scripts /path/to/peridigm/scritps

環境変数を設定

Peridigmを実行するための環境変数を設定します.

$HOME/.bashrcに下記を追加してください.


...
+ OMPI_ROOT=/path/to/install/openmpi/4.1.1
+ export PATH=$OMPI_ROOT/bin:$PATH
+ export LD_LIBRARY_PATH=$OMPI_ROOT/lib:$LD_LIBRARY_PATH
+ export MANPATH=$OMPI_ROOT/share/man:$MANPATH
+ 
+ NETCDF_ROOT=/path/to/install/netcdf/4.8.1
+ export LD_LIBRARY_PATH=$NETCDF_ROOT/lib:$LD_LIBRARY_PATH
+ TRILINOS_ROOT=/path/to/install/trilinos/13.0.1
+ export PATH=$TRILINOS_ROOT/bin:$PATH
+ export LD_LIBRARY_PATH=$TRILINOS_ROOT/lib:$LD_LIBRARY_PATH
+ PERIDIGM_ROOT=/path/to/install/peridigm
+ export PATH=$PERIDIGM_ROOT/bin:$PERIDIGM_ROOT/scripts:$PATH

上記のようにファイルを編集したら,「ログアウトし再度ログインする」か「下記コマンドを実行」してください.


source $HOME/.bashrc

Peridigmの実行

Peridigm実行に関しては,別記事にまとめています.ご参照ください.

Enviroment Module用設定


#%Module1.0

conflict peridigm

set module_root      /path/to/peridigm
set ver              none

module load openmpi/4.1.4
module load netcdf/4.8.1
module load trilinos/13.0.1
prepend-path PATH            ${module_root}/bin
prepend-path PATH            ${module_root}/scripts

set module_description "Peridigm ${ver}"

module-whatis    $module_description

proc ModulesHelp { } {
    global set module_description
    puts stderr "
        $module_description
    "
}
よかったらシェアしてね!
目次