- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2023-07-26T18:16:35+09:00","default:StatE","StatE")
* 計算の準備 [#d75dd585]
ここではプログラムとポテンシャルの入手、プログラムのコンパイル、および環境のセットアップの方法を簡潔に記述します。
#Contents
** プログラムの入手 [#ue73b55b]
STATEはまだ一般公開されていません。CMDワークショップに参加あるいは開発者に直接連絡を取って最新版(>=5.6.6)のソースコードと擬ポテンシャルを入手して下さい。
STATEはまだ一般公開されていません。CMDワークショップに参加あるいは開発者に直接連絡を取って最新版(>=5.6.6)のソースコードと擬ポテンシャルを入手して下さい。~
森川研メンバーは
ソースコード:
~ikutaro/STATE/archives/state-5.6.13.tgz
擬ポテンシャル:
~ikutaro/STATE/archives/gncpp.tgz
を自身のディレクトリ(~/STATE/src、~/STATE/gncpp)にコピー、展開、あるいはシンボリックリンクを生成します(後述)。
**ログイン [#qf49d496]
計算を始めるためにPCクラスター(smithあるいはsb100)にログインします([[クラスターシステムの使用方法>計算機システムの使い方/Smith]]を参照)。
**モジュールの準備 [#p64567e2]
プログラムのコンパイルのために以下のモジュールを読み込みます。
- smithの場合
module load intel/2020.2.254
module load intelmpi/2020.2.254
- sb100の場合
module load intel/2021.2.0
module load intelmpi/2021.2.0
ログインする度にモジュールをロードするのは面倒ですので、~/.bashrc等に上記のコマンドを追加し、以下を実行します。
$ source ~/.bashrc
** 作業ディレクトリの作成 [#j43438c6]
このチュートリアルではソースコード、擬ポテンシャル、データはそれぞれ以下のディレクトリに置くものとします。
${HOME}/STATE/src
${HOME}/STATE/gncpp
${HOME}/STATE/outs
ここで${HOME}はホームディレクトリ(ログインした最初のディレクトリ)を意味します。
ホームディレクトリでSTATEのディレクトリを作成し、ディレクトリを移動します。
$ mkdir STATE
$ cd STATE
ここで``$``はコマンドプロンプトを示します。
次に擬ポテンシャル用のディレクトリを用意します。
ここでは講師(筆者)のものを利用します。以下のコマンドを実行します。
$ ln -s ~ikutaro/STATE/gncpp
次にソース用ディレクトリを作成し、そこに移動します。
$ mkdir src
$ cd src
** コンパイル [#id5f7e8d]
以下では5.6.9 (state-5.6.9.tgz)を使用するものとします。~
以下では5.6.13 (state-5.6.13.tgz)を使用するものとします。~
先ず講師(筆者)のディレクトリにあるソースコードをソースディレクトリ (STATE/src)にコピーします。
$ cp ~ikutaro/STATE/src/state-5.6.9.tgz .
$ cp ~ikutaro/STATE/src/state-5.6.13.tgz .
次にソースコードをtarコマンドを使って解凍します。
$ tar zxf state-5.6.9.tgz
これによりstate-5.6.9/というディレクトリが得られます。~
$ tar zxf state-5.6.13.tgz
これによりstate-5.6.13/というディレクトリが得られます。~
以下を実行しディレクトリを移動
$ cd state-5.6.9/src
$ cd state-5.6.13/src
そしてMakefileの準備を行います。具体的には../arch/ディレクトリにある適当なmake.arch.*ファイルをコピーするかシンボリックリンクを作ります。ここではシンボリックリンクを作ることにします。
smithの場合
$ ln -s ../arch/make.arch.intel_smith make.arch
sb100の場合
$ ln -s ../arch/make.arch.intel_sb100 make.arch
となるでしょう。make.archを必要に応じて編集した後にmakeを実行しコンパイルを実行します。
$ make
これによりsrc/ディレクトリにSTATEコマンドが生成されます。~
さらにユーティリティコマンドをコンパイルするためにutil/ディレクトリに移動します。
$ cd ../util
"make.inc"を環境に応じて編集しmakeを実行します。
"make.inc"を環境に応じて編集しmakeを実行します。
$ make
コンパイルされたプログラムはutil/binにインストール(シンボリックリンク)されます。
** 環境設定 [#w0f5d6e7]
解析の際のコマンド入力を簡単にするためにコマンドサーチパスを追加するのが良いでしょう。ここではホームディレクトリにある.bashrcに以下を追加します。
export PATH=${PATH}:${HOME}/STATE/src/state-5.6.9/util/bin
export PATH=${PATH}:${HOME}/STATE/src/state-5.6.13/util/bin
現在のXCrySDenのパスが正しくないので以下のaliasも.bashrcに追加しましょう。
alias xcrysden='/usr/local/xcrysden-1.5.53/xcrysden'
変更を反映させるために以下を実行します。
$ source ~/.bashrc
(一度ログアウトし再ログインしても環境変数の変化を反映させることは可能です)
** 計算例のダウンロード [#qa9480fe]
STATEディレクトリ(~/STATE)で以下を実行します。
$ git clone https://github.com/ikuhamada/state-examples.git examples
ただしsb100ではこのコマンドがうまく実行できません。
以下の手順でexamplesのダウンロードを行って下さい。
- smithへログインしNFSマウントされたsb100のファイルシステムに移動
$ cd /homesb/[username]/STATE
ここで[username]は自分のユーザー名を指します。
- 以下のgitコマンドを実行します。
$ git clone https://github.com/ikuhamada/state-examples.git examples
- smithからログアウトしsb100にログインし直します。