-
Notifications
You must be signed in to change notification settings - Fork 11
tenes JP
Yuichi Motoyama edited this page Nov 18, 2019
·
3 revisions
[日本語/ENGLISH]
COMMIT bbeccc31649fb5e19db452795453ea143d625bce (2019-11-18 14:45 JST)
$ tenes --help
TeNeS: TEnsor NEtwork Solver for 2D quantum lattice system
Usage:
tenes [--quiet] <input_toml>
tenes --help
tenes --version
Options:
-h --help Show this help message.
-v --version Show the version.
-q --quiet Do not print any messages.
- 引数として入力ファイル名を取る
- コマンドラインオプション
help
version
tenes input.toml
- ファイルフォーマットは TOML 形式
-
parameter
,lattice
,evolution
,observable
の4つのセクションを持つ- ファイル名を指定することで分割可能にする予定
更新回数など、種々のパラメータを記述する。このセクションのみ、各々のパラメータにデフォルト値が存在する。
サブセクションとして tensor
, simple_update
, full_update
, ctm
をもつ。
name | desc | default |
---|---|---|
D |
中心テンソルがもつ virtual ボンドの次元 | 2 |
CHI |
角転送行列の virtual ボンドの次元 | 4 |
Lcor |
相関関数を測る距離の上限 | 0 |
name | desc | default |
---|---|---|
num_step |
simple update の回数 | 0 |
inverse_lambda_cutoff |
simple update でゼロとみなす平均場のcutoff | 1e-12 |
name | desc | default |
---|---|---|
num_step |
full update の回数 | 0 |
inverse_projector_cutoff |
使っていない気がする(オリジナルのinverse_env_cut?) | 1e-12 |
inverse_precision |
full update で擬似逆行列を計算する際にゼロとみなす特異値のcutoff | 1e-12 |
convergence_epsilon |
full update でtruncationの最適化を行う際の収束判定値 | 1e-12 |
iteration_max |
full update でtruncationの最適化を行う際のiterationの最大回数 | 1000 |
gauge_fix |
テンソルのゲージを固定するかどうか | true |
fastfullupdate |
Fast full update にするかどうか | true |
name | desc | default |
---|---|---|
inverse_projector_cutoff |
CTMのprojectorを計算する際にゼロとみなす特異値のcutoff | 1e-12 |
convergence_epsilon |
CTMの収束判定値 | 1e-10 |
iteration_max |
CTMの収束iterationの最大回数 | 100 |
projector_corner |
CTMのprojector計算で1/4角のテンソルのみを使う | trueにした方が一般の問題では安定 |
use_rsvd |
SVD を 乱択SVD で置き換えるかどうか | false |
rsvd_oversampling_factor |
2 |
[parameter]
[parameter.tensor]
D = 4 # tensor_dim
CHI = 16 # env_dim
[parameter.simple_update]
num_step = 1000
[parameter.full_update]
num_step = 1
[parameter.ctm]
iteration_max = 5
「ユニットセル」の情報を記述する。
name | desc | type |
---|---|---|
L_sub |
ユニットセルの大きさ | 整数のリスト |
simple update, full update で使う虚時間発展演算子を記述する。
name | desc | type |
---|---|---|
matrix |
虚時間発展演算子の行列表現 | 文字列のリスト |
simple_update |
simple update における、虚時間発展演算子のインデックスと作用するボンドの順番 | 文字列 |
full_update |
full update における、虚時間発展演算子のインデックスと作用するボンドの順番 | 文字列 |
- ひとつの文字列がひとつの行列を意味する
- 列は1つ以上の空白で区切られ、行は1つ以上の改行で区切られる
- 定義した順番がそのまま行列の番号に対応し、
*_update
での指定で使われる (0-origin)。
- 1行が1回の演算子作用を表す
- 各行は
int int char int
の4つのフィールドからなる- ボンドがつながるサイト
- ボンドがつながるサイト
- 横方向 (h) か縦方向 (v) か
- 演算子番号 (0-origin)
方向を表す部分は消すかもしれない(できるだけリリース前に決定)。
[evolution]
simple_update = """
0 1 h 0
3 2 h 0
2 3 h 0
1 0 h 0
0 2 v 0
3 1 v 0
2 0 v 0
1 3 v 0
"""
full_update = """
0 1 h 0
3 2 h 0
2 3 h 0
1 0 h 0
0 2 v 0
3 1 v 0
2 0 v 0
1 3 v 0
"""
matrix = [
"""
0.9975031223974601 0.0 0.0 0.0
0.0 1.0025156589209967 -0.005012536523536887 0.0
0.0 -0.005012536523536888 1.0025156589209967 0.0
0.0 0.0 0.0 0.9975031223974601
"""
]
物理量測定に関する諸々を記述する。
name | desc | type |
---|---|---|
local_operator |
サイト演算子 (ex. Sz) | 文字列のリスト |
hamiltonian |
ボンドハミルトニアン | 文字列のリスト |
hamiltonian_bonds |
ボンドハミルトニアンの種類と作用するボンドの組 | 文字列 |
evolution.matrix
と同様。
evolution.simple_update
と同様。
[observable]
local_operator = [
"""
0.5 0.0
0.0 -0.5
""",
"""
0.0 0.5
0.5 0.0
""",
]
hamiltonian_bonds = """
0 1 h 0
3 2 h 0
2 3 h 0
1 0 h 0
0 2 v 0
3 1 v 0
2 0 v 0
1 3 v 0
"""
hamiltonian = [
"""
0.25 0.0 0.0 0.0
0.0 -0.25 0.5 0.0
0.0 0.5 -0.25 0.0
0.0 0.0 0.0 0.25
""",
]
相関関数 C = <A(0)B(r)>
を指定するセクション
name | desc | type |
---|---|---|
r_max |
相関関数の距離 r の最大値 | 整数 |
operators |
相関関数を測る演算子 A,B の番号 | 整数のリストのリスト |
演算子は observable
セクションで指定したものが用いられる。
[correlation]
r_max = 5
operators = [[0,0], [0,1], [1,1]]
- 計算結果は
output
ディレクトリに保存される- ディレクトリ名は変更可能にする予定
- 入力ファイル and/or コマンドライン引数?
- ディレクトリ名は変更可能にする予定
parameter
と lattice
のパラメータが出力される
サイトあたりのエネルギーが出力される
- サイト演算子の期待値が出力される
- 各行4列からなる
- 演算子のインデックス
- サイトのインデックス
- 期待値の実部
- 期待値の虚部
# $1: op_index
# $2: site_index
# $3: real
# $4: imag
0 0 1.92549465249573365e-02 0.00000000000000000e+00
0 1 -1.92620814130195529e-02 0.00000000000000000e+00
0 2 -1.95243093055922252e-02 0.00000000000000000e+00
0 3 1.91619477632061150e-02 0.00000000000000000e+00
1 0 4.07206063348768799e-01 0.00000000000000000e+00
1 1 -4.07243511737157671e-01 0.00000000000000000e+00
1 2 -4.07255967738734126e-01 0.00000000000000000e+00
1 3 4.07308918791554009e-01 0.00000000000000000e+00
- サイト演算子の最近接相関が出力される
- 各行5列からなる
- 演算子のインデックス
- サイトのインデックス
- サイトのインデックス
- 期待値の実部
- 期待値の虚部
# $1: op_index
# $2: source_site
# $3: target_site
# $4: real
# $5: imag
0 0 1 -7.05927615064968900e-02 0.00000000000000000e+00
0 0 2 -7.27068456430051274e-02 0.00000000000000000e+00
0 1 0 -7.13284385957392297e-02 0.00000000000000000e+00
0 1 3 -7.19523349256113581e-02 0.00000000000000000e+00
0 2 3 -7.12610364895483045e-02 0.00000000000000000e+00
0 2 0 -7.19731507561011952e-02 0.00000000000000000e+00
0 3 2 -7.05633558230210067e-02 0.00000000000000000e+00
0 3 1 -7.26803750807340498e-02 0.00000000000000000e+00
1 0 1 -1.85942869237103348e-01 0.00000000000000000e+00
1 0 2 -1.87164731677545187e-01 0.00000000000000000e+00
1 1 0 -1.86360382550076586e-01 0.00000000000000000e+00
1 1 3 -1.86768451086366694e-01 0.00000000000000000e+00
1 2 3 -1.86384181909805935e-01 0.00000000000000000e+00
1 2 0 -1.86747576732693515e-01 0.00000000000000000e+00
1 3 2 -1.85975089525013598e-01 0.00000000000000000e+00
1 3 1 -1.87196522916879049e-01 0.00000000000000000e+00
- 相関関数が出力される
- 各行8列からなる
- 左演算子のインデックス
- 左演算子のサイトインデックス
- 右演算子のインデックス
- 右演算子のサイトインデックス
- 右演算子のユニットセルオフセット (x)
- 右演算子のユニットセルオフセット (y)
- 演算子の実部
- 演算子の虚部
# $1: left_op
# $2: left_site
# $3: right_op
# $4: right_site
# $5: offset_x
# $6: offset_y
# $7: real
# $8: imag
0 0 0 1 0 0 -7.05927615064967928e-02 0.00000000000000000e+00
0 0 0 0 1 0 1.19668843226761017e-02 0.00000000000000000e+00
0 0 0 1 1 0 -2.43086229320005863e-03 0.00000000000000000e+00
0 0 0 0 2 0 7.42729194528496308e-04 0.00000000000000000e+00
0 0 0 1 2 0 -4.38794819416885419e-04 0.00000000000000000e+00
0 0 0 2 0 0 -7.27068456430051135e-02 0.00000000000000000e+00
0 0 0 0 0 1 1.23339845746621279e-02 0.00000000000000000e+00
0 0 0 2 0 1 -2.50111186244407349e-03 0.00000000000000000e+00
0 0 0 0 0 2 7.54607806587391516e-04 0.00000000000000000e+00
0 0 0 2 0 2 -4.47734559969679546e-04 0.00000000000000000e+00
1 0 1 1 0 0 -1.85942869237103237e-01 0.00000000000000000e+00
(中略)
1 3 1 1 0 3 -1.65874245891461547e-01 0.00000000000000000e+00
計算時間が出力される