Skip to content

Commit

Permalink
Update manual (JP):
Browse files Browse the repository at this point in the history
* Usage of dynamicalr2k
* New keyword for CalcSpec and SpectrumType
  • Loading branch information
mitsuaki1987 committed Apr 11, 2019
1 parent b533d19 commit cfe2273
Show file tree
Hide file tree
Showing 8 changed files with 156 additions and 19 deletions.
Binary file added doc/figs/dynamicalr2g.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,10 @@
(4) Output:

| **OneBodyG** :出力する一体Green関数を指定します。
:math:`\langle c^{\dagger}_{i\sigma_1}c_{j\sigma_2}\rangle`\ が出力されます。  
:math:`\langle c^{\dagger}_{i\sigma_1}c_{j\sigma_2}\rangle`\ が出力されます。
| **TwoBodyG** :出力する二体Green関数を指定します。
:math:`\langle c^{\dagger}_{i\sigma_1}c_{j\sigma_2}c^{\dagger}_{k \sigma_3}c_{l\sigma_4}\rangle`
:math:`\langle c^{\dagger}_{i\sigma_1}c_{j\sigma_2}c^{\dagger}_{k \sigma_3}c_{l\sigma_4}\rangle`
が出力されます。

.. toctree::
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
.. _Subsec:excitedvec:

excitedvec.dat
~~~~~~~~~~~~
~~~~~~~~~~~~~~

CalcModファイルのOutputExcitedVec=1の場合に、pair.def と入力ベクトルから計算された励起ベクトルを出力します。ファイルはテキスト形式で出力されます。以下にファイル例を記載します。

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

**形式 :** 文字列(\ ``"None"``, ``"Normal"``, ``"NoIteration"``,
``"Restart_out"``, ``"Restart_in"``,
``"Restart"``\ 。デフォルトは\ ``"None"``)
``"Restart"``, ``"Scratch"``\ 。デフォルトは\ ``"None"``)

