ダウンロード
ターミナルで以下のコマンドを入力する.
git clone https://github.com/ryokbys/nap.git
このコマンドを実行すると,カレントディレクトリに nap
というディレクトリが作成される.
または,GitHub のサイト https://github.com/ryokbys/nap から最新バージョンのソースコードをダウンロードすることもできる.
必要環境
pmd および fitpot は以下のコンパイラおよびライブラリを使用して,Unix/Linux,macOS X(および Windows)上で実行できる(以下は動作確認済みのバージョン).
- Fortran コンパイラ
- GNU Fortran (9.3.0)
- Intel Fortran (19.0.4.243)
- PGI Fortran (19.9)
- FUJITSU Fortran (4.2.1)
- MPI ライブラリ
- OpenMPI (4.0.3)
- Intel MPI (19.0.4.243)
nappy ユーティリティプログラムを使用するには Python-3.x.x が必要であり,以下の Python パッケージに依存する.
- numpy
- scipy
- pandas
- docopt
- ase
- spglib
- icecream
pmd および fitpot のビルド
GitHub から nap-master.zip
をダウンロードした場合,解凍すると nap-master
というディレクトリが作成される.説明を簡単にするため,ディレクトリ名を nap
に変更する.
unzip nap-master.zip
mv nap-master nap
その後,以下のコマンドで pmd および fitpot をコンパイルできる.
cd nap/
./configure --prefix=$(pwd)
make pmd fitpot
もし configure
実行時に MPI Fortran コンパイラが見つからないエラーが発生した場合は,
MPI Fortran コンパイラのパスを指定して再実行する.
FC=<path/to/fortran-compiler> ./configure --prefix=$(pwd)
OpenMPを利用する場合
バージョン v0.10.10 以降(rev210714)で OpenMP 並列化が利用可能になった.
FCFLAGS
に適切なオプションを指定することで OpenMP を有効にできる.
例えば,gfortran
を使用する場合,以下のように -fopenmp
を追加する.
./configure --prefix=$(pwd) FCFLAGS="-O2 -g -fopenmp"
OpenMP のスレッド数は環境変数 OMP_NUM_THREADS
で指定する必要がある.
export OMP_NUM_THREADS=4
機種毎の違い
Intel Fortran compiler
./configure --prefix=$(pwd) FCFLAGS="-xHOST -O3 -ip -ipo -no-prec-div"
-ip -ipo
— inline expansion と呼ばれる機能?効率化に効く.
PGI fortran compiler (NVIDIA fortran?)
FC=/path/to/mpif90 ./configure --prefix=$(pwd) FCFLAGS='-Minfo -O2 -g'
Fujitsu Fortran on Flow-FX
./configure --prefix=$(pwd) FCFLAGS="-Kfast" --host=sparc64
- OpenMPを使う場合は,
-Kfast
のところに-Kopenmp
を追加する.
Fujitsu Fortran on CX400
./configure --prefix=$(pwd) FCFLAGS="-Kfast" --host=sparc64
nappy のセットアップ
⇒ Setup
テスト
nap/examples/
ディレクトリにはいくつかのサンプルが含まれており,正しく実行された場合の参照出力も用意されている.
クイックテスト(v0.10.1 または rev201130 以降)
以下のコマンドで pmd および fitpot の回帰テストを実行できる.
cd nap/
make test
テストが成功すると PASS: examples/xxxxx
と表示され,
失敗した場合は FAIL: examples/xxxxx
と表示される.
サンプル
pmd のサンプル
pmd プログラムには 3 つのサンプルがある.
nap/examples/pmd_W
:指定されたパラメータを使用したシンプルな MDnap/examples/pmd_BVS_LLZO
:スクリーンクーロン,モース,および角度ポテンシャルを使用した MDnap/examples/pmd_DNN_SiO
:ニューラルネットワークポテンシャルを使用した MD
ディレクトリ内で pmd を実行するには以下のコマンドを使用する.
mpirun -np 1 /path/to/pmd