計算の準備 †ここではプログラムとポテンシャルの入手、プログラムのコンパイル、および環境のセットアップの方法を簡潔に記述します。 以下では$で始まる行は基本的にコマンドラインを意味し、コマンドを実行する際に"$"は不要です。 プログラムの入手 †STATEはまだ一般公開されていません。CMDワークショップに参加あるいは開発者に直接連絡を取って最新版(>=5.6.6)のソースコードと擬ポテンシャルを入手して下さい。 ~ikutaro/STATE/archives/state-5.6.14.tgz 擬ポテンシャル: ~ikutaro/STATE/archives/gncpp.tgz を自身のディレクトリ(~/STATE/src、~/STATE/gncpp)にコピー、展開、あるいはシンボリックリンクを生成します(後述)。 ログイン †計算を始めるためにPCクラスター(smithあるいはsb100)にログインします(クラスターシステムの使用方法を参照)。 モジュールの準備 †プログラムのコンパイルのために以下のモジュールを読み込みます。
ログインする度にモジュールをロードするのは面倒な場合には、~/.bashrc等に上記のコマンドを追加します。
作業ディレクトリの作成 †このチュートリアルではソースコード、擬ポテンシャル、データはそれぞれ以下のディレクトリに置くものとします。 ${HOME}/STATE/src
${HOME}/STATE/gncpp
${HOME}/STATE/outs
ここで${HOME}はホームディレクトリ(ログインした最初のディレクトリ)を意味します。 ホームディレクトリでSTATEのディレクトリを作成し、ディレクトリを移動します。 $ mkdir STATE $ cd STATE ここで``$``はコマンドプロンプトを示します。 次に擬ポテンシャル用のディレクトリを用意します。 ここでは講師(筆者)のものを利用します。以下のコマンドを実行します。 $ ln -s ~ikutaro/STATE/gncpp 次にソース用ディレクトリを作成し、そこに移動します。 $ mkdir src $ cd src コンパイル †以下では5.6.14 (state-5.6.14.tgz)を使用するものとします。 $ cp ~ikutaro/STATE/src/state-5.6.14.tgz . 次にソースコードをtarコマンドを使って解凍します。 $ tar zxf state-5.6.14.tgz これによりstate-5.6.14/というディレクトリが得られます。 $ cd state-5.6.14/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コマンドが生成されます。 $ cd ../util "make.inc"を環境に応じて編集しmakeを実行します。 $ make コンパイルされたプログラムはutil/binにインストール(シンボリックリンク)されます。 環境設定 †解析の際のコマンド入力を簡単にするためにコマンドサーチパスを追加するのが良いでしょう。ここではホームディレクトリにある.bashrcに以下を追加します。 export PATH=${PATH}:${HOME}/STATE/src/state-5.6.14/util/bin
現在のXCrySDenのパスが正しくないので以下のaliasも.bashrcに追加しましょう。 alias xcrysden='/usr/local/xcrysden-1.5.53/xcrysden' 変更を反映させるために以下を実行します。 $ source ~/.bashrc (一度ログアウトし再ログインしても環境変数の変化を反映させることは可能です) 計算例のダウンロード †sb100の場合 †STATEディレクトリ(~/STATE)で以下を実行します。 $ git clone -b sb100 https://github.com/ikuhamada/state-examples.git examples sb100でこのコマンドがうまく実行できない場合、以下の手順でGitHub上のexamplesのダウンロード(クローン)を行って下さい。
|