MateriApps
物質科学シミュレーションのポータルサイト

現在アプリ掲載数328件

お問合せ / アプリ掲載依頼
    • JP
    • EN
  • MateriApps について
  • レビュー募集
もっと詳しく探す
  • NEWS / 講習会・イベント
  • アプリ一覧
  • アプリ詳細検索
  • キーワード解説
  • レビュー
  • 事例
  • アプリコンシェルジュ
  • インストールしないでアプリを
    試せる「MateriApps LIVE!」

    詳細はこちら
  • MateriApps について
  • レビュー募集
  • プライバシーポリシー
  • お問合せ / アプリ掲載依頼
  • アプリ一覧
  • TeNeS
TeNeS

TeNeS

  • 公開度:3 ★★★
  • ドキュメント充実度:2 ★★☆

テンソルネットワーク法、特にPEPS 波動関数状態と角転送行列くりこみ群法を用いた、二次元量子格子模型の基底状態ソルバー。
mptensor ライブラリを用いることでテンソル演算部分をハイブリッド並列化しており、大規模並列計算に対応している。

TeNeSによる2次元量子系の計算
Last Update:2024/12/20
あなたはすでに投票済みです!

TeNeS [1] は2次元格子状で定義された量子系の基底状態を計算するために開発されました.TeNeS で採用している計算手法は波動関数に虚数時間発展演算子を作用させることで徐々に基底状態に近づけていくというもので,一般に Time-Evolving Block Decimation(TEBD)と呼ばれる手法です.波動関数はテンソルネットワークで表現されていて,計算量を発散させないために,有限のボンド次元の範囲内にとどめる近似を行います.このボンド次元が近似の精度を決めるパラメータになっています.熱力学極限の物理量を評価するための手法としては,他の多くの手法において計算する格子サイズが近似精度を決める一つのパラメータになっていますが,TeNeSでは格子サイズは無限大です.ただし,より高精度の計算をする場合には,ボンド次元が有限であることからくる誤差に関して外挿が必要です.この他の特徴としては,量子モンテカルロ法と比較すると,負符号問題がないこと,厳密対角化の計算量やメモリ必要量がサイズの指数関数で増えるのにたいして,TeNeS ではボンド次元の冪で押さえられることなどがあります.

2023年にリリースされた ver.2.0.0 では,実時間発展や有限温度計算もサポートされるようになっていますが,ここでは,このパッケージを使って,まず基本となる基底状態計算の事例を紹介します.例として,2+1次元横磁場イジングモデルについて,横磁場の関数として,転移点で自発磁化が急激にゼロになる様子を計算してみることにします.

まず,インストール後に,

$ source <TENES_ROOT>/tenesvars-2.0.0-0.sh

などで,環境変数を整えたあと,

$ cp -rf $TENES_ROOT/sample/* .

For the 2+1 dimensional transverse field Ising model,として,手元にサンプルスクリプトを含んだフォルダをコピーします.そのあと,たとえば,2+1次元横磁場イジングモデルの場合には,

$ cd 01_transverse_field_ising 
$ tenes_simple simple.toml 
$ tenes_std std.toml 
$ tenes input.toml

で実行されます.(物性研のプリインストール環境では,最後の3行に替えて,あらかじめ sample_jobscripts/tenes.sh などの名前で用意されている実行スクリプトを手元にコピーして,それをバッチジョブとしてサブミットするのが簡単です.)ここで,使用した最初の入力ファイル simple.toml は何も手を入れていない状態では,

hx = 0.0   # hx Sx

のような行を含んでおり,これは,hx(x 方向の磁場)がゼロである場合の計算をするための入力ファイルになっています.つまり,単なる古典2次元イジングモデルの基底状態計算をしていることになります.

この実行によって,output というフォルダが新たに作られ,その中に計算結果が格納されています.今回のテスト計算に必要なスピンの z 方向成分の期待値が記録されているのは,output/onesite_obs.dat というファイルで,このなかの,

0 0 5.00000000000000000e-01 0.00000000000000000e+00

という行がそれに相当します.”5.000…e-01″ つまりスピンの z 成分の期待値は 0.5 ということですが,これは古典イジングモデルの結果としては当然の結果です.

x方向の磁場の関数として,z方向の磁化を計算するには,simple.toml のなかで,hx を指定している行の “0.0” を,”0.1″, “0.2”, “0.3”, … のように変えたものについて上と同じようにプログラムを実行する必要があります.このようにして,磁化を計算した結果をプロットすると下のようになります.

この図では,ボンド次元も (X,D)=(2,2), (8,4), (18,6) の3通りに変化させて計算しています.(X は角テンソルのボンド次元,D はバルクテンソルのボンド次元で,ともに近似精度をコントロールしています.一般には X を D の2乗に比例させることが自然なチョイスです.)これらのボンド次元も simple.toml のなかで定義されています.具体的には以下の行で定義されているので,ここを変えて計算を行うことで,上記のようなプロットに必要な計算結果が得られます.(このレビューでは使いませんでしたが,ver.2.0.0 の sample/01_transverse_field_ising フォルダの中には,上記のようなプロットを得るためのツール tutorial_example.py , tutorial_read.py も含まれています.)

dimension = 2  #  Bond dimension of corner transfer matrix

virtual_dim = 2 #   Bond dimension of bulk tensors

当然,ボンド次元を大きくすると精度があがると同時に計算時間もより多く必要になります.このレビュー記事では,物性研システムC(2024.02.07時点)1ノードを使いました.この図に必要な全データを集めるのに要した計算資源は 20 min・node 程度でした.正確な転移点は,おおよそ Hx=1.52219 で起きると言われていますが,上の図は,それとコンシステントな結果であるように見えます.

[1] Y. Motoyama, T. Okubo, K. Yoshimi, S. Morita, T. Kato, N. Kawashima: “TeNeS: Tensor network solver for quantum lattice systems”, Computer Physics Communications 279, 108437 (2022).

[2] H. W. J. Blöte, Y. Deng: “Cluster Monte Carlo simulation of the transverse Ising model”, Phys. Rev. E 66, 066110 (2002).

04 / 06

  • 01基本情報
  • 02事例・論文
  • 03講習会
  • 04レビュー
  • 05開発者の声
  • 06このアプリ情報に
    ついてのお問い合わせ
TOP

MateriApps
物質科学シミュレーションのポータルサイト

  • NEWS / 講習会・イベント
  • アプリ一覧
  • アプリ詳細検索
  • キーワード解説
  • 事例
  • アプリコンシェルジュ
  • プライバシーポリシー
お問合せ / アプリ掲載依頼
  • 東京大学 物性研究所 The Institute for Solid State Physics
  • 東京大学 The University of Tokyo
  • CDMSI
  • CCMS

© MateriApps, 2013-2025. All rights reserved.