.. highlight:: none 基本的な使い方 ============== HPhi++ではスタンダードモードとエキスパートモードの2つのモードが存在します。 ここでは、スタンダードモードおよびエキスパートモードでの計算に関して、それぞれ基本的な流れを記載します。 スタンダードモード ------------------ スタンダードモードでの動作方法は下記の通りです。 1. 計算用ディレクトリの作成 計算シナリオ名を記載したディレクトリを作成します。 2. スタンダードモード用入力ファイルの作成 スタンダードモードでは、あらかじめ用意されたいくつかの モデル(HeisenbergモデルやHubbardモデル)や格子(正方格子など)を指定し、 それらに対するいくつかのパラメーター(最近接\ :math:`\cdot`\ 次近接スピン結合やオンサイトクーロン積分など)と 計算手法(Lanczos法、TPQ法など)を設定します。 各ファイルは :ref:`How to use HPhi++ ` に従い記載してください。 3. 実行 “``-s``”(“``--standard``” でも可)をオプションとして指定の上、 1で作成した入力ファイル名を引数とし、\ ``HPhi++``\ を実行します。 * シリアル/OpenMP並列 の場合 ``$ Path /HPhi++ -s Input_file_name`` * MPI並列/ハイブリッド並列 の場合 ``$ mpiexec -np number_of_processes Path /HPhi++ -s Input_file_name`` ワークステーションやスパコン等でキューイングシステムを利用している場合は プロセス数をジョブ投入コマンドの引数として与える場合があります。 詳しくはお使いのシステムのマニュアルをご参照ください。 プロセス数の指定に関しては計算する系により固定のものに設定する必要があります。 詳細は :ref:`Subsec:process` を参照ください。 4. 途中経過 計算実行の経過についてoutputフォルダにログファイルが出力されます。 出力されるファイルの詳細に関しては :ref:`Sec:outputfile` を参考にしてください。 5. 最終結果 計算が正常終了した場合、 計算モードに従いoutputフォルダに計算結果ファイルが出力されます。 出力されるファイルの詳細に関しては :ref:`Sec:outputfile` を参考にしてください。 .. tip:: | **OpenMPスレッド数の指定** | 実行時のOpenMPのスレッド数を指定する場合は、 | HPhi++を実行する前に以下の様にしてください(16スレッドの場合)。 | ``export OMP_NUM_THREADS=16`` エキスパートモード ------------------ エキスパートモードでの動作方法は下記の通りです。 1. 計算用ディレクトリの作成 計算シナリオ名(名前は任意)を記載したディレクトリを作成します。 2. 詳細入力ファイルの作成 エキスパートモードでは、ハミルトニアンのすべての項を記述する詳細入力ファイルと計算条件のファイル、 ]およびそれらのファイル名のリストファイルを作成します。各ファイルは :ref:`Ch:HowToExpert` に従い記載してください。 .. note:: | リストファイルの作成はスタンダード用のファイルStdFace.defを用いると容易に作成することができます。 3. 実行 “``-e``”(“``--expert``” でも可)をオプションとして指定の上、 2で作成した入力リストファイル名を引数とし、ターミナルからHPhi++を実行します。 * シリアル/OpenMP並列 ``$ Path/HPhi++ -e Input_List_file\_name`` * MPI並列/ハイブリッド並列 | ``$ mpiexec -np number_of_processes Path/HPhi++ -e Input_List_file_name`` | プロセス数の指定に関しては計算する系により固定のものに設定する必要があります。 | 詳細は :ref:`Subsec:process` を参照ください。 4. 途中経過 計算実行の経過についてoutputフォルダにログファイルが出力されます。 出力されるファイルの詳細に関しては :ref:`Sec:outputfile` を参考にしてください。 5. 最終結果 計算が正常終了した場合、計算モードに従いoutputフォルダに計算結果ファイルが出力されます。 出力されるファイルの詳細に関しては :ref:`Sec:outputfile` を参考にしてください。 .. _Subsec:process: プロセス数の設定 ---------------- MPI並列/ハイブリッド並列を用いる場合、プロセス数は以下のように設定してください。 1. Standardモード * 電子系及び近藤格子系 スタンダードモード用入力ファイルで\ ``model``\ =\ ``"Fermion Hubbard"``, ``"Kondo Lattice"``, ``"Fermion HubbardGC"``\ の場合は、プロセス数が\ :math:`4^n`\ となるように設定してください。 * スピン系 スタンダードモード用入力ファイルで\ ``model``\ =\ ``"Spin"``, ``"SpinGC"``\ の場合は、入力ファイルの\ ``2S``\ の値に対して プロセス数が(\ ``2S``\ +1)\ :math:`{}^n`\ となるように設定してください(デフォルトは\ ``2S``\ =1)。 2. Expertモード * 電子系及び近藤格子系 :ref:`Subsec:calcmod` の **CalcMod**\ ファイルで、\ ``CalcModel``\ としてfermion Hubbard模型、近藤模型を選択した場合は、プロセス数が\ :math:`4^n`\ となるように設定してください。 * スピン系 :ref:`Subsec:calcmod` の **CalcMod**\ ファイルで、\ ``CalcModel``\ としてスピン模型を選択した場合は、 :ref:`Subsec:locspn` の\ **LocSpin**\ ファイルを参考にプロセス数を指定する必要があります。 許容されるプロセス数は、サイト数の大きいものから順に局在スピンの状態数(\ ``2S``\ +1)を掛けたもので指定されます。 例えば、\ **LocSpin**\ ファイルが :: ================================ NlocalSpin 3 ================================ ========i_0IteElc_2S ====== ================================ 0 3 1 2 2 1 で与えられる場合、許容されるプロセス数は\ :math:`2=1+1,~6=2\times(2+1),~24=6\times(3+1)`\ となります。 バージョン番号の確認 -------------------- 次のように\ ``-v``\ オプションをつけてHPhi++を実行すると, バージョン番号を標準出力した後終了します。 ``$ PATH/HPhi++ -v``