TeNPy(Tensor Network Python)數值模擬套件簡介

Tensor Network 是近年來發展用以處理量子系統的新方法,其應用範圍相當廣泛,包含凝態多體系統、量子資訊理論、量子化學1、以及量子重力2等。透過Tensor Network方法除了能簡化對於量子系統的理論分析,亦能應用於數值模擬方法,提升數值模擬處理的效能及更深入了解模擬的內部結構。TeNPy即是基於Tensor Network的Python套件,它是一個免費的開源軟體,目標就是在提供一個具彈性、方便入門者使用、且具高運算效能的Tensor Network使用介面。以下我們將就TeNPy套件做一個簡單介紹及提供有關Tensor Network的參考資源供讀者入門參考。

TeNPy簡介

TeNPy套件正式於2018年由J. Hauschild及F. Pollmann發表在SciPost期刊的論文3公開釋出,主要用於處理強關聯性系統,該類系統是凝態多體系統的一個重要分支,包含許多磁性材料、高溫超導材料等均屬此類系統。在該等系統之晶格模型中,其粒子間彼此通常具有強關聯性,因此除部分特殊情況外,絕大多數沒有解析解,且無法利用微擾方法加以分析,因此常需要利用數值模擬進行分析。目前常見的數值模擬方法有Exact diagonalization、Monte Carlo method、density functional theory、以及DMRG (Density Matrix Renormalization Group)等。

在前述論文中作者分別介紹如何透過Tensor Network方法建構系統的MPS (Matrix Product state),並將MPS應用於TEBD (Time Evolving Block Decimation)及DMRG等數值模擬方法 (如下圖所示),以計算系統的最低能量態、關聯函數(correlation function),及解析模型的相圖等,並提供TeNPy的程式範例,讓讀者更深入了解TeNPy如何實作Tensor Network計算。

TeNPy架構

TeNPy套件的架構如下圖所示,其包含tenpy.simulations、tenpy.algorithms、tenpy.models、tenpy.networks、tenpy.linalg等subpackage。其中:

tenpy.simulations為高階的數值模擬介面,讓使用者可以初始化系統模型(model)、以tensor network (例如:MPS) 建構初始態、執行數值模擬、以及計算各類物理量等。

tenpy.algorithms則負責提供對各種Tensor Network進行運算的演算法,包含有MPS compression、DMRG、TEBD、TDVP (Time-Dependent Variational Principle)、MPO time evolution、以及VUMPS (Variational Uniform Matrix Product States)等演算法。每個演算法都是以其類別來實作,例如:SingleSiteDMRGEngine類別。

tenpy.models則包含兩種類型的類別:lattice和model。Lattice類別主要用來設定系統的晶格結構,以及Tensor Network初始態的幾何結構。Model類別則是用來設定使用者的系統模型。

另外,tenpy.networks及tenpy.linalg則為低階的套件,提供支援底層各種運算相關的模組。

TeNPy程式範例

TeNPy套件的使用方法可至TeNPy網站查詢,該網站有提供完整的系統說明文件及範例解說。以下我們以Google Colab平台來簡介如何安裝TeNPy套件與執行範例程式。

1.安裝TeNPy套件:

在Colab命令列輸入「!pip install physics-tenpy」即可載入tenpy套件。其他開發環境安裝方式亦可參考TeNPy網頁說明

2.執行範例程式:

範例1

TeNPy提供兩種執行程式的方法。方法一:編寫python程式。以下為TeNPy教學網頁所提供的範例程式,以DMRG方法計算Ising模型。程式中首先透過TFIChain建構Ising模型,並利用MPS.from_product_state函式建構自旋向上的MPS初始態psi,然後將其帶入dmrg.run以執行DMRG演算法,並將結果放入info變數。編輯完程式後按執行鍵即可。

範例2:(以YAML參數檔執行)

方法二為利用yaml參數檔執行。執行的步驟為首先在Colab平台左側的檔案視窗新增一個yaml檔 (按右鍵新增檔案,檔名暫定為test.yml),然後在右側視窗編輯該yaml檔,在yaml檔中設定好simulation_class, model_class, initial_state_params, algorithm_class等參數。最後在中央視窗輸入 !tenpy-run test.yml 執行即可,執行完後結果會在前台顯示並存在results檔案中。

在上面的範例中,我們所計算的系統模型都是使用TeNPy內建的模型,因此只要呼叫模型的類別函式建立模型物件,即可完成模型的建構。除此之外,TeNPy亦提供類別模組供使用者建構自己的模型,相關設定方式有興趣的讀者可參考TeNPy網站的線上說明,以下為TeNPy提供的內建模型類別供讀者參考。

Tensor Network資源查詢

以上介紹的Tensor Network方法主要用以建構MPS以處理1維的物理系統。除了MPS之外,目前也發展出其他如projected entangled pair states (PEPS)及multiscale entanglement renormalisation ansatz (MERA)等Tensor Network方法,若讀者想要進一步了解有關Tensor Network的基礎知識及應用,可至館藏查詢系統查詢關鍵字Tensor Network,取得相關圖書資源館藏,例如:

  1. Density matrix and tensor network renormalization / Tao Xiang.
  2. Tensor Network Techniques for Quantum Computation / Mario Collura
  3. Tensor Network Contractions : Methods and Applications to Quantum Many-Body Systems / by Shi-Ju Ran, Emanuele Tirrito, Cheng Peng, Xi Chen, Luca Tagliacozzo, Gang Su, Maciej Lewenstein.
  4. Introduction to Tensor Network Methods : Numerical simulations of low-dimensional many-body quantum systems / by Simone Montangero.
  5. Tensor network states and effective particles for low-dimensional quantum spin systems / by Laurens Vanderstraeten.

除了圖書資源外,另外亦可透過整合查詢系統查找期刊文獻資料4-8,搜尋相關的研究成果或專業的Review文章。

最後,有關Tensor Network的數值模擬套件除了TeNPy之外,另外還有ITensor (for C++, Julia) 或Cytnx (for C++, Python)等,其相關介紹分別可參考2022年M. Fishman, S.R. White, E. M. Stoudenmire等人 7,及2025年Kai-HsinWu等人8發表於SciPost的文章。

參考文獻:

  1. Kin-Lic Chan and S. Sharma, “The density matrix renormalization group in quantum chemistry”, Annu. Rev. Phys. Chem. 62, 465 (2011).
  2. Molina-Vilaplana, “Holographic geometries of one-dimensional gapped quantum systems from tensor network states”, JHEP 05, 024 (2013).
  3. Hauschild, F. Pollmann, “Efficient numerical simulations with Tensor Networks: Tensor Network Python (TeNPy)”, SciPost Phys. Lect. Notes 5 (2018).
  4. Hauschild et al., “Tensor network Python (TeNPy) version 1”, SciPost Phys. Codebases 41 (2024).
  5. Orús, “A practical introduction to tensor networks: Matrix product states and projected entangled pair states”, Annals of Physics 349, 117–158 (2014).
  6. Jacob C Bridgeman and Christopher T Chubb, “Hand-waving and interpretive dance: an introductory course on tensor networks”, J. Phys. A: Math. Theor. 50 223001 (2017).
  7. Fishman, S. R. White and E. M. Stoudenmire, “The ITensor software library for tensor network calculations”, SciPost Phys. Codebases 4 (2022).
  8. Kai-HsinWu, et. al., “The Cytnx library for tensor networks”, SciPost Phys. Codebases 53 (2025).

by 物理系圖書室