**説明 :** 動的グリーン関数の計算に関する設定を行う。
``"None"``\ では動的グリーン関数を計算しない。
Expand All @@ -18,6 +18,9 @@
``"Restart_in"``\ では再計算用のデータをファイルから受け取り途中から計算を始める。
``"Restart"``\ では再計算用のデータをファイルから受け取り途中から計算を始め、
反復が終了した時点で再計算用のデータをファイル出力する。
``"Scratch"``\ では、まず固有状態の計算が行われたのちに、
続けて動的グリーン関数の計算が行われる。この場合は波動関数のファイル入出力は
必要なくなる。
スペクトル計算において使用される手法はパラメーター\ ``method``\ で指定されます。
(``method="CG"``\ とした場合には
付属している\ :math:`K\omega`\ ライブラリ [#]_ が呼び出され、
Expand All @@ -26,21 +29,35 @@
- ``SpectrumType``

**形式 :** 文字列(\ ``"SzSz"``, ``"S+S-"``, ``"Density"``, ``"up"``,
``"down"``\ のいずれか。デフォルトは\ ``"SzSz"``)
``"down"``, ``"SzSz_R"``, ``"S+S-_R"``, ``"Density_R"``, ``"up_R"``,
``"down_R"``\ のいずれか。デフォルトは\ ``"SzSz"``)

**説明 :** 計算する動的グリーン関数の種類を指定する。
逆格子空間での相関関数を直接計算するに場合には次の値を使用する。
``"SzSz"``\ では\ :math:`\langle {\hat S}_{z q} {\hat S}_{z q}\rangle`\
``"S+S-"``\ では\ :math:`\langle {\hat S}^{+}_{q} {\hat S}^{-}_{q}\rangle`\
``"Density"``\ では\ :math:`\langle {\hat n}_{q} {\hat n}_{q}\rangle`\
``"up"``\ では\ :math:`\langle {\hat c}^{\dagger}_{q \uparrow} {\hat c}_{q \uparrow}\rangle`\
``"up"``\ では\ :math:`\langle {\hat c}^{\dagger}_{q \uparrow} {\hat c}_{q \uparrow}\rangle`\
``"down"``\ では\ :math:`\langle {\hat c}^{\dagger}_{q \downarrow} {\hat c}_{q \downarrow}\rangle`
となる。

- ``SpectrumQW``, ``SpectrumQL``
また、実空間での相関関数の計算では次の値を用いる。
``"SzSz_R"``\ では\ :math:`\langle {\hat S}_{z R} {\hat S}_{z 0}\rangle`\
``"S+S-_R"``\ では\ :math:`\langle {\hat S}^{+}_{R} {\hat S}^{-}_{0}\rangle`\
``"Density_R"``\ では\ :math:`\langle {\hat n}_{R} {\hat n}_{0}\rangle`\
``"up_R"``\ では\ :math:`\langle {\hat c}^{\dagger}_{R \uparrow} {\hat c}_{0 \uparrow}\rangle`\
``"down_R"``\ では\ :math:`\langle {\hat c}^{\dagger}_{R \downarrow} {\hat c}_{0 \downarrow}\rangle` 、
ここで :math:`R` はすべてのサイト番号にわたる。
この実空間での動的相関関数をフーリエ変換して逆格子空間全体での
動的相関関数を得る方法については
:ref:`相関関数のFourier変換ユーティリティー <fourier>` を参照。

- ``SpectrumQW``, ``SpectrumQL``, ``SpectrumQH``

**形式 :** 実数(デフォルトはともに\ ``0.0``)

**説明 :** 計算する動的グリーン関数の波数を Fractional
**説明 :** ``SpectrumType`` が ``"SzSz"``, ``"S+S-"``, ``"Density"``, ``"up"``,
``"down"`` のときのみ使用。
計算する動的グリーン関数の波数を Fractional
coordinateで指定する。 逆格子ベクトルは
:numref:`fig_chap04_1_lattice`, :numref:`fig_chap04_1_honeycomb`,
:numref:`fig_ladder`, :numref:`fig_kagome`
Expand Down
18 changes: 17 additions & 1 deletion doc/ja/source/fourier/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@
====

本資料は, mVMC および :math:`{\mathcal H}\Phi` で計算された
サイト表示の相関関数をFourier変換し, 出力するユーティリティに関するマニュアルである.
サイト表示の静的相関関数をFourier変換し, 出力するユーティリティと
:math:`{\mathcal H}\Phi` で計算された
サイト表示の動的相関関数をFourier変換し, 出力するユーティリティ
に関するマニュアルである.

要件
----
Expand Down Expand Up @@ -60,3 +63,16 @@
&\equiv \frac{1}{N_{\bf R}} \sum_{\bf R}^{N_{\bf R}} e^{-i {\bf k}\cdot{\bf R}}
\langle {\hat {\bf S}}_{{\bf 0}\alpha} \cdot {\hat {\bf S}}_{{\bf R}\beta} \rangle
\end{align}
動的相関

\begin{align}
\langle {\hat X}_{{\bf k} \alpha \uparrow}^{\dagger} {\hat X}_{{\bf k} \beta \uparrow}\rangle (\omega)
&\equiv \sum_{\bf R}^{N_{\bf R}} e^{-i {\bf k}\cdot{\bf R}}
\langle {\hat X}_{{\bf R} \alpha \uparrow}^{\dagger}
(\omega - {\hat H})^{-1}
{\hat X}_{{\bf 0} \beta \uparrow}\rangle
\end{align}

励起演算子 :math:`{\hat X}` は任意のものを指定できる。
スタンダードモードでは上記の1体相関、2体相関の励起演算子を自動的に生成できる。
87 changes: 85 additions & 2 deletions doc/ja/source/fourier/tutorial.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.. _tutorial:

チュートリアル
==============
静的相関関数についてのチュートリアル
====================================

このチュートリアルでは, 正方格子ハバードモデル(8サイト)を例にとり説明する.

Expand Down Expand Up @@ -125,3 +125,86 @@ gnuplotを使って,

- kpath.gp (:ref:`gnuplot`)
- output/zvo_corr*.dat (:ref:`zvocorr`)

動的相関関数についてのチュートリアル
====================================

このチュートリアルでは, 1次元ハイゼンベルグ模型モデル(12サイト)を例にとり説明する.

HPhi の実行
-----------

基底状態および相関関数の計算を行う.
入力ファイルは次の通り.

::
model = Spin
lattice = Chain
method = CG
L = 12
2Sz = 0
J = 1.0
CalcSpec = Scratch
SpectrumType = SzSz_r
OmegaIm = 0.1
OmegaMin = -6.0
OmegaMax = -2.0

.. code-block:: bash
$ HPhi -s input
これにより, カレントディレクトリの ``output/`` 以下に
動的相関関数が出力される.

関連するファイル

- stan.in (mVMC/:math:`{\mathcal H}\Phi` のマニュアル参照)

相関関数のフーリエ変換
----------------------

ユーティリティプログラム ``dynamicalr2k`` を使って,
相関関数をフーリエ変関する.

.. code-block:: bash
$ echo "4 20
G 0 0 0
X 0.5 0 0
M 0.5 0.5 0
G 0 0 0" >> geometry.dat
$ dynamicalr2k namelist.def geometry.dat
これにより, カレントディレクトリの ``output/`` 以下に
フーリエ変換された相関関数が出力される.

関連するファイル

- output/zvo_DynamicalGreen.dat
- geometry.dat (:ref:`geometry`)
- output/zvo_dyn.dat

相関関数のプロット
------------------

gnuplotを使って,
相関関数を :math:`k` 空間でプロットする.

::

load "kpath.gp"
splot "output/zvo_dyn.dat" u 1:2:(-$4) w l

.. _dynamicalr2gpng:

.. figure:: ../../../figs/dynamicalr2g.png

相関関数 :math:`\langle{\bf S}_{\bf k}\cdot{\bf S}_{\bf k}\rangle(\omega)` の虚部(4列目)を
プロットした図.

関連するファイル

- kpath.gp (:ref:`gnuplot`)
- output/zvo_dyn.dat
27 changes: 22 additions & 5 deletions doc/ja/source/fourier/util.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
$ ${PATH}/greenr2k ${NAMELIST} ${GEOMETRY}
ここで, ``${PATH}`` は ``fourier`` ユーティリティのバイナリのあるディレクトリのパス,
ここで, ``${PATH}`` は ``greenr2k`` ユーティリティのバイナリのあるディレクトリのパス,
${NAMELIST}は :math:`{\mathcal H}\Phi`/mVMC の NameList インプットファイル名,
${GEOMETRY}は :ref:`geometry` ファイルへのパスである.

Expand All @@ -22,7 +22,7 @@ HPhi-Lanczos

この場合に ``HPhi`` が ``output/`` ディレクトリに出力するサイト表示の相関関数は,
``zvo_cisajs.dat`` (1体), ``zvo_cisajscktalt.dat`` (2体)である.
``fourier`` ユーティリティーは, これらを読み込みFourier変換を行った後,
``greenr2k`` ユーティリティーは, これらを読み込みFourier変換を行った後,
単一のファイル ``zvo_corr.dat`` を ``output/`` ディレクトリに出力する.

HPhi-TPQ
Expand All @@ -31,7 +31,7 @@ HPhi-TPQ
この場合に ``HPhi`` は, 各試行/TPQステップ毎に
``zvo_cisajs_run*step*.dat`` (1体), ``zvo_cisajscktalt_run*step*.dat`` (2体)というファイルを
``output/`` ディレクトリに出力する.
``fourier`` ユーティリティーは, 各試行/TPQステップ毎に
``greenr2k`` ユーティリティーは, 各試行/TPQステップ毎に
1体および2体の相関関数を読み込みFourier変換を行った後,
``zvo_corr_run*step*.dat`` という名前のファイルとして ``output/`` ディレクトリに出力する.

Expand All @@ -41,7 +41,7 @@ HPhi-全対角化およびLOBCG
この場合に ``HPhi`` は, 各波動関数ごとに
``zvo_cisajs_eigen*.dat`` (1体), ``zvo_cisajscktalt_eigen*.dat`` (2体)というファイルを
``output/`` ディレクトリに出力する.
``fourier`` ユーティリティーは, 各波動関数ごとに
``greenr2k`` ユーティリティーは, 各波動関数ごとに
1体および2体の相関関数を読み込みFourier変換を行った後,
``zvo_corr_eigen*.dat`` という名前のファイルとして ``output/`` ディレクトリに出力する.

Expand All @@ -53,7 +53,7 @@ mVMC
試行を行いインデックスをつけられた
``zvo_cisajs_???.dat`` (1体), ``zvo_cisajscktalt_???.dat`` (2体)というファイルを
``output/`` ディレクトリに出力する.
``fourier`` ユーティリティーはそれらのファイルを読み込み,
``greenr2k`` ユーティリティーはそれらのファイルを読み込み,
各試行に対してFourier変換を行った後,
それらの実部, 虚部ごとに平均値

Expand All @@ -75,3 +75,20 @@ mVMC
を計算し, 平均値と誤差を含んだ単一のファイル
``zvo_corr_eigen*.dat`` を ``output/`` ディレクトリに出力する.

``dynamicalr2k`` ユーティリティの動作について
=============================================

このユーティリティーは, 次のようにして使う.

.. code-block:: bash
$ ${PATH}/dynamicalr2k ${NAMELIST} ${GEOMETRY}
ここで, ``${PATH}`` は ``dynamicalr2k`` ユーティリティのバイナリのあるディレクトリのパス,
${NAMELIST}は :math:`{\mathcal H}\Phi`/mVMC の NameList インプットファイル名,
${GEOMETRY}は :ref:`geometry` ファイルへのパスである.
この場合に ``HPhi`` が ``output/`` ディレクトリに出力するサイト表示の動的相関関数は,
``zvo_DynamicalGreen.dat`` である.
``greenr2k`` ユーティリティーは, これらを読み込みFourier変換を行った後,
単一のファイル ``zvo_corr.dat`` を ``output/`` ディレクトリに出力する.

5 changes: 4 additions & 1 deletion src/readdef.c
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,10 @@ int ReadcalcmodFile(
}
if(CheckWords(ctmp, "CalcType")==0){
X->iCalcType=itmp;
if (X->iCalcType == Lanczos)X->iCalcType = CG;
if (X->iCalcType == Lanczos) {
fprintf(stdoutMPI, " LOBPCG is used alternative to Lanczos.\n");
X->iCalcType = CG;
}
}
else if(CheckWords(ctmp, "FlgFiniteTemperature")==0){
X->iFlgFiniteTemperature = itmp;
Expand Down

0 comments on commit cfe2273

Please sign in to comment.